SIMD指令的吞吐量低于32位整数运算。 在SM2.0(仅标量指令版本)的情况下,低2倍。 如果SM3.0低6倍。
什么情况适合使用?
答案 0 :(得分:4)
如果您的数据已经以SIMD视频指令原生处理的格式打包,则需要多个步骤才能解压缩,以便普通指令处理它。
此外,SIMD视频指令的吞吐量也应乘以与普通算术运算进行比较时执行的实际操作次数。
例如,对于指令vadd4,在打包的32位数量(4字节整数量)上执行4个整数加法。为了使用普通整数添加复制此行为,需要一个相当复杂的指令序列来将数据解压缩为4 int
个数量,执行4个整数添加,然后重新打包结果。如果您尝试使用单个整数添加来执行此操作,则从一个结果执行可能会破坏下一个结果。 vadd4
还提供了钳制功能和整数添加不具备的其他行为。
对于SM2.0,只有vadd4
执行的4次操作与解压缩数据所需的4次整数增加的比率才会使其具有吸引力。在SM3.0的情况下,当解包和打包被添加到普通整数添加例程时,vadd4
看起来很有吸引力。情况变得更具吸引力with cc 5.0。