【问题标题】:Does opencl support boolean variables?opencl 支持布尔变量吗?
【发布时间】:2011-05-25 09:15:36
【问题描述】:

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

【问题讨论】:

    标签: boolean opencl abi


    【解决方案1】:

    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 设备和主机处理器也不同,因此很难 分配要作为参数传递给内核的缓冲区对象,该内核声明为指向这些对象的指针 输入

    【讨论】:

    • 我一头雾水,有bool类型但是我用不了?
    • 您可以在内核中使用它,但不能用于主机和计算设备上的 OpenCL 代码之间的传输或访问,因为大小不是可移植的。
    猜你喜欢
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多