一些重要名词:(这里的所有时间、周期数都指的的是时钟周期)
CPE:每元素执行所需的周期数。
延迟:完成运算所需要的总时间。
发射时间:两个连续的同类型运算之间需要的最小时钟周期。
容量:能够执行该运算的功能单元数量。
最大吞吐量:发射时间的倒数。
性能提高的方法:
1、代码移动,减少过程调用
2、消除多余内存引用
3、简单循环展开,减少无关开销
4、多路并行循环展开,并行操作,使CPE接近吞吐界限
5、重新结合并换,改变合并顺序,使操作并行
P.S. 多路并行循环展开超过寄存器数量,CPE回升,因为超过的变量放入堆栈中,内存引用增加。