哪个"+“运算快? 1) uint2 a,b,c;c=a+ b;2) ulong a,b,c;c=a+ b;
发布于 2018-10-05 21:24:05
AMD GCN没有本机64位整数向量支持,因此第二条语句将被转换为两个32位加法,一个V_ADD_U32后跟一个V_ADDC_U32,后者将第一个V_ADD_U32的进位标志考虑在内。
所以为了回答你的问题,它们在指令计数方面是相同的,但是第一个可以并行计算(指令级并行),并且如果你的内核是占用限制的(即.使用大量寄存器)。
如果您的语句可以由标量单元执行(即,它们不依赖于线程索引),然后游戏改变,第二个指令将只有一条指令(而不是两条),因为标量单元具有本机64位整数支持。
但是请记住,您的第一个语句与第二个语句不同,您将丢失进位标志。
https://stackoverflow.com/questions/51956528
复制相似问题