我想编写一个光线追踪器,GPGPU似乎是加速它的一个很好的方式。但问题在于,虽然OpenCL是一个Khronos标准,但英特尔、NVIDIA和ATI似乎都发布了自己的SDK。 尽管这里大多数人都在关注他们的内核代码是否在所有平台上运行,但我想知道如何为所有平台编译使用OpenCL API的实际C程序。
不幸的是,确保在所有平台上没有漏洞的唯一方法是在所有平台(以及所有GPU或CPU的所有世代)上测试您的内核,因为有时NVIDIA ptx编译器会崩溃,而AMD编译器可以正常工作。 然后,您需要针对每个GPU和CPU架构优化您的OpenCL代码... 享受OpenCL吧 ;)