我正在寻找OpenCL和DirectCompute之间的比较,但是我没有找到任何信息。对我来说,OpenCL跨平台和支持更广泛的GPU的优势并不重要。我可以在Windows上针对DX11 GPU进行编程。在这种情况下,每个API的优缺点是什么?
我知道这个问题以前提过, 但我想要更多的细节。
我不感兴趣CUDA,因为我不想限制自己只使用Nvidia硬件。
我知道这个问题以前提过, 但我想要更多的细节。
我不感兴趣CUDA,因为我不想限制自己只使用Nvidia硬件。
对于一个程序员来说,最大的区别可能是DirectCompute使用类似于HLSL的语言进行编程,而OpenCL则通过类似于C的语言进行编程。
另一个需要考虑的区别是通常情况下,在普通级别的GPU上,Windows系统对DirectX的支持比OpenGL更好(更快,更少出错)。这可能意味着对DirectCompute更稳定的支持,但实际上这只是猜测。
OpenCL的主要优势在于它不仅局限于图形卡。您可以利用多核CPU、图形卡和潜在的任何数量的其他硬件加速设备(例如DSP),所有这些都可以从同一个程序中使用。
我不确定DirectCompute是否允许这种自由。
我使用OpenCL,因为我可以轻松地将我的应用程序移植到Linux,但使用DirectCompute则不可能。 我认为随着时间的推移,OpenCL实现的性能将会提高(达到与NVidia卡的CUDA相同的水平),而且(驱动程序)错误也将会被消除(希望如此;))。