Как настроить vray gpu рендер

V-Ray RT и визуализация с использованием GPU

Обзор

Визуализация с использованием GPU позволяет V-Ray RT выполнять вычисления, связанные с трассировкой лучей, на установленных в системе GPU вместо CPU. Поскольку GPU специально разработаны для выполнения массовых параллельных вычислений, они могут ускорить процесс визуализации на порядок.

CPU — central processing unit (англ.) — центральное процессорное устройство, центральный процессор.

GPU — graphics processing unit (англ.) — графический процессор. Обычно расположен на видеокарте или на специальной плате расширения.

Для включения визуализации с использованием GPU в настройках V-Ray RT для параметра Engine type выберите значение OpenCL (singe kernel) или CUDA (single kernel) .

Поддерживаемые аппаратные средства и драйверы

V-Ray RT для GPU имеет два внутренних интерфейса (или движка). Первый основан на OpenCL (для дополнительной информации об OpenCL см. ниже раздел Ссылки), а второй — на платформе nVidia CUDA.

Движок OpenCL по идее должен работать с любыми аппаратными средствами, совместимыми с OpenCL. Однако, на момент написания этой статьи (28 апреля 2012), только реализация OpenCL от nVidia достаточно разработана для правильной работы V-Ray RT для GPU. Для лучших результатов рекомендуется использовать карты ускорителей с использованием архитектуры Fermi или Kepler, с объемом видеопамяти не менее 2 Гб. Более старые карты также будут работать, но производительность будет значительно ниже. Вследствие того, что для компиляции кода OpenCL необходим большой объём оперативной памяти, в настоящее время это работает только на 64-битной версии V-Ray RT. Может быть возможным запуск движка OpenCL на программной реализации (для центрального процессора) OpenCL от AMD и Intel, однако это пока недостаточно протестировано.

Движок CUDA поддерживается только на 64-битной версии V-Ray RT для карт от nVidia с использованием архитектуры Fermi или Kepler. Рекомендуется использовать движок CUDA для GPU производства nVidia.

Поддерживается визуализация с использованием нескольких 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), проверьте его консольный вывод.

Компиляция OpenCL времени исполнения

В общем случае, из соображений переносимости, код OpenCL компилируется во время выполнения программы (также как шейдеры OpenGL, написанные на GLSL, или шейдеры DirectX, написанные на HLSL), в противоположность коду CUDA, который сначала предкомпилируется а потом сохраняется в двоичном формате внутри исполняемой программы. Это позволяет коду OpenCL быть переносимым и наиболее оптимизированным для конкретных аппаратных средств, на которых он исполняется. За это приходится расплачиваться тем, что компиляция может занимать время, зависящее от сложности кода OpenCL, количества устройств OpenCL в системе, самого компилятора OpenCL и версии драйвера. К счастью, двоичная версия откомпилированного кода OpenCL может быть кэширована и позднее загружена гораздо быстрее.

В первый раз, когда вы устанавливаете V-Ray RT GPU и выполняете визуализацию с GPU, V-Ray будет компилировать код OpenCL для ваших аппаратных средств. Это может занять от 30 секунд до нескольких минут в зависимости от количества графических карт и версии драйвера. В окне консоли сервера визуализации V-Ray RT вы увидите что-то похожее:

Читайте также:  Как починить замок если слетела собачка
[2010/Sep/6|21:05:44] Running RTEngine
[2010/Sep/6|21:05:44] Initializing OpenCL renderer (single kernel version).
[2010/Sep/6|21:05:44] Number of OpenCL devices found: 1
[2010/Sep/6|21:05:44] OpenCL device list:
[2010/Sep/6|21:05:44] Device 0: GeForce GTX 480
[2010/Sep/6|21:05:44] VRAY_OPENCL_DEVICES environment variable not specified; using all available devices
[2010/Sep/6|21:05:44] cl_nv_compiler_options supported!
[2010/Sep/6|21:05:44] Building OpenCL trace program.
[2010/Sep/6|21:06:34] OpenCL program built in 49.156 s

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

[2010/Sep/6|21:46:54] Building OpenCL trace program.
[2010/Sep/6|21:46:54] OpenCL program built in 0.016 s

Такая компиляция времени выполнения не требуется для движка CUDA и визуализация нечинается немедленно.

Выбор устройств для использования при визуализации

Вы можете не захотеть использовать все доступные устойства OpenCL/CUDA для визуализации, особенно, если у вас есть несколько 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, на более короткие цепочки, и запросы пользовательского интерфейса могут быть обработаны быстрее. Однако при этом уменьшится скорость визуализации. Включите отображение статистики для проверки отличия скорости визуализации и найдите оптимальные значения для вашей системы.

Возможности, поддерживаемые GPU

