Blender + AMD GPU = Заработало

image


Случилось! Модуль визуализации 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 (!) потоковыми процессорами. Этот видеоадаптер мог бы стать хорошей единицей для прироста производительности в графических вычислениях. Но не за счёт прироста показателей в квитанции об оплате за электричество.
Share post

Similar posts

Comments 25

    0
    либо совсем немногим дольше ждать финальной прорисовки сцен за счёт ощутимой экономии на электричестве

    Ощутимой ли? Из расчетов, которые я видел, следует, что за год набегает разница порядка тысячи рублей. Это несерьезно, разве что понадобится собирать кластер.
      0
      Не приложите расчет?
        0
        Я потерял чудный сайтик, который вместе с прочими характеристиками еще и стоимость содержания показывает, но, скажем, вот видео, демонстрирующее (6:01), что будет, если энергопотребление увеличить вдвое (тут для процессоров, и методики измерения меня смущают, но, скорее всего, если сделать нормальные испытания, результаты на порядок не поменяются). Это при нагрузке 100%. Я не особо в курсе специфики работы дизайнеров, но я сомневаюсь, что они 24\7 что-то рендерят. Скорее всего, видеокарта вместе с процессором в это время практически простаивают, а в этом случае разницы видюхами AMD и Nvidia практически нет. Процессор, монитор и кофемашина вместе перекрывают эти несчастные 100 ватт.
        www.youtube.com/watch?v=IeIFj-3RYKU
          0
          Я не особо в курсе специфики работы дизайнеров, но я сомневаюсь, что они 24\7 что-то рендерят.


          Задачи у дизайнеров разные бывают :) Я недавно нагрузил два своих компьютера 750 кадрами графики формата FullHD (в среднем по 22 минуты просчёта на один кадр), получилось чуть меньше недели без перерыва. Apcupsd в среднем ватт 280-300 показывал, т. е. если взять по максимуму, 600 Вт (300 Вт х 2 компьютера) х 5,7 дней (137 часов) получается ~ 80 кВт⋅ч электроэнергии. Берём актуальный с июля 2015-го тариф в 4.12 рубля, умножаем и получаем примерно 340 рублей (для простоты подсчёта значения округлил). И это всего за 6 дней. С прожорливыми на 66,7% видеокартами я бы раскошелился на 565 рублей. Мог ошибиться в расчётах, поправьте если не прав, но «картина маслом», как говорится :)
            0
            200 рублей разницы, если учитывать 8% ускорения. По хорошему, потребление процессора тоже надо скостить, ну да ладно. Предполагаю, что до этого вы работали дольше чем неделю. Вероятно, не бесплатно. :) Т.е. да, разница есть, но сколько-либо существенным фактором в выборе железа я бы её точно не назвал. А в блендере есть какие-нибудь инструменты, позволяющие настраивать качество картинки? Пожертвовать качеством отражений в каком-нибудь темном углу и сразу выиграть часов десять на рендер, скажем. Вот здесь уже можно разглядеть потенциал для экономии.
              0
              200 рублей разницы, если учитывать 8% ускорения

              Так это же за 6 дней. В месяц хотя бы по паре таких проектов и — та-да-а-ам! — за год солидно набежит.

              А в блендере есть какие-нибудь инструменты, позволяющие настраивать качество картинки?

              Да, Blender Cycles достаточно полноценный визуализатор, можно настраивать параметры и добиваться меньшего времени рендеринга, но в разумных пределах, иначе шум (sampling noise) будет заметен, да и качество материалов может начать быть «пластилиновым».
                0
                Ну чтобы такой проект собрать, нужно хотябы неделя, в лучшем случае. Ну не будете же вы ради фана рандомно 10 000 обьектов раставлять и настривать самые причудные материалы :). Автор комента выше это упомянул. Тоесть в случае полной занятости набежит порядка 24 таких рендеров. При хоббы, в лучшем случае 15 рендеров или 3000 рублей разницы, не так уж и много если это хобби объединить с комерческой составляющей (халтурки разные). И еще вопрос: есть ли возможность останавливать рендер? К примеру если есть 2-3х тарифные счетчики, то можно ставить только на самый дешевый тариф рендереться, и профит по цене будет солидный. Правда время рендера также солидно увеличиться.
                  0
                  При хоббы, в лучшем случае 15 рендеров или 3000 рублей разницы, не так уж и много если это хобби объединить с комерческой составляющей

                  На «экономической» составляющей свет клином не сошёлся. Есть более важные ограничения, я об этом в публикации в предпоследнем абзаце упомянул. А так — да: я готов платить чуть больше за электричество при условии лучшей производительности.
                  есть ли возможность останавливать рендер?

                  Только при покадровом просчёте, если рендерится последовательность кадров анимации. Перезапуск просчёта статичной графики пока невозможен. Это один из milestone'ов будущих изменений программы.
                0
                Кстати, да, совсем забыл. Ещё одна сторона «прожорливости», особенно в летнее время: тепловыделение и шум вентилятора системы охлаждения. Аргумент? :)
                  0
                  но в разумных пределах, иначе шум (sampling noise) будет заметен, да и качество материалов может начать быть «пластилиновым».

                  Нет, про глобальное качество это понятно. А более локальные изменения можно сделать? Никто не будет придираться, если однотонная серая область будет чуть более однотонной. Никто не будет разглядывать, что тень от камешка на заднем плане нарисована чуть более грубым алгоритмом, чем остальная сцена. Вот что-то в таком плане есть? Мало ли, мне пришла в голову божественная бизнес-идея.
                  Аргумент? :)

                  Если на то пошло, а сколько стоит аренда фермы для рендера? У них и электричество оптом, и железяки мощнее. При таком раскладе вам и на дискретную видяху тратиться не надо при более быстром результате.
                    0
                    А более локальные изменения можно сделать?

                    Ну, это лучше на конкретных примерах. Если абстрактно, то да — вручную можно детали подшаманить, например, «запечь» бэйком тени, отражения и прочее.
                    а сколько стоит аренда фермы для рендера?

                    Дешевле виртуальный сервер на Амазоне арендовать. Интересовался этим вопросом когда-то. Но это вариант для оплаченных заказов, если клиент смету утверждает. А есть ещё «условно бесплатное» хобби, для которого ни фермы, ни сервера могут не окупиться.
                      0
                      При таком раскладе вам и на дискретную видяху тратиться не надо при более быстром результате.

                      Фишка Blender Cycles в интерактивности — в том, что в реальном времени можно настроить шейдеры, выставить освещение. Для этого, в принципе, и маломощная «видюха» подойдёт. А рендерить с финальным качеством можно после на крутом рендер-сервере. Но какой же кайф работать в программе на достаточно быстром «железе», когда прорисовка сцены получается почти мгновенно. Короче, без дорогой карты, физически присутствующей «под столом», как ни крути, никак.
                  0
                  Увы, но указанный на коробке TDP и реальное энергопотребление в различных задачах довольно сильно отличаются.
                  Та же GTX 980 будет в среднем потреблять 190 ватт в игре при 1080p и локе на 60 фпс, но стоит её серьёзно нагрузить и получите энергопотребление под триста ватт.
                    0
                    В тесте под нагрузкой Radeon R9 390X выдал на 20% больший аппетит в сравнении с GTX 980. Но, благодаря каким конкретно задачам получили такой результат — не ясно.
            +1
            Блииин(( Неужели моя 6970 считается дропнутой в плане поддержки уже? Вроде не из самых слабых, флагман недавний все-таки. Надеюсь бэкпортируют. Очень интересно попробовать.
              0
              5 лет — не так уж и недавно.
                0
                Так разница в производительности с текущими всего около 15%…
                  0
                  Зато микроархитектура другая: там и шестидесяти четырёх разрядные инструкции, и гетерогенный доступ к памяти, и современные спецификации, да и тот Mantle API. Когда выпустили первые APU «Llano» они тоже поначалу сливали более старым Атлонам, но затем архитектура доказала свою эффективность.
                    0
                    Эх. Менять сейчас на что-то сопоставимое по мощности просто непотребно по цене(
                      0
                      AMD Radeon HD 7970 в зависимости от состояния использования, вплоть до заводской упаковки, можно найти по цене от 6 до 10 тысяч рублей. Для сравнения, я свой 7950 покупал где-то 3,5 года назад за 13.
                        0
                        Менять сейчас на что-то сопоставимое по мощности просто непотребно по цене

                        Вы в сторону 290X-390X смотрите? Есть более интересные по цене варианты. Например, Radeon R9 280X с 2048 шейдерными процессорами на борту. Стоимость от 8,5 тыс. рублей. (в Краснодаре, правда, дороже 10 тысяч). У Radeon 6970 число вычислительных устройств равно 1536. Вполне сопоставимо, даже «с запасом». Или, как вариант, — R9 285 (1792 «ядер»).
                          0
                          Надо бенчмарки сравнить, чтобы относительные попугаи сравнить. Как минимум мой килограммов брусок трубок и меди ещё и воет под нагрузкой адово.
                0
                В качестве дополнения. В черновике для этой публикации была информация, которую я удалил из «финальной редакции»: R9 290X («предшественница» 390X) стоит сейчас в районе 20 000 рублей (видимо, распродажа в связи с выходом новых устройств). У этой модели сходные с 390X характеристики, включая количество универсальных шейдерных процессоров — 2816, но всего лишь на 15 Вт большее энергопотребление. Возможно, для кого-то сэкономленные 10 000 рублей могут оказаться существенным бонусом при выборе видеоадаптера.
                  0
                  Выбор очевиден и это огорчает.


                  Не стоит верить всем надписям на коробке.
                  У GTX 980 сильно порезаны FP64 операции, а указанное значение в 165 ватт очень «специфическое» — при постоянной нагрузке она будет жрать те же 280-290 ватт.
                  Так что на электричестве экономии не будет.
                    0
                    Не стоит верить всем надписям на коробке

                    Верю не только «надписям на коробке», но и тестам визуализации (более значимому критерию) — в публикации есть ссылка на тест LuxMark 2.0. Про «экономию» уже ответил выше — не самый важный момент. Я рассматривал комплекс «плюсов» и «минусов». Один фактор сам по себе немного решает.

                  Only users with full accounts can post comments. Log in, please.