Portland Group 提供的 CUDA、OpenCL 和 GPU 选项令人着迷……结果令人印象深刻(某些组的速度提高了 125 倍)。听起来下一波 GPGPU 工具有望主宰科学计算世界。但是,我记得在宣布 GLSL 和 Cg 时同样大张旗鼓。
GLSL 和 Cg 发生了什么?是否已放弃支持?人们还在使用 GLSL 和 Cg 在 GPU 上进行通用计算吗?
Portland Group 提供的 CUDA、OpenCL 和 GPU 选项令人着迷……结果令人印象深刻(某些组的速度提高了 125 倍)。听起来下一波 GPGPU 工具有望主宰科学计算世界。但是,我记得在宣布 GLSL 和 Cg 时同样大张旗鼓。
GLSL 和 Cg 发生了什么?是否已放弃支持?人们还在使用 GLSL 和 Cg 在 GPU 上进行通用计算吗?
为 GPGPU 使用 Cg 或 GLSL 的日子快要结束了。但是,它们大量用于 3D 图形,并且在可预见的未来将继续以这种方式使用。GLSL 和 Cg 仅用于科学计算,因为它们是城里唯一的游戏。没有其他替代方案可以在 GPU 上进行通用计算。
现在将 GLSL 用于 GPGPU 的唯一真正原因是与平台无关。如果您绝对必须能够在各种 GPU 上运行您的软件,那么目前仍然是可行的方法。不过,OpenCL 将在不久的将来改变这一点。
科学计算转向 CUDA 和 OpenCL 等领域的原因有很多。这些库使您可以更好地访问 GPU 硬件,并提高性能瓶颈的透明度。这使得更容易从 GPU 获得最大性能。CUDA 和 OpenCL 还提供了 GLSL 或 Cg 中根本不具备的功能(例如共享内存),但对于在许多算法(例如矩阵转置)中获得良好性能至关重要。另一个原因是 CUDA 和 OpenCL 让您无需图形上下文即可访问 GPU,除其他外,您可以远程使用计算机的 GPU 进行计算。
您正在将苹果与橙子进行比较。CUDA 和 OpenCL 用于在 GPU 上进行通用计算。GLSL 和 Cg 是着色器语言。它们主要用于编写着色器,而不是进行通用计算。
我不知道 GLSL 的实际状态,但我知道 Cg。自从我使用它已经有好几年了,但是我刚刚开发一个新的 3d 游戏的朋友确实使用 Cg 来编写他的着色器。即使 Cg 背后的社区和行业支持不再像以前那样,它仍然存在,您仍然可以使用它。
对于桌面上的其他任何人,您甚至无法保证他们将拥有所需的硬件。
所有这些解决方案的未来看起来都很暗淡。在 GPGPU 赶上桌面并合并之前,我们可能会看到至少 1 或 2 代以上的语言。