Обзор.
Визуализация с использованием GPU позволяет V-Ray RT выполнять вычисления, связанные с трассировкой лучей, на установленных в системе GPU вместо CPU. Поскольку GPU специально разработаны для выполнения массовых параллельных вычислений, они могут ускорить процесс визуализации на порядок.
Для включения визуализации с использованием GPU в настройках V-Ray RT для параметра Engine type выберите значение OpenCL (singe kernel) или CUDA (single kernel).
Поддерживаемые аппаратные средства и драйверы.
V-Ray RT для GPU имеет два внутренних интерфейса (или движка). Первый основан на OpenCL (для дополнительной информации об OpenCL см. ниже раздел Ссылки), а второй - на платформе nVidia CUDA.
Движок OpenCL должен работать с любой версией совместимых с OpenCL устройств. Однако, это может быть и не так. Ниже приведен список тестов, которые мы провели (до июня 2015) и их результаты:
- nVidia – для GPU nVidia всегда предпочтительней использование CUDA, так как он работает быстрее и у нег больше поддерживаемых функций. Однако, V-Ray RT Open CL работает лучше на основе карт Fermi-, Kepler- или Maxwell с последними драйверами. Карты с архитектурой старше Fermi не поддерживаются.
- AMD GPU - RT OpenCL на AMD работает только на GPU AMD GCN 1.1 (или новее) с драйвером 15 (или новее) при использовании V-Ray 3.30.04.
- Intel GPU - RT Open CL не работает на Intel GPUs.
- Технологии OpenCL позволяют использовать CPU для вычислений вместе с GPU. Для этого нужно установить OpenCL runtime для CPUs (Intel OpenCL Runtime, AMD OpenCL Runtime).
- CPU (Использование Intel или AMD OpenCL runtime) - V-Ray RT Open CL работает во всех версиях V-Ray с последними Intel/AMD runtimes.
Движок CUDA поддерживается только на 64-битной версии V-Ray RT для карт от nVidia с использованием архитектуры Fermi, Kepler или Maxwell. Настоятельно рекомендуется использовать движок CUDA на nVidia GPU.
Поддерживается визуализация с использованием нескольких GPU, и по умолчанию V-Ray RT для GPU будет использовать все доступные устройства, поддерживающие OpenCL/CUDA. См. ниже раздел о том, как выбрать устройства, на которых будет запущен V-Ray RT GPU.
V-Ray RT для GPU тестировался со следующими графическими картами:
nVidia GeForce 680 GTX;
nVidia GeForce 580 GTX;
nVidia GeForce 590 GTX;
nVidia GeForce 570;
nVidia GeForce 480 GTX;
nVidia Tesla C2050;
nVidia Quadro 2000M;
Если V-Ray RT для GPU не может найти в системе устройств, поддерживающих OpenCL/CUDA, он просто вернется обратно к коду для CPU. Что бы посмотреть, какой код в действительности использует сервер визуализации V-Ray (для GPU или для CPU), проверьте его консольный вывод.
Версии драйверов для V-Ray RT GPU CUDA:
V-Ray 3.30.04 RT GPU хорошо работает с последними драйверами от nVidia.
Компиляция OpenCL времени исполнения.
В общем случае, из соображений переносимости, код OpenCL компилируется во время выполнения программы (также как шейдеры OpenGL, написанные на GLSL, или шейдеры DirectX, написанные на HLSL), в противоположность коду CUDA, который сначала предкомпилируется, а потом сохраняется в двоичном формате внутри исполняемой программы. Это позволяет коду OpenCL быть переносимым и наиболее оптимизированным для конкретных аппаратных средств, на которых он исполняется. Недостатком является то, что компиляция может занять некоторое время, все зависит от сложности кода OpenCL, количества устройств OpenCL в системе, самого компилятора OpenCL и версии драйвера. К счастью, двоичная версия откомпилированного кода OpenCL может быть кэширована и позднее загружена гораздо быстрее.
В первый раз, когда вы устанавливаете V-Ray RT GPU и выполняете визуализацию с GPU, V-Ray будет компилировать код OpenCL для ваших аппаратных средств. Это может занять от 30 секунд до нескольких минут в зависимости от количества графических карт и версии драйвера. В окне консоли сервера визуализации V-Ray RT вы увидите нечто похожее:
Полученный скомпилированный двоичный код кэшируется на диск во временный каталог для текущего пользователя. При последующих запусках фаза компиляции пропускается, а код загружается непосредственно с диска:
Такая компиляция не требует времени выполнения для движка CUDA и визуализация начинается немедленно.
Выбор устройств для использования при визуализации.
Вы можете не захотеть использовать все доступные устройства OpenCL/CUDA для визуализации, особенно, если у вас есть несколько GPU и вы хотите оставить один из них свободным для работы с пользовательским интерфейсом. Что бы это сделать, вы можете использовать настройки V-Ray RT GPU в 3DS Max, который выключает GPU для RT GPU. Кроме того, ы можете использовать поставляемый инструмент c GUI, который можно найти в Start Menu > Programs > Chaos Group > V-Ray RT Adv for 3ds Max > Select OpenCL devices for V-Ray RT.
После применения этой опции, вам необходимо перезапустить сервер визуализации V-Ray RT (если он работает) для того, что бы изменения вступили в силу. Если сервер визуализации V-Ray RT запускается как служба Windows, вам необходимо ее остановить и запустить снова посредством апплета Services из раздела Administrative Tools в Control Panel.
Обратите внимание, что этот инструмент определяет устройства как с поддержкой OpenCL, так и с поддержкой CUDA.
Балансировка загрузки GPU.
Если в вашей системе только один GPU, вы можете заметить, что пользовательский интерфейс становится медленным и невосприимчивым в то время, когда V-Ray RT использует GPU для визуализации. Для смягчения этой проблемы уменьшите параметры Rays per pixel и/или Ray bundle size в группе Performance настроек визуализатора V-Ray RT в диалоге 3ds Max Render Setup. Например, вы можете попробовать значения типа 128/8 или 128/4. Это будет разбивать данные, передаваемые в GPU, на более короткие цепочки, и запросы пользовательского интерфейса могут быть обработаны быстрее. Однако при этом уменьшится скорость визуализации. Включите отображение статистики для проверки отличия скорости визуализации и найдите оптимальные значения для вашей системы.
Ссылки: https://www.khronos.org/opencl/
Источник: https://docs.chaosgroup.com/display/VRAY3MAX/Set+Up+V-Ray+RT+GPU
Круто!!!