evgenj76
Активность: 0
Сообщения | Дата |
---|
Статья в которой всё написано о выборе видеокарты GPU проти
GPU против CPU рендеринга. Стоит ли рендерить видеокартой?
Victor Skea #2124, 37 дней назад
Добрый день. У меня вопрос о GPU-рендеринге. Я в деле буквально недавно и по-тихоньку собираю домашнюю мини-студию. На сегодняшний день уже есть два системника. Оба на базе Core i7 2600, 16 Гб ОЗУ. Один позиционируется, как графический, а второй как игровой. И соответственно различаются они только видеокартами. На графическом Quadro 4000, на игровом Radeon 6970. Игровой по задумке должен был помогать в рендере.
Но вот недавно я узнал, что у NVidia есть технология CUDA и они выпускают графические процессоры Tesla. Судя по их красивым графикам прирост производительности при рендере на GPU превышает CPU более чем в 200 раз.
Еще в их пользу говорит и то, что в Quadro 4000 технология CUDA уже внедрена и я смог лично ее опробовать. И получилось так, что одна средняя видеокарта быстрее рендерит, чем два современных процессора. Пусть и менее точно. Но это уже недостатки сырого ActiveShade от V-ray RT.
Я загорелся покупкой теслы. А как вы относитесь к рендеру на GPU и почему до сих пор процессорный рендеринг не ушел в прошлое? Думаете ли вы перейти на рендеринг в пользу GPU? Вообще правильно ли я решил отдать за на одну электронную плату стоимость равную целому очень хорошему компьютеру?
Антон (RenderStuff) #2125, 37 дней назад
Привет!
На самом деле очень интересная и актуальная сегодня тема.
Я сам ею интересовался и разбирался что к чему. Ниже я поделюсь своими изысканиями на эту тему. Это то, что мне самому удалось узнать касательно GPU рендеринга.
Прежде чем делать какие-либо выводы по поводу рендеринга видеокартой, его целесообразности, необходимо разобраться в самом главном. В том, что же такое GPU рендеринг и с каким типом рендереров он может работать.
Я сам пользуюсь V-Ray, поэтому я брал его как отправную точку.
Основное достоинство V-Ray рендерера в его адаптивности. То есть в способности подстраиваться под конкретную сцену и на основании информации о ней, производить вычисления лишь в тех местах, где это реально необходимо. В то же время, в малозаметных зонах точность вычислений может быть снижена, за счет чего происходит существенная экономия вычислительных ресурсов.
Очень наглядным примером того, как это делается, есть работа адаптивного GI движка Irradiance Map, описанная нами в серии статей про настройки V-Ray.
Такие движки, способные выборочно изменять точность вычислений в разных зонах сцены, называют пристрастными, предвзятыми или тенденциозными. По-английски Biased. По-русски читается как (баиест). Так как они действительно предвзято подходят к вычислениям в сцене, просчитывая более точно лишь те зоны, которые посчитают важными. Помимо этого, результат их просчетов не изменяется от рендера к рендеру.
Такие движки – прерогатива исключительно CPU рендеринга. GPU рендеринг biased-движком не возможен в силу разного подхода к просчету.
Еще одной ключевой особенностью Biased движков является использование интерполяции. Она не только позволяет ускорить вычисления, интерполируя непросчитанные сэмплы, но и избавляет от шума, присущего сгенерированным на компьютере изображениям. Ведь интерполяция, это на практике – размытие.
Однако, тот же V-Ray, имеет в своем арсенале и алгоритмы, имеющие свойства тех, которые используются при рендеринге GPU. В частности, в них нет никакой адаптивности, и все зоны сцены просчитываются одинаково, вне зависимости от их важности.
Ярким примером беспристрастного движка является GI движок Brute force. Он не вычисляет никаких зон, не определяет никакую важность, он просто «шпарит» всю сцену с одинаковой точностью, основываясь лишь на единственной собственной настройке Subdivs, не изменяя качество просчета для всех зон сцены без исключения.
Антон (RenderStuff) #2126, 37 дней назад
GPU-основанный рендеринг аналогично брут форсу беспристрастный. Его называют Unbiased рендеринг.
Справедливости ради, стоит отметить, что Brute force все же не является Unbiased движком, он лишь схож с такими движками и на его примере легко понять практическую разницу.
Так вот, Unbiased движки могут работать с GPU, то есть могут вести вычисления как центральным процессором компьютера, так и видеокартой. Именно об этих Unbiased движках идет речь, когда заходит разговор о GPU-рендеринге.
Как я уже сказал, в Unbiased рендеринге нет адаптивности и уж тем более интерполяции. Вследствие чего, избавиться от шума при Unbiased рендеринге практически невозможно. Разумеется, можно добиться того, что шума будет практически не видно вообще (если специально его не выискивать ). Однако, расплатой за это будет ненормальное увеличение времени рендеринга.
Unbiased движки идеально подходят для GPU рендеринга. Просто потому, что видеокарты по сути и предназначены для таких вычислений.
Дело в том, что Unbiased рендер считает всю картинку сразу во множество потоков одновременно. Это просто идеально подходит для параллельной конвейерной архитектуры GPU видеокарт.
Характерной особенностью Unbiased движка является то, что у него нет как такового конца рендеринга. Unbiased рендериннг длится бесконечно, с каждой секундой просто пополняя просчитываемую картинку новыми цветовыми данными. По своей сути, Unbiased рендерер просто добавляет всю новую и новую цветовую информацию во фрейм буфер до тех пор, пока пользователь принудительно не прервет этот процесс или это не сделает автоматическое прерывание расчетов, заданное вручную перед рендерингом.
Вот посмотрите это знаменитое презентационное видео Unbiased движка V-Ray RT:
Если вы внимательно присмотритесь к рендеру на видео, то вы увидите, что во время движения по сцене картинка получается очень шумной. Но стоит лишь остановиться на каком-то ракурсе, то шум начинает исчезать и картинка становиться более светлой и чистой.
Может показаться, что при движении специально снижается качество, чтобы меньше тормозить вращение RT вьюпорта, а потом улучшается лишь при остановке движения. Но это не так. Unbiased рендерер постоянно ведет просчет текущего ракурса с одинаковой интенсивностью. Просто во время остановки на каком-нибудь ракурсе, видимое изображение начинает дополняться новой цветовой информацией, которая отображается как видимое улучшение. Достаточно оставить такое вычисление в покое, как с каждой минутой видимое изображение будет уточняться. При этом неуточненных точек, которые мы и видим как шум, будет становиться все меньше и меньше.
Для сравнения, Biased движок высчитывает рендер последовательными достаточно крупными порциями. Он не дополняет его бесконечно, он четко выполняет просчет с заданным уровнем качества. В отличие от распаралеленного Unbiased рендеринга, Biased рендеринг более последователен и наибольшим образом подходит для CPU.
Антон (RenderStuff) #2127, 37 дней назад
Вот теперь мы вплотную подошли к сравнению CPU и GPU рендеринга.
Но в самом сравнении находится главный парадокс темы.
Сравнить CPU и GPU рендеринг просто численно на предмет дольше-быстрее нельзя. Точнее, можно сравнить скорость работы CPU и GPU на Unbiased рендерере. Однако это так же глупо, как сравнивать на вспашке поля одинаковые по мощности трактор и спорткар, только по тому, что у того и того по 300 лошадиных сил и оба с колесами
Кстати, именно об этом непробиваемо замалчивают «соревнователи» CPU с GPU. А заодно и маркетинговые лозунги производителей видеокарт.
Дело в том, что никто в здравом уме, в реальной ситуации, не станет рендерить с помощью CPU Unbiased-рендерером, предназначенным для GPU. Это, по меньшей мере, глупо.
Единственным хоть сколь уместным, может быть сравнение Unbiased GPU рендеринга и Biased CPU рендеринга. Однако это сравнение может быть лишь субъективным, так как время Unbiased рендеринга – бесконечность.
Что здесь означает субъективное сравнение?
А значит это то, что сравнивать можно лишь время на создание визуально неотличимых изображений, сделанных Unbiased и Biased движками. То есть, нужно взять конкретную сцену и отрендерить ее Biased движком с помощью CPU. Затем, запустить эту же сцену на просчет Unbiased рендерером на GPU и дождаться пока, визуально качество картинки не станет сравнимым с результатом Biased рендерера. И только потм, сравнивать затраченное на вычисления время.
И, вот тут-то начнутся проявляться «особенности» Unbiased движка. Первая из них это то, что добиться столь же чистой (не шумной) картинки без интерполяции, которая активно применяется при Biased рендеринге, на Unbiased движке «малой кровью» не выйдет. Привидется долго ждать, чтобы видеокарта дополнила фрейм буфер цветовой информацией до полного визуального отсутствия черно-серого зерна. Второй «сюрприз» заключается в том, что Unbiased движок имеет технологические ограничения и его возможности гораздо скромнее, чем у Biased рендерера. Например, тот же V-Ray RT имеет ряд неподдерживаемых функций, то есть он попросту не сможет отрендерить все даже самые, казалось бы, элементарные, эффекты, которые давно доступны Biased рендереру.
Однако, это в общем-то мелочи. Допустим, что первую особенность можно компенсировать покупкой дополнительных видеокарт, а второю просто настройкой сцены другими методами.
Однако третьей существующей проблеме, разумного решения нет. Заключается она в недостаточном количестве Onboard Video Memory. То есть, для серьезной работы, установленных в видеокарте одного, в лучшем случае двух гигабайт видеопамяти, попросту недостаточно, чтобы отрендерить коммерческую сцену с, например, классическим интерьером. При попытке отрендерить обыденную для большинства визеров картинку, Unbiased рендерер просто вывалится, из-за банальной нехватки видеопамяти.
Антон (RenderStuff) #2128, 36 дней назад
Вот теперь мы плавно подобрались к вопросу железа.
Чем Тесла по сути отличается от Квадры? Да ничем
Отличие лишь в бОльшем количестве видеопамяти, установленной в картах серии Tesla.
В некоторые модели установлено аж по 6GB Video Memory, что, в общем-то, не плохо, однако все же недостаточно в особо тяжелых рендерах. Но, что смешно, цена за этих несколько гигабайт видеопамяти, просто ужасающая. За цену одной такой квадры можно купить 5 отличных системных блоков для дистрибутивного рендеринга. Мало того, это еще не самое «смешное». Дело в том, что отличие игровой видеокарты, построенной на том же чипе, в GPU рендеринге, тоже исключительно в объёме видеопамяти, а не как не в скорости смоаго рендеринга. Проверено!
Теперь понимаешь, почему до сих пор процессорный рендеринг не ушел в прошлое?
Макс (RenderStuff) #2129, 36 дней назад
Сразу хочется отметить, что все вышеизложенные рассуждения справедливы только на момент их написания, т.е. конец 2011 года. Рендеринг фотореалистичных изображению с использованием GPU - это очень перспективное направление. Не нужно долго задумываться над тем, чтобы понять, что видео-карта всё-таки сделана для отрисовывания изображений Текущее не самое успешное положение дел рендеринга GPU, да и скорее всего, в ближайшие годы, лишь временно. Рендеринг качественных картинок с помощью мощностей видео-карты находится в своей "младенческой" стадии. В будущем можно будет проводить битвы CPU и GPU. Но на это нужно некоторое время ИСТОЧНИК http://renderstuff.ru/svobodnoe-3d-obsuzhdenie-134-gpu-protiv-cpu-renderinga-stoit-li-renderit-videokartoj/
| 15.12.2011 |