如何在OpenCL内核编译时判断厂商ID以适配NVIDIA GPU?
OpenCL内核区分NVIDIA GPU的预编译宏替换方案
你可以用__NV_CL_C_VERSION__替换代码中的MAGIC_HERE,这个宏是NVIDIA OpenCL编译器专属的预定义宏,仅在针对NVIDIA GPU编译OpenCL内核时会被定义。
修改后的代码示例:
#if defined(__NV_CL_C_VERSION__) asm("some ptx code"); #else // some OpenCL C code which does the same thing, sort of #endif
另外,也可使用__CUDA_ARCH__,不过该宏仅在PTX代码生成阶段才会被定义,更适合直接编写PTX相关逻辑的场景;而__NV_CL_C_VERSION__在OpenCL编译的早期阶段就会被定义,适用性更广。
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

