C++ OpenCL或CUDA应该走哪条路?
我正在研究使用GPU来处理流数据的方法。我有两个选择,但无法决定走哪条路 我的标准如下:C++ OpenCL或CUDA应该走哪条路?,c++,c,cuda,opencl,C++,C,Cuda,Opencl,我正在研究使用GPU来处理流数据的方法。我有两个选择,但无法决定走哪条路 我的标准如下: 易用性(良好的API) 社区和文件 演出 未来 < >我将在Linux下的C和C++中编码。< /P> < P> OpenCL 从您的生产代码接口 不同图形硬件之间的可移植性 有限的操作但预先准备好的快捷方式 CUDA 独立语言(CUDA C) 仅限nVidia硬件 几乎完全控制代码(用类似C的语言编码) 很多分析和调试工具 一句话——OpenCL是可移植的,CUDA只是nVidia。然而,作为一
< >我将在Linux下的C和C++中编码。< /P> < P> <强> OpenCL<强/< /P>
- 从您的生产代码接口
- 不同图形硬件之间的可移植性
- 有限的操作但预先准备好的快捷方式
- 独立语言(CUDA C)
- 仅限nVidia硬件
- 几乎完全控制代码(用类似C的语言编码)
- 很多分析和调试工具
我的个人经历是:
此评估是从2010年开始的,因此可能已经过时。OpenCL,除非您有特定的理由使用CUDA。OpenCL除了在GPU上运行外,在Intel i7等多核上运行良好。通过使用OpenCL,您可以在更广泛的硬件上运行它,从Droid手机到世界上最大的超级计算机的IBM Power7计算节点,预计将于明年上线。实际上,使用OpenCL还有一个优势,它还可以在CPU中并行化任务。@holydiver,本着这种精神,你可以说Windows和MacOS X都没有光明的未来:>@Kornel绝对,我认为MacOSX和Windows的前景不太光明,我希望它们会在地狱中燃烧:p@holydiver:不可移植的封闭源代码软件永远不会消失。您列出了CUDA拥有自己的类似C语言的事实,但没有提到用于编写OpenCL内核的类似OpenCL C语言。另请参阅: