GPU(Geforce 9800)如何实现按位整数运算?

时间:2010-11-24 08:40:27

标签: cuda gpu bitwise-operators

CUDA让程序员可以编写类似a & b | ~ cabcunsigned int s)的内容。

GPU内部有什么作用?它是否以某种方式“模拟”整数上的按位运算,或者它们是否像传统CPU一样高效?

1 个答案:

答案 0 :(得分:5)

根据CUDA Programming Guide v2.3(第5.1.1.1节),按位运算以全速运行(每个时钟周期运行8次)。

  

整数算术

     

整数加的吞吐量为8   每个时钟周期的操作。

     

32位整数的吞吐量   乘法是每次2次操作   时钟周期,但mul24提供24位   整数乘以a   每时钟输出8次操作   周期。在未来的架构上   但是,mul24会慢于   32位整数乘法,所以我们   建议提供两个内核,一个   使用mul24和另一个使用   通用的32位整数乘法,   被称为适当的   应用

     

整数除法和模运算   特别昂贵,应该是   尽可能避免或替换为   尽可能按位运算:   如果n是2的幂,则(i / n)是   相当于(i>> log2(n))和(i%n)   相当于(i&(n-1));该   编译器将执行这些   如果n是字面值,则转换。

     

比较 compare,min,max的吞吐量是每个时钟8次操作   周期。

     

按位运算任何按位运算的吞吐量为8次运算   每个时钟周期。