我的代码顶部有一个常量...
__constant uint uintmaxx = (uint)( (((ulong)1)<<32) - 1 );
它在 AMD 和 NVIDIA OpenCL 编译器上编译得很好……然后执行。
(正确)在 ATI 卡上,返回... 4294967295 或(所有 32 位 = 1)
(错误)在 NVIDIA 卡上,返回... 2147483648 或(仅第 32 位 = 1)
我还尝试了 -1 + 1<<32 并且它适用于 ATI 但不适用于 NVIDIA。
是什么赋予了?我只是错过了什么吗?
当我谈到 OpenCL 编译器差异的话题时,有没有人知道列出 AMD 和 NVIDIA 之间编译器差异的好资源?