Practice/Siggraph2007KurortnyjjSiggraph/Hard

Железные достопримечательности


Авторы: Сергей Цыпцын, Берто, Паоло
Опубликовано в журнале «Компьютерра» №33 от 18 сентября 2007 года


Производителей железа на выставке традиционно было немного. Они благополучно сбегают на более «тяжелые» выставки NAB в Лас-Вегасе и IBC в Амстердаме. Впрочем, сверхагрессивно настроенная AMD в компании с благополучно приобретенной ATI отгрохала шикарный кобальтовый стенд, на котором на станциях Hewlett-Packard стремительно крутились многочисленные приложения из разных областей индустрии. AMD явно придерживает в рукаве некоторые козыри, разработанные уже после покупки ATI, и не торопится делать вызывающие заявления. Среди прочих экспонатов процессорного гиганта меня сильно впечатлила желтенькая книженция «Мультиядерность для Чайников» («Multi-Core Processing for Dummies»). Прихватил в собой, регулярно почитываю, полезная вещь.


Стенд nVidia был усеян серыми гробиками – супервидеоускорителями Quadro Plex. Это внешние видеокарты нереальной производительности и такой же нереальной цены. Они призваны не только крутить миллиарды полигонов на экране, но и ускорять вычисления в различных программах, разгружая центральный процессор и перекладывая часть вычислений на графический процессор (GPU). Апофеозом такого ускорения стала демонстрировавшаяся на стенде связка Quadro Plex и nVidia Gelato 3.0, пакета для рендеринга трехмерных сцен с полной поддержкой ускорения расчетов на GPU (от nVidia, разумеется). На сцене средней тяжести ambient occlusion рассчитывался в течение одной (!) секунды. Стоявший рядом со мной Алексей Kidd Пузиков, автор легендарной программы Shaderman, чуть не упал в обморок от таких результатов и долго потом недоверчиво мотал головой.


Впрочем, nVidia решила пойти еще дальше. Если видеокарта способна так ловко ускорять расчеты, то зачем ей «видео»? Незачем, решили разработчики nVidia и выпустили графический процессор Tesla, который ничего на экран не выводит, а лишь ускоряет расчеты. Это карта PCI Express, на борту которой находится один или два Tesla GPU.


Такой GPU содержит 128 параллельных процессоров и должен обеспечивать производительность в половину терафлопса. Карт с Tesla GPU можно запихнуть в компьютер несколько штук, разогнав производительность до 8 терафлопс.


Спираль эволюции сделала очередной виток. Помните карты от ARTVPS, напичканные специализированными процессорами, которые только ускоряли рейтрейсинг и больше ничего не делали. (Кстати, карты Pure и рендерер Rende Drive? от ARTVPS еще живы и называются теперь AR500 и Ray Box? соответственно. И даже продаются по цене 8300 долларов.) Конечно, в решениях от nVidia прослеживается определенная прагматичная последовательность: вы покупаете ускоритель вычислений (младшая модель Tesla CPU Computing Processor стоит полторы тысячи долларов), затем, если вы не разработчик, а скромный труженик cg-индустрии, вы должны прикупить еще продукты от nVidia, поддерживающие этот ускоритель, – например, рендерер Gelato, действительно интересный, быстрый, но и не дешевый, 1500 долларов. Он умеет обрабатывать сцены из Maya, 3ds max и других трехмерных пакетов. Таким образом, ситуация сильно напоминает ситуацию конца прошлого века с картами ARTVPS. Конечно, если вы разработчик, вы можете воспользоваться инструментарием CUDA от nVidia, позволяющим перекомпилировать ваши программы для использования всей мощи графических процессоров в расчетах произвольного типа. Это, бесспорно, гораздо более гибкий подход, но достаточно жестко привязанный к решениям от nVidia.


Если в позапрошлом году Сигграф сходил с ума от ускорения рендеринга на GPU, в прошлом – от ускорения физики (в основном для игр) с использованием видеокарт, то в этом году дискуссии наконец-то вышли на более абстрактный уровень обсуждения GPGPU (General Purpose GPU) – графических процессоров общего назначения. Столь модная еще год назад игровая физика начисто исчезла со стендов.


Приложения, задействующие GPU, пошли «вширь». Среди них на стенде nVidia был замечен mental mill от компании mental images, интерактивная среда разработки материалов, причем не только для системы mental ray (как следовало бы ожидать), но и с возможностью экспорта результата в различные языки описания шейдеров – HLSL, GLSL, Cg FX, Meta SL?. Удивительной особенностью mental mill является то, что все иконки-ноды, традиционно обозначаемые условными значками, представлены здесь как мини-openGL-окна, внутри которых можно видеть промежуточный или финальный результат (трехмерную картинку) без всякого просчета, прямо в реальном времени. В окошках можно панорамироваться, приближаться, крутить камеру, как в обычных трехмерных пакетах. Есть даже заготовка материала для воды в виде мини-пляжа с набегающей на берег волной. Кстати, mental mill был впервые показан в апреле в Москве на конференции CGEVENT и вызвал, помнится, большой фурор. По заявлению производителя, работает эта радость пока лишь на картах Quadro FX 3400 и выше, но время покажет, сумеют ли пользователи приспособить это решение к более демократичным устройствам.


Второе пришествие Cell


