我想做一些GPU编程。怎么去这里?我想学习一些“开放”,跨平台和“更高”的语言。我不想只是锁定GPU供应商,也不想锁定操作系统,平台等。
这里有什么选择? Cuda,OpenCL,OpenMP,其他?他们的利弊是什么?
G / HLSL和PhysX怎么样?
我正在考虑做“通用”编程,一些数学运算,数字运算,模拟等。也许吐出一些漂亮的图形,但不是专门的图形编程。
答案 0 :(得分:9)
标记为正确的答案现已过时且不正确。特别是OpenMP 4.0支持GPU加速。
答案 1 :(得分:4)
OpenMP只是cpu,但易于实现,CUDA基本上只是GPU。 Ati Stream支持两者,但仅支持Ati / AMD gpu。 OpenCL是您唯一支持这两种选项的“开放”选项。
答案 2 :(得分:1)
如今 - 2013/2014 - 有C++ Accelerated Massive Parallelism (AMP) of Microsoft。这是一种高级语言,可编译为高级着色器语言(HLSL),因此您无需编写内核代码等。
OpenCL和C ++ AMP之间简单易读的比较由AMD人员和is found here (click!)完成。
答案 3 :(得分:1)
对openMP的GPU支持将在不久的将来推出:
答案 4 :(得分:0)
如果您想要使用GPU并且比OpenCL更高级别,您可能需要了解Matlab。有机会通过Matlab编程GPU,您不需要学习较低的模型,如OpenCL和CUDA。 CUDA它会更高效,因为你可能要编程NVIDIA卡。但是,openCL是GPGPU的标准,代码的方式非常相似。虽然您可能发现使用CUDA或openCL并不是很困难,但您会发现更难以优化它们。
我希望它有所帮助。
答案 5 :(得分:0)
Open CL已经公开但我听说这样做的缺点是缺乏文档。 ATI在NVIDIA和ATI之间可能会更好,因为据报道它在2009年更快但我不确定这些数据是否仍然正确。