我从 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/