Меня давно занимала мысль о том, когда, наконец, процессор Cell пойдет в широкие массы. На околице выставки мною была обнаружена компания Mercury Computer Systems, предлагающая населению карту PCI Express, на которой размещено некоторое количество процессоров Cell. Карту сию следует вставить в обычный PC и наслаждаться преимуществами новой процессорной архитектуры. Чтобы оприходовать магическую мощь Cell, надо иметь программы, которые умеют этот процессор использовать. Дабы перекомпилировать свои шедевры под Cell, компания Mercury предоставляет специальный Multi Core? Plus SDK, который может быть использован с коммерческими компиляторами от IBM либо с неким бесплатным компилятором под Linux. Никакой Microsoft Visual / Net? не поддерживается, ибо работает все это хозяйство только под Linux. На стенде работали сертифицированные Mercury «писюки» в лице HP+AMD+Cell-карта; на них, к сожалению, крутились уже набившие оскомину двадцать четыре окна-плеера, одновременно и плавно декодирующие двадцать четыре потока видео в формате H.264. По словам разработчиков, сертификация условная и желающие могут попытаться собрать Linux-машину из любых доступных компонентов. Стоит Cell-карта с программной обвязкой 8000 долларов. В ответ на мои слова о том, что за такие деньги я могу собрать много (например, двадцать) изрядно мощных компьютеров (без всяких мониторов, дисков и видеокарт), стендовые инженеры не моргнув глазом заявили, что ожидают ускорения приложений в сорок раз.


Шумиха вокруг Cell подогревалась заявлениями некоторых компаний о портировании своих приложений под Cell-архитектуру. И если до Сигграфа я благополучно игнорировал громкие маркетинговые пресс-релизы компаний, не относящихся к миру «тяжелой» графики, то обещания mental images и Side Effects (!) портировать свои приложения на так называемый Cell Computing Board от Sony заставили меня срочно нырнуть в Интернет. Одно только сочетание «Houdini для Cell» отдает сильнейшей интригой для всей индустрии компьютерной графики.


Смущает, правда, что компании планируют показать первые результаты во второй (!) половине будущего года. Для заявлений, сделанных в экзальтированной индустрии компьютерной графики, это может означать «никогда».


Подытожить дискуссии о специальных ускорителях вычислений можно, упомянув находящийся в разработке процессор Larrabee от компании Intel, традиционно не участвующей в Сигграфе. Похоже, Intel собирается одним выстрелом убить целую популяцию зайцев. И под обстрел попадут не только nVidia, ATI, AMD, но и многие другие. Производительность 1 терафлопс, до 48 ядер на процессоре, графические ядра и пр. По слухам, этот монстр может вначале появиться как графический ускоритель на плате PCI Express 2, и вот тогда расстановка сил на рынке графических (и не только графических) ускорителей может сильно измениться. Но не раньше 2009 года.


Контрольный Hypershot


Пока конкуренты сходят с ума от ускорения вычислений на GPU или разрабатывают специальные процессоры и платы-ускорители, немецкая компания Bunkspeed (www.bunkspeed.com) взяла и написала чисто программный рендерер Hyper Shot?, то есть пакет для просчета трехмерных сцен. Он не использует никаких ускорителей, но считает сверхъестественно быстро. Мистически быстро. Нечеловечески быстро. С поразительным качеством и уровнем фотореализма. Вы слегка поворачиваете в пространстве свою модель и пытаетесь подвинуть источник света, а в это время картинка уже полностью пересчитана. «Интерактивная фотография» – так называют свое детище разработчики. Рейтрейсинг в реальном времени.


Программа предназначена прежде всего для автомобильной промышленности и промышленного дизайна, поэтому деформация моделей не поддерживается, это скорее интерактивный рендерер для моделей, «приехавших» из CAD-систем. Hyper Shot? призван полностью заменить процесс прототипирования – изготовления демонстрационных образцов будущих изделий для визуального контроля и коррекции. Действительно, просчитанные за несколько секунд автомобили выглядят очень реалистично. Картинка звенит и хрустит. Рейтрейсинг поддерживается на полную мощность, включая Full Global Illumination. HDRI-карты и тени. Реальная оптика и линзы. Физически корректные материалы. CPU, никакого GPU. И скорость, скорость, скорость! Промышленные дизайнеры бились в истерике прямо на стенде.


В отличие от многих выставок, на Сигграфе работают исключительно компетентные люди. Если не брать титанов индустрии, то на стенде зачастую находятся авторы идеи и кода, инженеры-разработчики, основатели компаний. Практически на все ядовитые вопросы можно получить не менее перченые ответы. Исключение составляет компания Corel, на стенде которой я уже третий год подряд не могу получить ответ на вопрос, где и как мне найти документацию к мощным скриптовым возможностям пакета Corel Painter. Похоже, ее прячут от хакеров специально.


Сермяжная правда


Рендерер Gelato – детище легендарного Ларри Гритца, соавтора книги “Advanced Renderman”. Компания Pixar уже много лет пытается засудить Ларри за использование в Gelato ряда алгоритмов, вроде бы являющихся интеллектуальной собственностью Pixar. Последнюю, очевидно, раздражает полная и элегантная renderman-совместимость Gelato в совокупности с коммерческим успехом. Тем не менее Ларри прекрасно выглядит и шлет большой привет российскому renderman-сообществу (мы с Лешей Пузиковым пытались заставить его прочесть пару страниц на русском из посвященной рендерману главы, которую Леша написал для книги «Понимая Maya”).


Кстати, года три назад на одной из первых презентаций Gelato в России какой-то пытливый ум, прослушав впечатляющие цифры о том, что пакет ускоряет просчет сцен в два-пять раз благодаря только использованию GPU видеокарты, невинно спросил: «Но ведь на полторы тыщи долларов я могу собрать пять материнских плат с процессорами, запихнуть их в стойку и ускорять любой процесс (а не только рендеринг) не в два-пять раз, а ровно в пять раз, причем независимо от загрузки CPU, GPU и вообще независимо ни от чего!» Вот такая сермяжная правда, не принимающая во внимание стоимость некоторых программных лицензий на каждый процессор.