Случилось! Модуль визуализации Cycles на движке OpenCL новой версии Blender 2.75 официально поддерживает рендеринг с помощью видеокарт с GPU от AMD. Хотя всё ещё с некоторыми ограничениями и без прироста производительности (об этом ниже). Я уже около трёх лет наблюдаю за ходом развития событий в ожидании развязки. История, судя по всему, близится к своему счастливому финалу (хотелось бы в это верить).
Ситуация странная, как мне это представляется. Nvidia — главный конкурент AMD на массовом потребительском рынке видеоадаптеров, и оба они — основные соперники, это известно. «Зелёные» уверенно оккупировали плацдарм визуализации благодаря успешной, но закрытой технологии CUDA и вычислительным мощностям Geforce, Quadro и Tesla. «Красные» же, взяв на вооружение родственную открытую платформу OpenCL, форсируют эффективность графических процессоров Radeon и FirePro, но, как мне кажется, с меньшим энтузиазмом смотрят в сторону графических параллельных вычислениий на GPU. Для наглядного представления ситуации можно ознакомиться, например, с этой статьёй, в которой сделан достаточно широкий анализ по спектру программ, использующих компьютерную визуализацию (на английском): «OpenCL vs. CUDA». Чтобы там ни было, «визуал продакшн» чувствует себя несколько обделённым во внимании компании. В качестве собственного «однобокого» аргумента привожу таблицу с популярными «внешними рендерами» на GPU (в алфавитном порядке) с информацией о поддерживаемом «железе»:
визуализатор | Nvidia GPU | AMD GPU | условия использования |
---|---|---|---|
Blender Cycles | поддерживает | ограниченно поддерживает | бесплатный |
Indigo Renderer | поддерживает | поддерживает | коммерческий |
LuxRender | поддерживает | поддерживает | бесплатный |
Octane Render | поддерживает | не поддерживает | коммерческий |
Thea Presto | поддерживает | не поддерживает | коммерческий |
V-Ray RT | поддерживает | ограниченно поддерживает | коммерческий |
Связка AMD GPU + Blender Cycles работала долгое время в экспериментальном формате с существенными ограничениями. На официальном сайте Blender видеокарты AMD не рекомендовались к использованию для визуализации в Cycles. Разработчики модуля объясняли это сложностями драйвера AMD и компилятора OpenCL (программные коды требовали оптимизации алгоритмов вычислений). Сообщество «блендероголовых» пользователей обратилось к программистам AMD на специализированном форуме компании с просьбой исправить проблему. Разработчики отреагировали на призыв доработкой компилятора и что-то сдвинулось с мёртвой точки. Теперь, если Вы владелец видеоадаптера с GPU от AMD серии не ниже HD 7xxx, результат можно проверить сейчас же с помощью свежей версии Blender 2.75. Хотя, глобально, ситуация всё ещё оставляет желать лучшего.
Сам я — довольный обладатель видеокарт с GPU от Nvidia. Тогда, спрашивается, с чем связана моя радость? Отвечаю: замечательно, когда есть альтернативный выбор. За прошедшие три года, модернизируя свои компьютеры, я дважды выбирал «сопроцессоры» для просчёта графики в Blender Cycles. Geforce Nvidia были дороже, видеокарты AMD Radeon — дешевле. Это хорошо: конкурентная борьба чаще оказывается благом для покупателей. К тому же, шина материнской платы одного из моих компьютеров позволяет эффективнее раскрыть потенциал связки процессора и видеоадаптера, если они от одного и того же производителя — AMD. Но так как моим основным и единственным инструментом трёхмерного моделирования и визуализации был и остаётся Blender, то вариант покупки видеокарт с GPU от AMD отпадал. Теперь многое изменилось и я всё ещё с интересом обращаю внимание на девайсы с графическими процессорами прямого конкурента Nvidia.
Какая сейчас ситуация с выбором видеоадаптера? Сильно не ошибусь, если попытаюсь сравнить видеокарты «зелёных» и «красных». С моей очень утилитарной точки зрения достаточно трёх основных критериев для сопоставления: вычислительной мощности устройства, его энергоэффективности и цены. Как это общепринято, чтобы сравнение было корректным, возьмём товары из одной ценовой категории. На момент публикации самой дорогой моделью видеокарты с GPU от AMD, имеющейся в продаже, является Radeon R9 390X по цене от 29 000 рублей. Nvidia за аналогичную стоимость предлагает модель GeForce GTX 980 (стоимость актуальна для российского рынка). Ниже представлена сводная таблица девайсов:
видеоадаптер | универсальных процессоров | TDP | цена |
---|---|---|---|
AMD Radeon R9 390X | 2816 | 275 Вт | от 29 000 рублей |
Nvidia GeForce GTX 980 | 2048 | 165 Вт | от 30 000 рублей |
Итак, количество универсальных шейдерных процессоров, которые, собственно, и выполняют функцию визуализации в Blender Cycles, у AMD Radeon R9 390X больше на 768 единиц, т. е. на треть (точнее — на 37,5%), чем у Nvidia GeForce GTX 980. Но достигается это непропорциональной прожорливостью процессора — потребляемая мощность GPU AMD оказывается больше на две трети (точнее — на 66,7%)! При этом производительность R9 390X в реальном вычислительном тесте LuxMark 2.0 всего лишь на 5% лучше результата GTX 980. Таким образом, у покупателя есть выбор: либо получить чуть лучшую скорость рендеринга с перспективой оплачивать больший расход электроэнергии, либо совсем немногим дольше ждать финальной прорисовки сцен за счёт ощутимой экономии на электричестве. Выбор очевиден и это огорчает.
Ещё о минусах. Реализация Cycles на OpenCL для AMD GPU в активной разработке, поэтому, многое нужно будет «допиливать». Ограничения следующие:
— официальная поддержка видеокарт только с архитектурой GCN (Graphics Core Next — серия HD 7xxx и выше); не все видеоадаптеры серии HD 7xxx имеют эту архитектуру, проверить свою карту можно по ссылке: «List of AMD graphics processing units»;
— официальная поддержка только для платформ Windows и Linux; для OSX проблема всё ещё связана с компилятором OpenCL;
— недоступны функции: Camera Blur, SSS, Smoke/Fire, Volumetrics, Open Shading Language и Transparent Shadows (весь список);
— визуализация доступна только методом Path Tracing;
— не поддерживаются HDR текстуры.
Мой достаточно субъективный вывод такой. Если видеокарта с GPU AMD уже куплена вами и ещё не успела устареть, то новость о возобновлении разработчиками Blender Cycles поддержки компилятора OpenCL, конечно же, — позитивный факт. Но я не готов пока ещё обновить свои «зелёные» Geforce GTX на «красные» Radeon всего лишь по 2 причинам: 1) технология OpenCL не позволяет раскрыть весь потенциал вычислительной мощности GPU и 2) графическим адаптерам AMD неплохо бы умерить свои аппетиты в потреблении электроэнергии. Буду рад изменить своё мнение в будущем, особенно, после скорого выхода нового «монстра» от AMD — R9 Fury X с 4096 (!) потоковыми процессорами. Этот видеоадаптер мог бы стать хорошей единицей для прироста производительности в графических вычислениях. Но не за счёт прироста показателей в квитанции об оплате за электричество.
Автор: Artystarty