我的应用程序需要在位向量上执行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编程指南中找不到答案.
CUDA支持标准C++ bool
,但在C++中,它只是一种保证支持两种状态的类型,因此不应在其上使用位操作.在CUDA中,与C++一样,您可以获得整数类型(和,或者xor,补码和左右移位)的按位运算符的标准补码.理想情况下,您应该针对内存吞吐量原因使用32位类型(或打包的32位CUDA向量类型).