如果IPC为1,可以在一个周期内对GPU的32位ALU执行多少8位操作?

Raj*_*war 2 cuda gpu computer-architecture

它可以在每个周期执行四次8位操作(SIMD操作)还是只执行一次?通常,较高位被设为零,8位被视为32位字,其较高位为零以执行这种操作.目前处理器中是否有任何硬件功能可以帮助每个周期执行更多数量的低位操作(特别是在NVIDIA GPU中)?

Rob*_*lla 6

AFAIK在GPU上没有"可以在一个周期内在GPU的32位ALU上执行"的任何算术指令.GPU上的大多数算术功能单元是流水线的, 导致延迟大约5-25个时钟周期.一个单元可以每个时钟发出一个新操作,它可以每个时钟退出一个操作,但它不能"在一个周期内"执行操作.

GPU具有simd矢量内在函数,其中一些类似于您所描述的内容.这些吞吐量将根据特定的GPU类型以及特定的操作类型而有所不同.

因此,例如,在kepler上,vabsdiff4SIMD内部的吞吐量(对4字节向量的数据进行四次8位算术运算,打包成32位字)应该与32位整数的吞吐量大致相同操作(加,减等)大多数其他SIMD内在函数将具有较低的吞吐量.