5.4 最大化指令吞吐量
为了达到最大的指令吞吐量,程序应该:
- 最小化使用低吞吐量的计算指令;有以下方法:在不影响结果的情况下以精度换取执行速度,比如使用指令来代替内置函数,用单精度代替双浮点精度,或者将非归一化数据刷新为0.
- 最小化分支
- 减少指令的数量,
本章节中,吞吐量通过每个SM每个时钟周期进行的运算次数来表示。对于一个warp=32,一条指令对应了32次运算,所有如果一个时钟周期进行了N次运算,那么指令吞吐量就是每个时钟周期N/32个指令。
吞吐量是针对一个SM的,将其乘以SM的数量就得到整个设备的吞吐量。
5.4.1 计算指令
下表给出了各种不同设备天然支持的计算吞吐量