2009-06-11 91 views
7

波特兰集团提供的CUDA,OpenCL和GPU选项令人感兴趣......结果令人印象深刻(对某些团体而言,125-times speedup)。听起来GPGPU工具的下一波浪潮正准备主宰科学计算世界。不过,我还记得GLSL和Cg宣布的时候也是如此。CUDA,OpenCL,PGI等......但是GLSL和Cg发生了什么?

GLSL和Cg发生了什么?已经支持掉线?人们仍然使用GLSL & Cg进行GPU上的通用计算吗?

回答

12

对GPGPU使用Cg或GLSL的日子已经快要结束了。但是,它们大量用于3D图形,并且在可预见的未来将继续以这种方式使用。 GLSL和Cg仅用于科学计算,因为它们是城里唯一的游戏。没有其他的选择可以在GPU上进行通用计算。

现在为GPGPU使用GLSL的唯一真正原因是与平台无关。如果您绝对必须能够在各种GPU上运行您的软件,那么现在它仍然是一条路。不过,OpenCL在不久的将来会改变这种状况。

科学计算正在向CUDA和OpenCL等方向发展的原因很多。这些库使您可以更好地访问GPU硬件,并可以更加灵活地处理性能瓶颈问题。这使得从GPU获得最高性能变得更容易。 CUDA和OpenCL还提供GLSL或Cg中不具备的功能(例如共享内存),但对于在许多算法(例如矩阵转置)中获得良好性能至关重要。另一个原因是CUDA和OpenCL可以让您无需图形上下文即可访问GPU,从而使您可以远程使用计算机的GPU进行计算。

4

你在比较苹果和橘子。 CUDA和OpenCL用于在GPU上进行通用计算。 GLSL和Cg是着色器语言。它们主要用于编写着色器,而不是用于通用计算。

我不知道GLSL的实际状态,但我知道Cg。我使用它已经有好几年了,但是我的朋友刚刚在一个新的3D游戏中工作,确实使用Cg写他的着色器。即使Cg背后并没有同样的社区和行业支持,但它仍然存在,您仍然可以使用它。

+0

“...... Cg背后并没有相同的社区和行业支持,曾经有过......”这就是我要求的原因之一:CUDA,OpenCL等现在有很大的推动力。它会在一年后消失吗?如果我花费大量时间移植我的应用程序,那么肯定会很糟糕,然后软件或硬件得不到支持! – Pete 2009-06-11 19:50:41

0
  • Cg/HLSL如果你是一个游戏开发者。
  • OpenCL如果你是一个非常冒险的游戏开发者。

对于桌面上的其他人你甚至不能保证他们将拥有所需的硬件。

所有这些解决方案的未来看起来都很暗淡。在GPGPU赶上桌面和合并之前,我们很可能会看到至少1代或2代以上的语言。