2010-11-24 26 views
2

CUDA爲程序員提供了編寫類似a & b | ~ ca,b,cunsigned int s)的可能性。GPU(Geforce 9800)如何實現按位整數操作?

GPU在內部做了什麼?它以某種方式「模仿」整數上的按位操作,還是像傳統的CPU一樣高效?

+2

請提供參考您已閱讀的內容,否則只是傳聞,難以評論。 「我讀過很多堆棧溢出用戶不rtfm」。 – 2010-11-24 08:55:31

回答

5

根據CUDA Programming Guide v2.3(第5.1.1.1節),按位操作全速運行(每個時鐘週期8次操作)。

整數算術

整數加載的吞吐量是每個時鐘週期8個 操作。

32位整數 乘法的吞吐量是每個 時鐘週期2級的操作,但mul24提供具有 吞吐量每個時鐘週期 8個操作的24位 整數乘法。在未來的架構 然而,mul24會比 32位整數乘法慢,所以我們 建議提供兩個內核,一個 使用mul24,另一個使用 通用的32位整數乘法, 要通過適當稱爲 申請。

整數除法和模運算 是特別昂貴的,並應是 儘可能避免或 位操作儘可能取代:如果n是2的冪 ,(I/N)是 等效於(i> (n))和(i%n) 相當於(i &(n-1));如果n是文字, 編譯器將執行這些 轉換。

比較比較結果,最小值,最大值的吞吐量是每個時鐘週期的8次操作 週期。

按位操作每個時鐘週期的任意位運算的吞吐量爲8個操作 。