2012-01-15 100 views
3

我的應用程序需要執行比特向量上的比特向量運算,如OR和XOR。CUDA上的布爾運算

e.g suppose array A  = 000100101 (a.k.a bit vector) 
        B  = 100101010 
        A . B = 100101111 

CUDA是否支持布爾變量?例如如同C中一樣。如果是,它是如何存儲和操作的?它是否也支持位矢量操作?我在CUDA編程指南中找不到答案。

回答

8

CUDA支持標準C++ bool,但在C++中它只是一種保證支持兩種狀態的類型,所以不應該使用位操作。在CUDA中,與在C++中一樣,您可以獲得整型(或,xor,complement和左右移位)的位運算符的標準補碼。理想情況下,您應該致力於使用32位類型(或者打包的32位CUDA矢量類型)來實現內存吞吐量。