CUDA 上的布尔运算

发布于 2024-12-27 06:27:27 字数 286 浏览 1 评论 0原文

我的应用程序需要对位向量执行“或”和“异或”等位向量运算。

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

CUDA 支持布尔变量吗?例如C中的bool。如果是,它是如何存储和操作的?它也支持位向量运算吗?我在《CUDA编程指南》中找不到答案。

My application needs to perform bit-vector operations like OR and XOR on bit-vectors.

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

Does CUDA support boolean variables? e.g. bool as in C. If yes, how is it stored and operated on? Does it also support bit-vector operations?. I couldn't find the answer in the CUDA Programming Guide.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半世蒼涼 2025-01-03 06:27:27

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

CUDA supports the standard C++ bool, but in C++ it is only a type guaranteed to support two states, so bit operations shouldn't be used on it. In CUDA, as in C++, you get the standard complement of bitwise operators for integral types (and, or, xor, complement and left and right shift). Ideally you should aim to use a 32 bit type (or a packed 32 bit CUDA vector type) for memory throughput reasons.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文