有人能告诉我编译后如何让OpenCL代码在AMD和Nvidia卡上都能运行,一般的步骤是什么? 我是否需要安装两个OpenCL SDK(AMD / Nvidia),并使用“if”结构为每种情况编写不同的代码(AMD设备或Nvidia设备)? 如果您能用一些标题澄清一下,会很感激。 谢谢。
有人能告诉我编译后如何让OpenCL代码在AMD和Nvidia卡上都能运行,一般的步骤是什么? 我是否需要安装两个OpenCL SDK(AMD / Nvidia),并使用“if”结构为每种情况编写不同的代码(AMD设备或Nvidia设备)? 如果您能用一些标题澄清一下,会很感激。 谢谢。
是的,这是OpenCL比CUDA更好的地方(CUDA只适用于NVIDIA硬件)。基本上,您需要使用C99编写内核代码,然后将其编译成独立于制造商的中间代码。最终代码将在运行时由您的显卡(AMD或Nvidia)解释。
通常情况下,您不需要编写不同的显卡特定代码或使用不同的SDK(但我在Max OS 10.7上,可能与其他环境不同)。