OpenCL 内核中的运算符重载

ato*_*tom 4 c++ opencl

我从 CUDA 转移到 OpenCL。

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

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

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

grr*_*sel 5

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

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