uint2操作是否比AMD GCN卡上的OpenCL中的ulong操作快?

时间:2018-08-21 20:50:33

标签: opencl amd-gpu amd-gcn

哪个“ +”计算更快? 1) uint2 a,b,c; c = a + b; 2) 乌龙a,b,c; c = a + b;

1 个答案:

答案 0 :(得分:1)

AMD GCN不支持本机64位整数向量,因此第二条语句将转换为两个32位加法,一个是V_ADD_U32,然后是一个V_ADDC_U32,它考虑了第一个V_ADD_U32的进位标志。

因此,为回答您的问题,它们在指令数量方面都是相同的,但是第一个可以并行计算(指令级并行性),并且如果您的内核被占用(例如,使用大量寄存器),则可以更快地进行计算。

如果您的语句可以由标量单元执行(即,它们不依赖于线程索引),那么游戏将发生变化,第二个则仅是一条指令(相对于第二条指令),因为标量单元具有本机64位位整数支持。

但是请记住,您的第一个陈述与第二个陈述不同,您会丢失进位标记。