opencl是否支持布尔变量?

smu*_*kes 8 boolean opencl

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

grr*_*sel 18

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

有关支持的标量类型列表,请参见OpenCL 1.1规范的6.1.1内置标量数据类型.

来自第6.8.k节

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

  • 您可以在内核中使用它,但不能在主机和计算设备上的OpenCL代码之间进行传输或访问,因为大小不是可移植定义的. (11认同)
  • 我很困惑,有一个bool类型,但我不能使用它? (3认同)