【发布时间】:2011-05-25 09:15:36
【问题描述】:
openCL 是否支持布尔变量?我目前正在使用 JOCL (java) 编写我的 openCL 调用代码,但我没有看到任何关于布尔值的信息。
【问题讨论】:
openCL 是否支持布尔变量?我目前正在使用 JOCL (java) 编写我的 openCL 调用代码,但我没有看到任何关于布尔值的信息。
【问题讨论】:
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 设备和主机处理器也不同,因此很难 分配要作为参数传递给内核的缓冲区对象,该内核声明为指向这些对象的指针 输入
【讨论】: