CUDA上的布尔运算

cap*_*ain 4 cuda boolean

我的应用程序需要在位向量上执行OR和XOR等位向量操作.

e.g suppose array   A     = 000100101 (a.k.a bit vector)
                    B     = 100101010
                    A . B = 100101111
Run Code Online (Sandbox Code Playgroud)

CUDA是否支持布尔变量?例如bool,如果是,如何存储和操作?它是否也支持位向量操作?我在CUDA编程指南中找不到答案.

tal*_*ies 9

CUDA支持标准C++ bool,但在C++中,它只是一种保证支持两种状态的类型,因此不应在其上使用位操作.在CUDA中,与C++一样,您可以获得整数类型(和,或者xor,补码和左右移位)的按位运算符的标准补码.理想情况下,您应该针对内存吞吐量原因使用32位类型(或打包的32位CUDA向量类型).