|
Физика как наука представляет весьма интересную и сложную сферу познаний человека. Несмотря на все трудности, лучшие умы нашей планеты смогли загнать в рамки время, укротить ранее необузданные силы и свести многие закономерности природы в формулы. Развитие же компьютерной техники перенесло бремя вычислений на грузные плечи «железа». Отличным примером таких расчетов является аппаратное ускорение физических 3D-эффектов. Havok FX На дворе стоял 1998 год. В то время компания 3dfx еще жила и здравствовала, клепая куклы Voodoo с разными номерами, а нынешняя «королева бензоколонки» NVIDIA со своей картой Riva TNT (TwiN Texel – два текстурных модуля) была только второй. Относительно недавно начали свой славный путь Quake, Unreal и Half Life, проложив дорогу бурному развитию графических технологий. Именно в это время в индустрии впервые задумались над созданием реалистичных эффектов и окружающего игрового пространства, в том числе и природной среды. Первопроходцем посчастливилось стать ирландской компании Havok, создавшей первый в мире игровой физический движок. Вот так тихой сапой с зеленых, мшистых североевропейских островов в компьютерный мир пришла никому неизвестная компания. Первый SDK (Software Development Kit) сразу же послужил верой и правдой игре Half Life. Движок отвечал за две задачи: расчет столкновений объектов (вместе с деформацией) и движение мелких частиц, таких как осколки от разрушений. Конечно, сравнивать тогдашние эффекты с сегодняшними «произведениями искусства» бессмысленно, но метод взаимодействия тел друг с другом на самом деле весьма прост, и остался практически неизменным по сей день. Задействованный в кадре физический объект обволакивается микроточками. Для каждой «крупинки» при ее контакте с другой частицей происходит расчет столкновений по всем законам жанра. Деформация тел рассчитывается по такому же принципу. Эффекты же рассеивания газа (тумана, дыма) просто задействуют огромное количество мелких частиц, подвергаемых законам тяготения и силам инерции в окружающей среде (то есть, в воздухе). Понятно, что количество используемых точек, геометрическая форма и размеры окутанных предметов сильно влияют на быстродействие системы, но ускорение физики в 3D-графике должно способствовать в первую очередь улучшению игровой сцены, а не показателя FPS. В 2000 году на выставке Game Developments Conference ирландские разработчики представили окончательную, готовую версию комплекта средств разработки Havok SDK 1.0. Но парочка компьютерных игр лишь подтолкнула заинтересовавшихся инженеров на создание принципиально новых графических адаптеров. Так появился долгожданный GeForce, который сразу же воспользовался возможностями API. Маркированная незамысловатым префиксом «256» революционная карта окончательно утвердила понятие Graphic Processing Unit (или GPU). Отныне и вовеки веков графика была полностью отдана на «растерзание» отдельному чипу. Масштабирование, поворот полигонов, освещение, а затем и текстурирование полностью выполнялись силами процессора видеокарты (T&L). Поначалу прелести переложения нагрузки с CPU на GPU можно было ощутить лишь в нескольких приложениях, но с выходом нового «железа» их число неизменно увеличивалось. Последующие SDK отказались от RISC-устройств и работали исключительно с графическими адаптерами. Графический процессор по роду своих обязанностей выполняет множество вычислений в реальном времени. Единая картинка на аппаратном уровне представляет собой множество мелких частиц и рассчитываемых матриц. Архитектура GPU позволяет за счет конвейеров равноценно разбить нагрузку на множество потоков. По сути, вычислительным модулям все равно, что преобразовывать: номер палитры мелкой частицы или ее скорость. При должном управлении со стороны программ обработка графики элементарно превращается в физику. Канадская компания ATI смекнула, что к чему, и в 2006 году на международной выставке Computex предоставила свою точку зрения на расчет ньютоновых эффектов в компьютерной графике. Было введено понятие DPP Abstraction Layer (уровень абстракции для процессоров параллельной обработки), роль которой играл интерфейс программирования Havok FX. Со стороны «железа» ATI предоставила достаточно мощное орудие труда в лице флагманских на тот момент времени чипов RV5**. Маркетологи неплохо раскрутили такую связку из двух видеокарт Radeon X1900 в CrossFire-массиве и одной не ниже версии X1600, отвечающей, естественно, за расчеты. Жаль, что драйверы «кленовых», как обычно, оказались не на высоте. Но один полезный момент все-таки появился: при дальнейшем апгрейде системы старенькую карту не надо было прятать в темном чулане – ее легко можно было вставить во второй разъем PCI Express и наслаждаться реалистичностью игр с поддержкой физики, которых, правда, было по пальцам перечесть. Ирландский движок предусматривал эффект «бутылочного горлышка», ведь силы GPU не безграничны. Любое изображение делится драйвером на квадраты (размер которых зависит от количества объектов), а затем просчет столкновений и движения мелких частиц выполняется лишь в тех сегментах, которым они действительно необходимы. Продвижение программного кода по всему свету остановила жадность разработчиков. Ребята хотели пить больше вкусного «Гиннеса», поэтому требовали стерлинговых отчислений от использования их интеллектуальной собственности :). Но на любую рыбу всегда найдется особь покрупнее. Разросшаяся до трех офисов в Токио, Мюнхене и Дублине компания вскоре была куплена вездесущей Intel, которая никогда не упустит перспективные проекты, и которую реально взволновала перспектива развития технологий вычислений общего назначения на GPU у конкурентов. Итак, ATI совместно с Havok проложила путь физическим вычислениям за счет архитектурных особенностей графических процессоров. Разработчики игровых приложений поддержали эти начинания не одним десятком компьютерных развлечений (на сегодня их более 170), но тут, как в старой сказке, откуда ни возьмись в 2005 году появилась она – компания с завораживающим названием Ageia и совершенно другими взглядами на мир. Пока российские мужчины поздравляли наших прекрасных дам с международным женским днем, «выскочка» Ageia на выставке GDC2005 представила разработки первого в мире физического процессора, технологию PhysX и движок NovodeX. Хорошая заявка на победу, тем более что серьезность намерений компании подтвердилась осенью того же года покупкой конкурента Meqon и ее программных наработок с целью создания нового API – Ageia PhysX SDK. А в день Победы, через 426 дней, «родился» PPU (Physics Processing Unit) для персональных домашних компьютеров. Изготовленный по 130-нанометровому техническому процессу «камень» имел RISC-ядро, которое управляло связкой VLIW-процессоров, работавших с SIMD-инструкциями и числами с плавающей запятой. Чип ускорителя, содержавший 125 миллионов транзисторов, разместили на специальную плату, не отличимую от бюджетных видеокарт со 128 мегабайтами памяти GDDR-3 и 128-битной шиной. Для сравнения, приблизительно столько же транзисторов было в GPU видеокарты GeForce 5600 Ultra. С остальным «железом» PPU связывается через интерфейс PCI, а с программами (в основном играми) – средствами специальных «дров» Ageia PhysX. Именно драйвер отвечал за три основных компонента физических расчетов: * обработку жидкости (fluid physics); По задумке, инженеров физический процессор должен взять всю вычислительную нагрузку на себя, полностью освободив CPU от дополнительной работы. ЦП оставался лишь просчет алгоритмов искусственного интеллекта и общая обработка полигональной графики. Но AI в большинстве случаев реализуется за счет грамотного программирования сценариев, и многоядерный процессор вряд ли сможет использовать свои ресурсы на полную катушку. К тому же видеокарте в принципе все равно, от кого принимать результаты расчетов: при недостаточной мощности GPU качество и производительность картинки «упрутся» именно в нее. Вторым просчетом Ageia в самом начале их пути явилась полная закрытость их нового API и отказ от включения его в состав Microsoft DirectX. Никто без существенных лицензионных отчислений в пользу компании не мог использовать их программный код. Сразу вспоминается ситуация с закрытым Glide API от 3dfx и последующей потерей рынка основателем игровой 3D-графики. К сожалению, то же самое случилось и с Ageia. PhysX наступила на те же грабли, и в момент старта продаж ускорителя (между прочим, стоимостью порядка 200-300 ужасно зеленых американских президентиков) игроманам была представлено лишь малое количество игр с поддержкой PhysX и графический тест 3DMark06. Финский бенчмарк использует в одном из показательных тестов порядка 410 тысяч частиц, плавно опускающихся под действием сил тяготения с учетом сопротивления воздуха. Наконец третьим фактором провала Ageia можно считать неудачную рекламу технологии. Тяжело «впаривать» физические эффекты, которые вызывают не такую бурную реакцию, как те же шейдеры DirectX. Чтобы человеку ощутить весь вкус привнесенных в 3D-мир инноваций, нужен особый взгляд на приложения и опыт при сравнении. Спасти тонущее «судно» помогла NVIDIA, выкупив компанию и одновременно начав новый отсчет компьютерной физики. Хотя «новый» в данном случае – это хорошо забытый «старый» с поправкой на произошедшие изменения. Калифорнийцы отказались от дорогого и морально устаревшего PPU и перешли на более привычные технологии связи нескольких адаптеров. Подобно Havok FX на ATI, в связке GeForce’ов, при определенной настройке драйвера, одна из видеокарт превращалась в физический ускоритель. API Ageia снял «кандалы» и стал абсолютно свободным (в том числе и для канадцев). Любой желающий мог воспользоваться технологией параллельных вычислений. Отличным примером служит популярная CUDA (Compute Unified Device Architecture), частью которой является PhysX. Разработчики NVIDIA выставили на обозрение новые нюансы применения архитектуры GPU, начиная с популярной GeForce 8800 GTX (старые серии видеокарт PhysX и CUDA не поддерживают). Для научных расчетов уже сейчас физики по всему миру используют вычислительные центры NVIDIA Tesla. Что касается рядового пользователя, то наличие второй видеокарты дает отличный прирост производительности в заточенных под PhysX приложениях (число коих уже соизмеримо с продуктами под Havok). Сегодня физическими расчетами занимаются множество компаний: от игровых Ageia и Havok до профессиональных Karma, Tokomak, Math Engine и Newton. Среди рассмотренных брендов наметилась достаточно жесткая конкуренция. Но как бы бравые ребята из Intel, AMD и NVIDIA ни старались улучшить физические эффекты в 3D-развлечениях, достичь изумительных результатов будет тяжело. Поэтому инженерам и разработчикам придется хорошенько поломать голову над методами обработки подобной информации. К примеру, элементарная и одновременно гениальная формула F=mg (где m – масса, а g – ускорение свободного падения) падающего тела не станет проблемой для сегодняшнего многоядерного процессора Intel или AMD. Но если увеличить количество объектов (причем каждый будет иметь разную массу) до нескольких тысяч, вывести взаимосвязь между ними (столкновения) и добавить несколько других несложных явлений вроде сил трения, степеней свободы, инерций, импульсов и их моментов, кремниевое орудие вычислений может моментально застопориться. Но и нельзя сказать, что видеокарты с PPU ощутимо уйдут в отрыв. Тем более что режим реального времени в играх требует очень быстрого вывода информации, следовательно, реалистичностью в определенной степени все равно придется пожертвовать. GPU при своей идеальной архитектуре для параллельных вычислений все же уступает центральному процессору из-за отсутствия КЭШа. Всевозможные долговременные эффекты оказываются настоящей рутиной для графических адаптеров (именно поэтому многие разрушения в играх исчезают со временем). Рассмотренный неудачный ускоритель Ageia PhysX тоже неспособен полностью раскрыться в силу аппаратно прошитых алгоритмов и требования огромной скорости просчета данных. Как говорят ученые, наблюдается проблема линейной сходимости качества картинки: некоторые эффекты хорошо примут железную начинку сегодняшних устройств, но более сложные явления не смогут полностью реализоваться при данном уровне технологий. К таким фичам относятся, например, гироскопический момент, возникающий при полете тела. PPU просто примет этот эффект за обычное вращение вокруг центра масс. Поэтому получение реалистичной игровой картинки за счет специализированных устройств достаточно сложный процесс. Боюсь, мы еще не скоро увидим в своих мониторах настоящие законы природы в действии, но то, что аппаратное ускорение физики решительно поднимается с колен на ноги, говорит о неплохих перспективах развития данных технологий. Помимо описанного PPU от Ageia в игровой индустрии крутятся еще парочку «камней», рассчитанных на ускорение физики. Хорошо известный постоянным читателям журнала процессор Cell, используемый в консоли PlayStation 3, сильно напоминает детище PhysX. Одно RISC-ядро японской приставки взаимодействует с семью дополнительными сопроцессорами, что обеспечивает большее рабочее множество у каждого потока (working set), огромное количество межпараллельных связей ITC (Inter-Thread Communications) и довольно гибкое управление ресурсами. Данный физический «монстр» применяется не только ради развлечений, но и во вполне серьезных задачах по декомпрессии файлов, вершинной обработки изображения за счет использования DSP-подобных синергетических обрабатывающих элементов (SPE – Synergistic Processing Elements). Вторым физическим процессором также обладает приставка PlayStation, но второго поколения. Сопроцессор VU0 с небольшой натяжкой, но все-таки можно принять за PPU. Этот 128-битный векторный «камень» ускоряет в режиме реального времени игровые задачи, отвечающие за физику и искусственный интеллект. Подобно ускорителю от Ageia, дополнительный чип снимает с основного «камня» Emotion Engine нагрузку по расчетам значений с плавающей запятой и трансформации полигонов. И совсем немного осталось ждать техноманьякам до выхода первых в мире гибридов от процессорных гигантов. Fusion от AMD состоит из нескольких ядер под кодовым названием Bulldozer и видеочипа RV710. Их взаимосвязь осуществляется за счет улучшенной шины Hyper Transport. В зависимости от количества «голов» и частотных характеристик, AMD планирует создать несколько видов «бульдозеров». Физический продукт Intel носит звонкое название Larrabee. В начале выйдут семплы с 8 ядрами, каждое из которых будет иметь 256 килобайт КЭШа второго уровня. Но по мере обката технологии ожидаются и 64-ядерные кристаллы. Взаимосвязь же блоков будет осуществляться за счет двунаправленной 1024-битной кольцевой шины. Кремниевый гигант говорит, что Larrabee отлично работает с DirectX и Open CL API, а также своим движком Havok FX, купленным, по всей видимости, именно для поддержки физических эффектов гибридными процессорами. |
| HTML | |
| BB-Code | |
| Ссылка |
| Случайные новости: |
| Свежие файлы: | ||||||||||||
|
|
Комментарии к материалу
| |