在AMD GCN卡上,uint2的运行速度是否比OpenCL中的ulong快?

在AMD GCN卡上,uint2的运行速度是否比OpenCL中的ulong快?,opencl,amd-gpu,amd-gcn,Opencl,Amd Gpu,Amd Gcn,哪一个“+”计算更快? 1) uint2a,b,c; c=a+b; 2) 乌龙a、b、c; c=a+b AMD GCN没有本机64位整数向量支持,因此第二条语句将转换为两个32位加法,一个V_ADD_U32,后跟一个V_ADDC_U32,其中考虑了第一个V_ADD_U32的进位标志 因此,为了回答您的问题,它们在指令计数方面都是相同的,但是第一个可以并行计算(指令级并行),并且如果内核占用受限(即使用大量寄存器),则速度可能会更快 如果您的语句可以由标量单元执行(即,它们不依赖于线程索引),那么

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

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

因此,为了回答您的问题,它们在指令计数方面都是相同的,但是第一个可以并行计算(指令级并行),并且如果内核占用受限(即使用大量寄存器),则速度可能会更快

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


但是请记住,您的第一个声明与第二个声明不同,您将丢失进位标志。

对于OpenCL本身,无法回答这个问题。OpenCL只是底层硬件行为的API,底层硬件可以是任何东西,从图形卡到计算卡,再到CPU,这些设备中的任何一个都可以具有与任何其他设备不同的性能配置文件。如果您可以指定一个您计划在OpenCL应用程序中使用的特定设备,则获得具体答案的可能性会更大,但您仍将受制于公众对该设备整数性能的了解。@Xirema谢谢。让我修改它关于AMD GCN卡的答案是在你关心的GPU上配置它。