c++ - OpenCL 内核中的运算符重载

标签 c++ opencl

我从 CUDA 转移到了 OpenCL。

在 CUDA 中,我能够进行运算符重载:

__device__ bool operator != (const uint2 a, const uint b) 
{ 
    return ((a.x != b) && (a.y != b)); 
}

我可以在 OpenCL 内核中做同样的事情吗?

最佳答案

没有。任何当前版本的 OpenCL(1.0、1.1 或 1.2)的 OpenCL 内核语言都是 OpenCL C——C99 的扩展和子集版本,它没有运算符重载——或者就此而言,也没有用户函数的重载。

future 版本的 OpenCL 可能会将其扩展为具有基于 C++ 的 OpenCL 内核语言,从而允许运算符重载 - 但这尚未标准化或广泛可用。

关于c++ - OpenCL 内核中的运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10341661/

相关文章:

运行时 OpenCL 计算矩阵乘法时出错

python - 在 Windows 8 (x64) 中安装 PyOpenCL "fatal error: CL/cl.h: No such file or directory"错误

c++ - 从 std::wstring 转换为 jstring

c++ - while 循环的问题

c++ - 我在返回过程中遇到错误 255

c++ - 结构化绑定(bind)是否可重用?

c++ - GNU Makefile - 多个目标的通用 Makefile

python - 如何在 pyopencl 中创建可变大小的 __local 内存?

c - 在 OpenCL 中切片字符串

c++ - 使用 OpenCL 的欧氏距离