【发布时间】:2010-09-11 15:00:53
【问题描述】:
OpenGL 的 GLSL 在多大程度上利用了 SLI 设置?它是在执行时使用还是仅用于最终渲染?
同样,我知道 OpenCL 与 SLI 不同,但假设一个有多个 GPU,在多处理方面它与 GLSL 相比如何?
因为它可能取决于应用程序,例如常见的转换或光线追踪,您能否提供根据应用类型不同的差异的见解?
【问题讨论】:
标签: opengl glsl opencl gpgpu opengl-3
OpenGL 的 GLSL 在多大程度上利用了 SLI 设置?它是在执行时使用还是仅用于最终渲染?
同样,我知道 OpenCL 与 SLI 不同,但假设一个有多个 GPU,在多处理方面它与 GLSL 相比如何?
因为它可能取决于应用程序,例如常见的转换或光线追踪,您能否提供根据应用类型不同的差异的见解?
【问题讨论】:
标签: opengl glsl opencl gpgpu opengl-3
SLI 的目标是在几个 GPU 上划分渲染工作负载。首先,图形驱动程序使用Sort-first 或时间分解(GPU0 在帧 n 上工作,而 GPU1 在 n+1 帧上工作)方法。然后,像素从一个 GPU 复制到另一个。
也就是说,SLI 与 OpenGL 使用的着色语言无关(像素的绘制方式并不重要)。
对于 OpenCL,我会说你必须自己在 GPU 之间分配工作量,但我不确定。
【讨论】:
如果您想通过 OpenCL 使用多个 GPU,则必须为每个设备创建命令队列,并在拆分工作负载后在每个设备上运行内核。
【讨论】:
见http://developer.nvidia.com/object/sli_best_practices.html
基本上,您必须指示驱动程序您要使用 SLI,以及在哪种模式下使用。在此之后,驱动程序将(几乎)无缝地为您完成所有工作。
交替帧渲染:不需要同步,因此性能更好,但延迟更大
分帧渲染:大量同步,一些顶点被处理两次,但延迟更少。
对于 GLSL 与 OpenCL 的比较,我不知道有什么好的基准。不过我会感兴趣的。
【讨论】: