开发者

Does GLSL utilize SLI? Does OpenCL? What is better, GLSL or OpenCL for multiple GPUs?

To what extend does OpenGL's GLSL utilize SLI setups? Is it utilized at all at the point of execution or only for end rendering?

Similarly, I know th开发者_JAVA技巧at OpenCL is alien to SLI but assuming one has several GPUs, how does it compare to GLSL in multiprocessing?

Since it might depend on the application, e.g. common transformation, or ray tracing, can you offer insight on differences depending on application type?


The goal of SLI is to divide the rendering workload on several GPU. First, the graphic driver uses a either a Sort-first or time decomposition (GPU0 works on frame n while GPU1 works on frame n+1) approach. And then, the pixels are copied from one GPU to the other.

That said, SLI has nothing to do with the shading language used by OpenGL (the way the pixels are drawn doesn't really matter).

For OpenCL, I would say that you have to divide your workload between the GPU by yourself, but I am not sure.


If you want to take advantage of multiple GPUs with OpenCL, you will have to create command queues for each device and run kernels on each device after splitting up the workload.


See http://developer.nvidia.com/object/sli_best_practices.html

Basically, you have to instruct the driver that you want to use SLI, and in which mode. After this, the driver will (almost) seamlessly do all the work for you.

Alternate Frame Rendering : no sync needed, so better performance, but more lag

Split Frame Rendering : lots of sync, some vertices are processed twice, but less lag.

For you GLSL vs OpenCL comparison, I don't know of any good benchmark. I'd be interested, though.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