Может ли Cray XK6 запустить raytracer в реальном времени? - PullRequest
5 голосов
/ 27 мая 2011

Я слышал о новом суперкомпьютере Cray - XK6 - сегодня, но меня немного смущает, где узкие места.Это во взаимосвязи?Может ли XK6, сконфигурированный, скажем, с 500 000 16-ядерных процессоров, достичь графической точности, сравнимой с Toy Story 3 в режиме реального времени?Под «в реальном времени» я имею в виду 60 кадров в секунду, или около 16,7 миллисекунд на кадр.

Ответы [ 2 ]

6 голосов
/ 27 мая 2011

Нет. Чистые вычисления на удивление мало того, что требуется для визуализации кадра фильма из «Истории игрушек 3» или подобного современного анимационного (или VFX) фильма. Эти сцены могут ссылаться на многие сотни ГБ текстуры, и даже если вы точно знаете, какое подмножество этой текстуры понадобится для кадра, это может быть десятки ГБ, которые по-прежнему необходимо считывать с диска и / или передавать по сеть. Графические процессоры или массивно параллельные распределенные вычисления не ускоряют это. Кроме того, рендеринг - это только самый последний шаг ... подготовка геометрического ввода для кадра (имитация жидкостей, ткани и волос, тестирование геометрии, чтение и интерпретация больших сцен с диска) может быть существенной.

Итак, просто вытаскивая числа из воздуха (но они умеренно реалистичны), скажем, требуется 30 минут для подготовки сцены (загрузка моделей, тесселяция, некоторые второстепенные симы и т. Д.) И 4,5 часа для рендеринга (из которых, скажем, 30 минут считывает текстуру и другие ресурсы с диска, оставляя 4 часа «трассировки лучей» и других вычислений). Если бы XK6 сделал трассировку лучей бесконечно быстрой, это всего лишь ускорило бы общий процесс в 5 раз (1 час все еще трудно сериализовать для подготовки и ввода-вывода). Это закон Амдаля для тебя.

Теперь вы, вероятно, спрашиваете себя: "Как игры идут так быстро?" Они делают это двумя способами: (1) они радикально сокращают набор данных (размер текстуры, геометрическое разрешение и т. Д.), Чтобы все это помещалось в графический процессор и были достаточно быстрыми для загрузки уровней (что, любопытно, что вы, пользователь, не учитываете, когда думаете, что рендеринг происходит в «реальном времени»); (2) они экономят без затрат на вычислениях, уловках и человеческом труде, чтобы оптимизировать сцены и алгоритмы перед тем, как отправлять диски, так что когда он находится перед проигрывателем, он может быстро рендериться.

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

0 голосов
/ 30 июля 2013

Глядя на это с другой точки зрения, пользователи обычно визуализируют только одну сцену за раз, затем вносят небольшие изменения и перерисовывают снова и снова. Для рендеринга только одной сцены в реальном времени может потребоваться загрузка нескольких ГБ текстур в ОЗУ графического процессора.

Может ли суперкомпьютер типа Cray, использующий «море ядер», или огромное количество современных процессоров выполнять эту работу в режиме реального времени? Да, для достаточно простых сцен. Более сложные сцены, требующие 100+ лучей на пиксель при 8MP (4K x 2K для фильмов, 2MP для DSLR / инди-фильмов), наряду с большим количеством объектов, теней, мутности, преломления, источников рассеянного освещения и т. Д.), Вероятно, потребуют слишком много вычислений, даже при 24 кадрах в секунду.

...