При выполнении на GPU, V-Ray использует упрощенную версию визуализатора V-Ray, которая поддерживает только подмножество всех возможностей кода, используемого для CPU. Поддерживаемые возможности перечислены ниже. Все остальные возможности скорее всего работать не будут.

Геометрия

Поддерживаются триангулированные меши и объекты VRayProxy. Также поддерживаются экземпляры (instance) объектов — см. раздел Экземпляры объектов и Forest Pro.

Источники света

Обратите внимание, что даже для поддерживаемых источников света, реализована работа только подмножества параметров источника света.

  • Стандартные источники света: omni, spot, directional;
  • Фотометрические источники света с профилями web;
  • VRayLight : прямоугольные источники света с текстурами, сфера и источник света типа Mesh без текстур; источник света типа купол (dome) с текстурами (для освещения, основанного на изображении — IBL);
  • VRaySun ;
  • VRayIES с профилем web.

Материалы

  • Материал VRayMtl : диффузный цвет, (размытые) отражения, преломления, непрозрачность, бамп-преобразование, отражения по Френелю;
  • Материал Multi/sub-object ;
  • Материал VRayLightMtl (без опции прямого освещения — direct illumination);
  • Материал VRayBlendMtl (без поддержки опции аддитивного режима — Additive (shellac) mode).

Текстуры

Поддерживаются текстуры типа Bitmap и карты Falloff , VRayHDRI и VRaySky . Другие процедурные текстуры ( Checker , Noise , etc.) поддерживаются посредством их «вжигания» (baking), при условии, что они имеют тип преобразования Explicit UVW . Если включена опция Resize textures for GPU , то все текстуры, загруженные в GPU, пересэмплируются в разрешение, указанное параметром GPU texture size в настройках V-Ray RT в диалоге Render Setup. Также поддерживаются текстуры Mix и ColorCorrection .

Читайте также:  Dns не работает причины

Камеры

  • Стандартные перспективные виды; глубина резкости для этих видов не поддерживается;
  • VRayPhysicalCamera с поддержкой эффектов глубины резкости и боке;
  • Стереоскопическая визуализация полностью поддерживается на GPU.

Текстуры для окружающей среды

Поддерживается только текстура для фона, указанная в диалоге Environment. Она используется для фона (background), GI, отражений и преломлений. Поддерживаются только типы преобразований (mapping type): spherical, mirror ball и angular environment.

Смазывание при движении (Motion blur)

Поддерживается эффект смазывания при движении при условии, что включена опция Motion blur в V-Ray RT и вычисление смазывания при движении разрешено в настройках чистового визуализатора (production renderer) или физической камеры.

Наиболее общие ошибки OpenCL

Ниже приводится список наиболее общих ошибок OpenCL, которые вы можете получить в окне консоли сервера визуализации V-Ray RT:

Error -4 at line XXX, in file ./src/ocl_tracedevice.cpp .

Эта ошибка означает, что для полной визуализации на GPU не хватает объема видеопамяти. Для решения этой проблемы вы можете сделать следующее:

  • Уменьшить параметр «GPU texture size» в настройках V-Ray RT;
  • Уменьшить параметры «Ray bundle size» и/или «Rays per pixel» в настройках V-Ray RT;
  • Уменьшить количество геометрии в сцене.

Ссылки

  • Официальный сайт OpenCL: http://www.khronos.org/opencl/
  • Зона для разработчиков, использующих nVidia CUDA: https://developer.nvidia.com/category/zone/cuda-zone

Перевод © Black Sphinx, 2011-2013. All rights reserved.

Источник

Переезжаем на GPU Rendering, первый опыт(VrayRT 3.5 GPU).

Всем привет. За что мы любим 3д графику? За то, что она не дает заскучать, скорость появления новых технологий зашкаливает и нам нужно постоянно держаться на гребне волны, чтобы быть в теме. Мы можем просиживать за компьютером сутками ̶и̶ ̶г̶у̶с̶я̶м̶и̶ . Кто то любит ковыряться в машинах, а мы собираем своих франкенштейнов своими руками, чтобы увеличить скорость рендера на 5%, разгоняем процессоры, жжем материнки и видеокарты, ведь адреналин может выделяться не только в экстримальных местах, но и прямо за рабочим креслом 🙂 С выходом Vray 3.5 сильно захотелось попробовать ГПУ рендеринг, и это превратилось в этот пост. Под катом все подробности выбора железа, установки, настройки, все подводные камни и ощущения от нереальных скоростей 🙂

После просмотра демо ролика мне буквально не сиделось на месте и я начал собирать информацию о ГПУ рендере везде где только мог, выяснилось что Bulgarov уже давно переехал на ГПУ:

и собрал какого-то нереального монстра с водяным охлаждением, а так же небезызсвестный DabartiCGI тоже перешел на ГПУ и во всю пропагандирует вегетарианство и сыроедство его.

У него система уже попроще, но всё равно довольно дорогая. Основные тезицы которые я почерпнул исследовав интернет такие:

