2012-01-15 17 views
3

私のアプリケーションでは、ビットベクトルに対してORやXORのようなビットベクトル演算を実行する必要があります。CUDAのブール演算

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

CUDAはブール変数をサポートしていますか?例えばbool Cと同じです。はいの場合、それはどのように保存され、操作されますか?ビットベクトル演算もサポートしていますか?私はCUDAプログラミングガイドでその答えを見つけることができませんでした。

答えて

8

CUDAは標準C++ boolをサポートしていますが、C++では2つの状態をサポートすることが保証されている唯一のタイプなので、ビット操作を使用しないでください。 C++のようにCUDAでは、整数型(and、or、xor、complement、left and right shift)のビット演算子の標準補数を取得します。理想的には、メモリスループットの理由から、32ビットタイプ(または32ビットのCUDAベクトルタイプをパック)を使用することを目指すべきです。