Использует ли GLSL SLI? Есть ли OpenCL? Что лучше, GLSL или OpenCL для нескольких графических процессоров?

Насколько широко OpenGL GLSL использует установки SLI? Используется ли он вообще на этапе выполнения или только для конечного рендеринга?

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

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


person j riv    schedule 11.09.2010    source источник


Ответы (3)


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

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

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

person tibur    schedule 11.09.2010
comment
Вы говорите, что SLI бесполезен для ускорения только GLSL (заметьте, только)? Хотя OpenCL мог это сделать? Значит, если бы OpenCL заменил вычисления GLSL, это было бы быстрее? - person j riv; 12.09.2010
comment
Если вы планируете выполнить некоторые вычисления с использованием GLSL, это может быть быстрее при использовании декомпозиции сортировки SLI, если ваше приложение равномерно отрисовывает на экране (это принесет пользу схеме декомпозиции разделения экрана). Если вы хотите сделать это с помощью OpenCL, вам, безусловно, придется разделить вычисления между разными графическими процессорами. Если вам нужна более специализированная помощь, нам нужно знать, какую проблему вы хотите решить. - person tibur; 12.09.2010

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

person dietr    schedule 12.09.2010

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

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

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

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

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

person Calvin1602    schedule 12.09.2010