2010-09-11 6 views
8

В какой степени GLSL OpenGL использует установки SLI? Используется ли оно вообще в точке исполнения или только для окончательного рендеринга?Использует ли GLSL SLI? Открывает OpenCL? Что лучше, GLSL или OpenCL для нескольких графических процессоров?

Аналогично, я знаю, что OpenCL чужда SLI, но при условии, что у одного есть несколько графических процессоров, как он сравнивается с GLSL при многопроцессорности?

Поскольку это может зависеть от приложения, например. общая трансформация или трассировка лучей, можете ли вы предложить понимание различий в зависимости от типа приложения?

ответ

6

Целью SLI является разделение рабочей нагрузки на несколько графических процессоров. Во-первых, графический драйвер использует либо Sort-first, либо временную разложение (GPU0 работает на кадре n, а GPU1 работает на кадре n + 1). А затем пиксели копируются с одного GPU на другой.

Это говорит о том, что SLI не имеет ничего общего с языком затенения, используемым OpenGL (способ рисования пикселей не имеет значения).

Для OpenCL я бы сказал, что вам нужно разделить рабочую нагрузку между GPU самостоятельно, но я не уверен.

+0

Вы говорите, что SLI бесполезен для ускорения GLSL в одиночку (обратите внимание, в одиночку)? Хотя OpenCL мог это сделать? И, следовательно, если OpenCL заменит вычисления GLSL, это будет быстрее? –

+0

Если вы планируете выполнять некоторые вычисления с использованием GLSL, это может быть быстрее при использовании SLI sort-first декомпозиции, если ваше приложение равномерно отображается на экране (это принесет пользу схеме разложения экрана). Если вы хотите сделать это с помощью OpenCL, вам обязательно придется разделить свои вычисления на разных графических процессорах. Если вам нужна более специализированная помощь, нам нужно знать, какую проблему вы хотите решить. – tibur

1

Если вы хотите использовать несколько графических процессоров с OpenCL, вам придется создавать очереди команд для каждого устройства и запускать ядра на каждом устройстве после разделения рабочей нагрузки.

1

См http://developer.nvidia.com/object/sli_best_practices.html

В принципе, вы должны проинструктировать драйвер, который вы хотите использовать SLI, и в каком режиме. После этого водитель (почти) без проблем выполнит всю работу за вас.

Alternate кадров Rendering: нет синхронизации требуется, поэтому более высокая производительность, но больше лаг

Split кадров Rendering: много синхронизации, некоторые вершины обрабатываются в два раза, но меньше лаг.

Для сравнения GLSL и OpenCL я не знаю ни одного хорошего теста. Мне было бы интересно, однако.

Смежные вопросы