Физический процессор
Данные в этой статье приведены по состоянию на 2008 год. |
Физический процессор (англ. Physics Processing Unit — англ. PPU, «физический ускоритель», «ускоритель физики») — специализированный микропроцессор, предназначенный для вычисления физических взаимодействий объектов преимущественно в физических движках видеоигр.
Примерами физических вычислений, использующих физический процессор, могут быть: динамика твёрдых тел (англ. rigid body dynamics), динамика мягких тел (англ. soft body dynamics), обнаружение столкновений (англ. collision detection), динамика жидкостей (гидрогазодинамика), симуляция движения волос, меха и ткани, анализ конечных элементов (англ. finite element analysis), разломы объектов.
Идея (основная функция, суть) физического процессора состоит в разгрузке центрального процессора (англ. CPU — англ. Central Processing Unit) от трудоёмких задач по обработке физики. Очень похожую идею используют современные видеокарты, основной частью которых являются графические процессоры (англ. GPU — англ. Graphics Processing Unit).
Первыми разработанными физическими процессорами являются SPARTA и HELLAS.
Термин «PPU» был предложен маркетинговым отделом компании Ageia для того, чтобы описать свой чип PhysX для потребителей. Физический процессор PhysX, разработанный Ageia — единственный законченный, спроектированный, разработанный, массово выпускаемый, продаваемый и поддерживаемый экземпляр, который был спроектирован исключительно как PPU. Кроме PhysX, существуют и другие решения и технологии в данной сфере.
Ageia PhysX
Первый процессор, который был рекламирован как «PPU», был чип PhysX, созданный компанией Ageia. Игры, которые хотели задействовать PhysX, должны были использовать специальное подпрограммное обеспечение — физический движок PhysX SDK (ранее известный как NovodeX SDK) разработки Ageia.
Процессор PhysX состоит из RISC-ядра общего назначения, который управляет массивом настраиваемых VLIW-процессоров, работающих с SIMD-инструкциями и плавающей запятой[1]. Процессор работает с локальными банками памяти со встроенным переключателем для управления потоками между ними. PhysX не имеет такой иерархии кэш-памяти, как CPU или GPU.
В настоящее время платы с процессором PhysX отсутствуют в продаже. В недалёком прошлом платы выпускались тремя компаниями. ASUS и BFG Technologies стали первыми компаниями, которые начали продавать платы. Готовые комплекты компьютеров с установленными платами PhysX доступны от таких сборщиков компьютеров, как Alienware, Dell и Falcon Northwest.
В феврале 2008 года, после того, как Nvidia купила Ageia Technologies, казалось, что все наработки последней полностью перешли к Nvidia. Однако в марте 2008 года Nvidia заявила, что сделает PhysX SDK открытой платформой, доступной для всех желающих.[2] Поддержка PhysX SDK будет доступна для всех видеокарт производства Nvidia, начиная с серии 8ххх. На данный момент Nvidia готовит к выпуску новую версию драйверов, которая включает поддержку PhysX SDK в этих видеокартах. 24 июля 2008 года стало известно, что Nvidia выпустит WHQL-сертифицированный драйвер ForceWare с поддержкой ускорения физики 5 августа 2008 года.[3]
28 июня 2008 года Эран Бадит (англ. Eran Badit), участник ресурса NGOHQ.com, запустил аппаратную поддержку PhysX SDK на видеокарте Radeon HD 3870.[4] Компания NVIDIA отреагировала на инициативу Эрана Бадита негативно, однако 9 июля 2008 года Бэдиту открыли доступ к документации, SDK, аппаратному обеспечению и дали контакты инженеров. Таким образом, NVIDIA открывает PhysX SDK для сторонних разработчиков.[5]
15 августа 2008 года компания NVIDIA выпустила драйвер ForceWare 177.83, который активирует поддержку PhysX в видеокартах серий 8, 9 и 200. Это немедленно расширило пользовательскую базу до более чем 70 миллионов человек во всем мире.[6] [7]
- Ссылки по разделу
- Тесты Ageia PhysX: аппаратное ускорение физики в играх
- Аппаратное ускорение физики
- Физический ускоритель ASUS PhysX P1
- Почти бесплатная физика
Сопроцессор VU0 в PS2 как PPU
Игровая приставка шестого поколения Sony PlayStation 2 использует 128-битный процессор «Emotion Engine», который является комбинацией центрального процессора (CPU) и цифрового сигнального процессора (DSP). Emotion Engine состоит из центральной 64-битной части, построенной на основе MIPS R5900, и двух 128-битных векторных сопроцессоров VU0 и VU1 (англ. Vector Unit). VU0 обычно используется для трансформации полигонов, физики и других вещей, имеющих отношение к геймплею. VU1 обычно используется для трансформации полигонов, освещения и других вычислений, связанных с визуализацией.
Несмотря на существенные различия с PhysX, VP0 можно считать ранней ограниченной реализацией физического процессора. Его набор функций и размещение в микропроцессорной системе направлены на ускорение задач обновления состояния игры, включая физику и искусственный интеллект; VU0 может разгрузить центральную часть «Emotion Engine». Будучи цифровым сигнальным процессором, VU0, однако, является намного более зависимым от основного процессора и не может реализовать полный физический API. Именно поэтому VU0 не может классифицироваться как PPU.
Его использование похоже на использование движка Havok FX или ускорителя физики на GPU в том, что ресурсы внешнего блока вычислений с плавающей запятой общего назначения, выступающего в роли графического или физического ускорителя, дополняют ресурсы центрального процессора.
Процессор Cell как PPU
Процессор STI Cell, который используется в игровой приставке седьмого поколения Sony PlayStation 3, имеет схожую структуру с процессором Ageia PhysX. Дизайн процессора создан с учётом похожих к Ageia PhysX соображений. В отличие от ATI/NVidia GPGPU, и как PhysX, дизайн Cell спроектирован с акцентом на обеспечении каждого параллельного потока с большим рабочим множеством, большим количеством межпотоковых связей (англ. inter-thread communication) и управлением, чем в обычном центральном процессоре. Такой дизайн очень подходит для физических вычислений.
Термин «PPU» не используется для описания Cell, однако он проявляется вместе с маркетинговым отличием: альянс STI Design Center продаёт процессор для широкого диапазона встраиваемых приложений, не относящихся к играм; и даже в составе PlayStation 3 он способен использовать DSP-подобные SPE (англ. Synergistic Processing Elements — Синергический Обрабатывающий Элемент) для вершинной обработки (англ. vertex processing), звука, декомпрессии и других задач.
Havok FX
Физический движок Havok SDK является главным конкурентом движка PhysX SDK. Он используется более чем в 150-ти играх, включая такие игры, как Half-Life 2, The Elder Scrolls IV: Oblivion и Dead Rising.[8]
Чтобы конкурировать с физическим процессором PhysX, была разработана концепция Havok FX, основная суть которой заключалась в использовании мощностей видеокарт для ускорений определённых физических вычислений. Havok FX должен был использоваться только на компьютерах, оснащенных минимум двумя видеокартами, соединёнными при помощи NVIDIA SLI или ATI Crossfire. При этом одна видеокарта из этой связки должна была полностью выделяться для физических обсчётов.[9]
Решение Havok делит все физические симуляции на физические эффекты и «геймплейную» физику. Физические эффекты (пыль, мелкие осколки и обломки от взрывов, огонь) обрабатываются при помощи графического процессора на видеокарте как инструкции Shader Model 3.0 (Шейдерная модель версии 3.0). «Геймплейная» физика обрабатывается при помощи центрального процессора обычным способом. Важным различием между этими двумя направлениями является то, что физические эффекты не влияют на геймплей игры; огромное большинство физических операций всё ещё выполняется стандартным программным способом при помощи CPU. Этот подход значительно отличается от движка PhysX SDK, который перенаправляет все текущие физические вычисления на карту PhysX.
Так как 15 сентября 2007 года фирма Intel выкупила фирму Havok, то «Havok FX» был отменён. Предполагалось, что Intel заморозит проект аппаратной поддержки движка на видеокартах своего конкурента, компании AMD, и сосредоточится на оптимизации движка под свои многоядерные CPU.[10][11][12]
20 марта 2009 года появилась новость о том, что на ежегодном мероприятии Game Developers Conference 2009 компании AMD и Havok продемонстрируют ускорение физики силами видеокарт Radeon. Терри Македон (англ. Terry Makedon), менеджер продукции ATI Catalyst, заявил, что на GDC компания AMD покажет свою стратегию «ATI GPU Physics» и проведёт соответствующую демонстрацию. AMD будет использовать для ускорения Havok язык программирования OpenCL, компилятор которого входит в состав программного пакета «ATI Stream SDK».[13][14][15][16]
Как и было обещано, AMD и Havok провели демонстрацию физики на GDC 09. Впервые были продемонстрированы возможности выполнения «Havok Cloth» на расширении OpenCL. Было заявлено, что для расчётов данной подсистемы необходим графический процессор от AMD с поддержкой OpenCL и AMD Stream. Также было заявлено об ориентации Havok на новейшие многоядерные процессоры AMD Phenom.[17][18][19]
- Ссылки по разделу
GPU против PPU
Развитие концепции GPGPU делает графические процессоры всё более и более подходящими для задач, которые предназначаются для физических процессоров. DirectX 10 добавляет в GPU целочисленные типы данных (англ. integer data types), унифицированную шейдерную архитектуру (англ. unified shader architecture) и геометрические шейдеры, которые позволяют графическому процессору обрабатывать более широкий диапазон алгоритмов. NVidia CUDA обеспечивает межпотоковые связи (англ. inter-thread communication) и рабочую область сверхоперативного стиля (англ. scratchpad-style workspace), связанную с потоками.
Тем не менее, GPU спроектированы для работы с компьютерной трёхмерной графикой. Они имеют большее время ожидания, более медленные потоки, работают с текстурами и кадровым буфером (англ. framebuffer). Это отличает их от Ageia PPU и Cell как менее подходящие для физического моделирования.
Sieve C++ Parallel Programming System поддерживает PPU, показывая, что чип Ageia PhysX был бы подходящим для задач типа GPGPU.
- Ссылки по разделу
- nVidia CUDA: вычисления на видеокарте или смерть CPU?
- NVIDIA CUDA — неграфические вычисления на графических процессорах. Часть 1
- NVIDIA CUDA — неграфические вычисления на графических процессорах. Часть 2
Intel Larrabee & AMD Fusion
Ожидается, что Intel Larrabee — многоядерная реализация х86-архитектуры с оптимизированной пропускной способностью, — будет хорошо подходить для роли физического процессора. Как и процессор Cell, Larrabee по своим параметрам находится между центральным и графическим процессорами. Larrabee предназначен для универсальной многозадачной многопоточной обработки в противовес специализированной высокоэффективной внутренней обработки. Компания Intel подтвердила, что архитектура памяти в Larrabee не будет использовать временные буферы, как Cell или Ageia PhysX; вместо этого архитектура памяти будет ближе к обычной иерархии кэша CPU. Однако Larrabee будет иметь расширения для включения высокопроизводительных вычислений (наиболее вероятным является полная замена инструкций по управлению кэшем).
В 2008 году компания AMD объявила о своём проекте AMD Fusion. AMD Fusion будет представлять собой процессор, который на одном кристалле будет объединять центральный х86-64 процессор и графический процессор, созданный на основе последних моделей серии Radeon. Различные ресурсы процессора AMD Fusion, такие, как иерархический кэш, будут использоваться совместно. Эта будущая конфигурация, вероятно, также будет подходящей для роли PPU.
Примечания
- ↑ Nicholas Blachford. Lets Get Physical: Inside The PhysX Physics Processor (англ.) (2006). Дата обращения: 10 июня 2014. Архивировано 14 июля 2014 года.
- ↑ Ben Hardwidge. Nvidia offers PhysX support to AMD / ATI (англ.) (недоступная ссылка). custompc.co.uk (10 марта 2008). Дата обращения: 30 марта 2009. Архивировано 11 октября 2008 года.
- ↑ Павел "xAnder" Шубский. WHQL-драйвер NVIDIA для PhysX – в начале августа (недоступная ссылка). Игромания (24 июля 2008). Дата обращения: 27 июля 2008. Архивировано 28 июля 2008 года.
- ↑ BlackCat. PhysX взломан и больше не является эксклюзивом для карт NVIDIA . IXBT.com (28 июня 2008). Дата обращения: 9 июля 2008. Архивировано 29 июня 2009 года.
- ↑ Павел "xAnder" Шубский. NVIDIA откроет поддержку PhysX для ATI Radeon? (недоступная ссылка). Игромания (9 июля 2008). Дата обращения: 9 июля 2008. Архивировано 17 мая 2013 года.
- ↑ NVIDIA выпустила драйвер для аппаратной поддержки PhysX . GameDev.ru (15 августа 2008). Дата обращения: 27 октября 2008. Архивировано 5 января 2012 года.
- ↑ Винни - начальник технического обслуживания европейского подразделения компании XFX. Почти бесплатная физика . RusDoc.ru (14 октября 2008). Дата обращения: 19 октября 2008. Архивировано 5 января 2012 года.
- ↑ Games using Havok (недоступная ссылка). Дата обращения: 16 октября 2008. Архивировано 18 апреля 2012 года.
- ↑ Havok FX product information (недоступная ссылка). Дата обращения: 16 октября 2008. Архивировано 2 марта 2007 года.
- ↑ Anton Shilov. GPU Physics Dead for Now, Says AMD’s Developer Relations Chief Nvidia’s Chief Exec Predicts “Negative Synergies” with Intel’s Acquisition of Havok (англ.) (недоступная ссылка). X-bit labs (19 ноября 2007). Дата обращения: 27 февраля 2011. Архивировано 16 февраля 2012 года.
- ↑ Anton Shilov. Intel To Acquire Havok (англ.). Bit-tech (15 сентября 2007). Дата обращения: 27 февраля 2011. Архивировано 16 февраля 2012 года.
- ↑ Арсений Герасименко. Intel заявила о приобретении компании Havok . 3DNews (17 сентября 2007). Дата обращения: 27 февраля 2011. Архивировано 2 ноября 2009 года.
- ↑ Ben Hardwidge. AMD to demo GPU physics at GDC next week (англ.). Bit-tech (20 марта 2009). Дата обращения: 23 марта 2009. Архивировано 16 февраля 2012 года.
- ↑ Александр Шеметов. Ускорение физики средствами GPU от AMD уже скоро . 3DNews (23 марта 2009). Дата обращения: 23 марта 2009. Архивировано 26 марта 2009 года.
- ↑ BESS!. AMD покажет «ускорение физики» в своих GPU с API Havok на GDC2009 (недоступная ссылка). iXBT (24 марта 2009). Дата обращения: 24 марта 2009. Архивировано 3 июля 2017 года.
- ↑ Павел Шубский. AMD продемонстрирует обработку физики . Игромания (журнал) (23 марта 2009). Дата обращения: 24 марта 2009. Архивировано 31 марта 2009 года.
- ↑ Павел Шубский. AMD продемонстрировала физику . Игромания (журнал) (27 марта 2009). Дата обращения: 27 марта 2009. Архивировано 31 марта 2009 года.
- ↑ BESS!. AMD и Havok на Game Developers Conference 2009 (недоступная ссылка). iXBT (27 марта 2009). Дата обращения: 28 марта 2009. Архивировано 3 июля 2017 года.
- ↑ Александр Шеметов. Havok и AMD показали на GDC физику на OpenCL . 3DNews (29 марта 2009). Дата обращения: 30 марта 2009. Архивировано 30 марта 2009 года.
Ссылки
- Официальный веб-сайт компании Ageia
- Страница процессора Ageia PhysX
- Проекты, использующие Ageia PhysX SDK
- Обзор платы (карты) BFG AGEIA PhysX Архивная копия от 17 сентября 2008 на Wayback Machine
- Новости сайта Planet PhysX и информационная страница
- PC Hardware: AGEIA PhysX интервью
- PC Perspective: AGEIA PhysX Physics Processing Unit превью
- Havok FX physics engine (middleware library) SDK
- NVIDIA CUDA Toolkit и SDK