9

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

4

1 回答 1

19

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

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

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

来自第 6.8.k 节

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

于 2010-12-14T17:00:01.343 回答