Подтвердить что ты не робот

Почему мы используем процессоры для трассировки лучей вместо графических процессоров?

После некоторого исследования растеризации и трассировки лучей. Я обнаружил, что информации о том, как работают процессоры для трассировки лучей в Интернете, мало информации. Я наткнулся на статью о Pixar и о том, как они предварительно отображали автомобили 2 на процессоре. Это заняло у них 11,5 часов за кадр. Неужели GPU не сделает это быстрее с тем же качеством изображения? http://gizmodo.com/5813587/12500-cpu-cores-were-required-to-render-cars-2 https://www.engadget.com/2014/10/18/disney-big-hero-6/ http://www.firstshowing.net/2009/michael-bay-presents-transformers-2-facts-and-figures/ Ура, Сэм

4b9b3361

Ответ 1

Я один из архитекторов программного обеспечения рендеринга в большой студии VFX и анимированной студии с проприетарным рендерером (не Pixar, хотя я и был архитектором программного обеспечения рендеринга там, давно, давно).

Почти весь высококачественный рендеринг для фильма (у всех крупных студий, со всеми основными рендерингами) есть только процессор. Есть несколько причин, почему это так. В каком-то конкретном порядке некоторые из действительно привлекательных, чтобы дать вам вкус проблем:

  • Графические процессоры работают быстро, когда все в памяти. Самые большие карты GPU имеют, что, 12 ГБ или около того, и он должен содержать все. Ну, мы обычно визуализируем сцены с 30 ГБ геометрии и эта ссылка 1 ТБ или более текстуры. Невозможно загрузить это в память GPU, это буквально на два порядка слишком велико. Поэтому графические процессоры просто не могут справиться с нашими самыми большими (или даже средними) сценами. (С помощью рендеринга ЦП, мы можем печатать вещи с диска, когда нам нужно. Графические процессоры не очень хороши.)

  • Не верьте, что реклама, трассировка лучей с помощью графических процессоров - не очевидная победа над процессором. Графические процессоры отлично справляются с очень последовательной работой (одновременно выполняют одни и те же операции с большим количеством данных). Трассировка лучей очень некогерентна (каждый луч может идти в другом направлении, пересекать разные объекты, оттенять разные материалы, получать доступ к различным текстурам), и поэтому этот шаблон доступа очень сильно ухудшает производительность графического процессора. Только совсем недавно трассировка трассировки графического процессора могла соответствовать лучшему кодеку трассировки лучей на основе процессора, и даже несмотря на то, что он превзошел его, он не намного, не достаточно, чтобы выбросить весь старый код и начать новый с багги-хрупкого кода для графических процессоров, И самые большие, самые дорогие сцены - это те, где графические процессоры только немного быстрее. Быть намного быстрее на легких сценах для нас не очень важно.

  • Если у вас в вашем процессоре на основе процессора 50 или 100 человеко-лет, вы просто не выбрасываете его и не начинаете с того, чтобы получить ускорение 2x. Усиление программного обеспечения, стабильность и т.д. Важнее и больший фактор затрат.

  • Аналогично, если ваша студия имеет инвестиции в центр обработки данных, вмещающий 20 000 ядер процессора, все в наименьшем, наиболее мощном и теплоэффективном форм-факторе вы можете, что также инвестиции в потопленные затраты вы не просто выбросить. Замена их новыми машинами, содержащими вершину линейных графических процессоров, значительно увеличивает стоимость вашей фермы рендеринга, и они больше и производят больше тепла, поэтому это буквально может не вписаться в ваше здание.

  • Amdahl Law: фактический "рендеринг" как таковой является всего лишь одним этапом в создании сцен, а графические процессоры не помогают. Скажем, что для полного создания и экспорта сцены в рендеринг требуется 1 час, а 9 часов - "рендеринг", и из этих 9 часов час читает текстуру, тома и другие данные с диска. Таким образом, из общего количества 10 часов, как пользователь испытывает рендеринг (кнопка до тех пор, пока окончательное изображение не будет готово), 8 часов потенциально ускоряются с помощью графических процессоров. Таким образом, даже если GPU был в 10 раз быстрее, чем процессор для этой части, вы переходите от 10 часов до 1 + 1 + 0,8 = около 3 часов. Таким образом, 10-кратное ускорение GPU переводит только на 3-кратный фактический прирост. Если бы GPU был на 1000 000 раз быстрее, чем процессор для трассировки лучей, у вас все еще есть 1 + 1 + крошечный, что всего лишь 5-кратное ускорение.

Но что по-разному в играх? Почему графические процессоры хороши для игр, но не для фильма?

Прежде всего, когда вы делаете игру, помните, что ее нужно визуализировать в реальном времени - это означает, что ваше самое важное ограничение - это частота кадров 60 Гц (или что-то другое), и вы жертвуете качеством или функциями, когда это необходимо для достижения что. В отличие от фильма, нерушимое ограничение делает директора и руководителя VFX счастливыми с качеством и взглядом, который он или она хочет, и как долго это займет у вас, чтобы получить (до некоторой степени) второстепенное.

Кроме того, с игрой вы представляете кадр после кадра после кадра, живите перед каждым пользователем. Но с фильмом вы фактически оказываете ОДИН РАЗ, а то, что доставляется в кинотеатры, - это видеофайл, поэтому кинозрители никогда не узнают и не уберут, если вам понадобится 10 часов за фрейм, но они заметят, если он выглядит не очень хорошо. Так что опять же, на тех, кто делает длительное время, меньше штрафа, пока они выглядят потрясающе.

С игрой вы действительно не знаете, какие кадры вы собираетесь отображать, так как игрок может бродить по всему миру, просматривать из любой точки. Вы не можете и не должны пытаться сделать все это совершенным, вы просто хотите, чтобы он был достаточно хорош все время. Но для фильма все снимки сделаны вручную! Огромное количество человеческих времен входит в состав, анимацию, освещение и компоновку каждого кадра, а затем вам нужно только один раз его отобразить. Подумайте об экономике - как только 10 дней календаря (и зарплаты) перейдут в освещение и составят выстрел в самый раз, преимущество его рендеринга через час (или даже минуту) против ночи, довольно мало и не стоит любая жертва качества или достижимой сложности изображения.