opencl支持布尔变量吗?

发布于 2024-10-07 22:08:05 字数 76 浏览 9 评论 0原文

openCL 支持布尔变量吗?我目前正在使用 JOCL (java) 编写我的 openCL 调用代码,但我没有看到任何有关布尔值的信息。

Does openCL support boolean variables? I am currently using JOCL (java) to write my openCL calling code and I don't see anything about booleans.

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

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

发布评论

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

评论(1

薄荷→糖丶微凉 2024-10-14 22:08:05

tl;dr:是的,但是你应该在内核函数签名中避免使用它。

是的;但 bool 的大小定义。因此,它没有关联的 API 类型(因为该值的大小应取决于设备)。

有关支持的标量类型的列表,请参阅 OpenCL 1.1 规范的第 6.1.1 内置标量数据类型部分。

来自第 6.8.k 节

程序中 __kernel 函数的参数不能用内置函数声明
标量类型 bool、half、size_t、ptrdiff_t、intptr_t 和 uintptr_t。这
这些类型的大小(以字节为单位),除了一半是实现定义的,此外还可以
OpenCL 设备和主机处理器也不同,因此很难
分配缓冲区对象作为参数传递给声明为指向这些对象的指针的内核
类型

tl;dr: Yes, but you should avoid it in kernel function signatures.

Yes; but the size of a bool is not defined. Therefore, it does not have an associated API type (as what size the value should be is device dependent).

See section 6.1.1 Built-in Scalar Data Type of the OpenCL 1.1 specification for a list of supported scalar types.

From Section 6.8.k

Arguments to __kernel functions in a program cannot be declared with the built-in
scalar types bool, half, size_t, ptrdiff_t, intptr_t, and uintptr_t. The
size in bytes of these types except half are implementation-defined and in addition can
also be different for the OpenCL device and the host processor making it difficult to
allocate buffer objects to be passed as arguments to a kernel declared as pointer to these
type

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