1. Видеокарты могут быть разными(но просчет только Nvidia)

2. Количество памяти может быть разным. Оно не суммируется и используется наименьший объем памяти из всех доступных у видеокарт

3. Можно сочетать Ati/AMD(для отображения изображения с мониторов) и Nvidia для рассчетов

4. Sli режим не нужен, достаточно просто выбрать нужное количество видеокарт для просчетов

5. Основная проблема это охлаждение и питание.

Немудурствуя лукаво я зашел на интернет магазин и купил 7 видеокарт Nvidia 1070GTX 8Gb(25-35 тыс руб штука) которые были в наличии разных производителей и цены, чтобы проверить все тезисы выше, а так же 2 БП 1200 и 1000Ватт(8-10тр штука) чтобы точно хватило(заявленное потребление у видеокарт 150 ватт штука).

Первым делом выяснилось, что просто так вставить 7 видеокарт в одну материнскую плату невозможно, даже если в ней есть 7 PCI-express-x16, они попросту туда не влезут, поэтому покупать специальную материнскую плату не надо. Достаточно любой «Gaming» с 4хPCIexpress-x16(это стандартные длинные пазы для видеокарт) и 3xPCIexpress-x1(урезанные, обведены красным)

Читайте также:  Как настроить проксирование nginx

К сожалению моя настольная материнка была с тремя большими ГПУ слотами и совсем не подходила даже для простой ГПУ станции, поэтому я пошел на балкон:

У нормальных людей на балконе можно найти много чего полезного, а у меня там — рендерферма 🙂 С открытым окном в минус 30 рендерится очень хорошо:) Оказалось что почти все материнки для Xeon «нормальные» и я выбрал Gigabyte x99 Gaming 5:

Она компануется 4мя длинными и 3мя короткими PCI через 1, что позволяет воткнуть 4 видеокарты в обычный корпус MidiTower за 1000 рублей. Вы спросите, а как же всё таки воткнуть все 7 видеокарт в одну материнскую оплату? Оказалось, что тут без рукожопства уже не обойтись и найти детали в обычном супермаркете электроники около дом нереально, потому что нужно расширить короткие PCIexpress слоты с помощью специальных расширителей — «Raiser» или «Extender PCI». Они есть разных видов, но мне посоветовали вот такие:

Попутно выяснилось что Fedex,DHL и все скоростные доставщики больше физлицам в РФ не отправляют ничего, продавец прискорбно сообщил об этом и добавил мне к заказу ещё 2 удлинителя(к 20 которым я купил) и отправил всё Почтой россии/EMS, я превратился в ждуна и собрал 4хГПУ систему:

До этого у меня была 980GTX 4 GB и я решил оставить её для тестов рендера с разной памятью. Zotac был самый дорогой, в металлическом корпусе, с диодной подсветкой и т п + ещё одна самая дешевая 1070gtx от нвидии из пластика и с всего 8 пинами питания вместо 16 как у остальных.

Проблемы при сборке:

1. Видеокарты очень длинные (возможно кому то придется вырезать мешающиеся запчасти)

3. Видеокарты лучше втыкать по одной, почему то на двух материнках изначально заработало только во втором слоте ГПУ с одной видеокартой(в биосе стоит по умолчанию первый PCIe)

4. Биос стартует гораздо дольше!

5. Windows может после старта висеть с черными экранами 2-5 минут каждый запуск(проверено на 7ке и 10ке). Просто ждите 🙂

Ну и вот так это всё примерно выглядит.

Я перешел на 4к рендеринг видео, поэтому мощностей всегда не хватает. Например этот 21 секундный ролик в Corona рендерился почти неделю, это конечно не приемлиемо:

Даже с использованием Vray один кадр с 4к честным дофом или моушен блюром рендерится около 2х часов на моем 44ядерном Xeon, что то типа такого:

GPU на 4х видеокартах рендерит подобные кадры за 25-30 минут. При этом стоимость видеокарт в сумме около 2000$ , а процессор 2500$ Конечно настраивать ГПУ сцены несколько сложнее, некоторые вещи ещё не поддерживаются, но доработка практически любой сцены не занимает много времени.

Первый тест ГПУ я провел на сцене изначально сделанной под ЦПУ :

Превью рендеринг анимации 480*320 с честным дофом занял 3 часа, пока я ездил в магазин за едой на одном компьютере! Это очень круто.(сетка немного глючит изза неверного подбора ФПС, именно за этим такие тесты и прогоняются 🙂

Остальные видеокарты ушли во второй рабочий комп моему напарнику, и в ожидании удлинителей пока всё останется так как есть, а потом будем добивать рабочий объем до 7 ГПУ 🙂 но это уже в следующем посте, а пока все — итак сильно затянул, не забывайте ставить оценки, если вам понравилось и репостить где надо и не надо.

Источник

Оцените статью