Физический процессор

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Физический процессор (англ. 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-инструкциями и плавающей запятой. Процессор работает с локальными банками памяти со встроенным переключателем для управления потоками между ними. PhysX не имеет такой иерархии кэш-памяти, как CPU или GPU.

В настоящее время платы с процессором PhysX отсутствуют в продаже. В недалёком прошлом платы выпускались тремя компаниями. ASUS и BFG Technologies стали первыми компаниями, которые начали продавать платы. Готовые комплекты компьютеров с установленными платами PhysX доступны от таких сборщиков компьютеров, как Alienware, Dell и Falcon Northwest.

В феврале 2008 года, после того, как Nvidia купила Ageia Technologies, казалось, что все наработки последней полностью перешли к Nvidia. Однако в марте 2008 года Nvidia заявила, что сделает PhysX SDK открытой платформой, доступной для всех желающих.[1] Поддержка PhysX SDK будет доступна для всех видеокарт производства Nvidia, начиная с серии 8ххх. На данный момент Nvidia готовит к выпуску новую версию драйверов, которая включает поддержку PhysX SDK в этих видеокартах. 24 июля 2008 года стало известно, что Nvidia выпустит WHQL-сертифицированный драйвер ForceWare с поддержкой ускорения физики 5 августа 2008 года.[2]

28 июня 2008 года Эран Бадит (англ. Eran Badit), участник ресурса NGOHQ.com, запустил аппаратную поддержку PhysX SDK на видеокарте Radeon HD 3870.[3] Компания NVIDIA отреагировала на инициативу Эрана Бадита негативно, однако 9 июля 2008 года Бэдиту открыли доступ к документации, SDK, аппаратному обеспечению и дали контакты инженеров. Таким образом, NVIDIA открывает PhysX SDK для сторонних разработчиков.[4]

15 августа 2008 года компания NVIDIA выпустила драйвер ForceWare 177.83, который активирует поддержку PhysX в видеокартах серий 8, 9 и 200. Это немедленно расширило пользовательскую базу до более чем 70 миллионов человек во всем мире.[5] [6]

Ссылки по разделу

Сопроцессор VU0 в PS2 как PPU[править | править исходный текст]

Игровая приставка шестого поколения Sony PlayStation 2 использует 128-битный процессор «Emotion Engine», который является комбинацией центрального процессора (CPU) и цифрового сигнального процессора (DSP). Emotion Engine состоит из центральной 64-битной части, построенной на основе MIPS R5900, и двух 128-битных векторных сопроцессоров VU0 и VU1 (англ. Vector Unit). VU0 обычно используется для трансформации полигонов, физики и других вещей, имеющих отношение к геймплею. VU1 обычно используется для трансформации полигонов, освещения и других вычислений, связанных с визуализацией.

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 спроектирован с акцентом на обеспечении каждого параллельного потока с большим рабочим множеством (англ. working set), большим количеством межпотоковых связей (англ. 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.[7]

Чтобы конкурировать с физическим процессором PhysX, была разработана концепция Havok FX, основная суть которой заключалась в использовании мощностей видеокарт для ускорений определённых физических вычислений. Havok FX должен был использоваться только на компьютерах, оснащенных минимум двумя видеокартами, соединёнными при помощи NVIDIA SLI или ATI Crossfire. При этом одна видеокарта из этой связки должна была полностью выделяться для физических обсчётов.[8]

Решение Havok делит все физические симуляции на физические эффекты и «геймплейную» физику. Физические эффекты (пыль, мелкие осколки и обломки от взрывов, огонь) обрабатываются при помощи графического процессора на видеокарте как инструкции Shader Model 3.0 (Шейдерная модель версии 3.0). «Геймплейная» физика обрабатывается при помощи центрального процессора обычным способом. Важным различием между этими двумя направлениями является то, что физические эффекты не влияют на геймплей игры; огромное большинство физических операций всё ещё выполняется стандартным программным способом при помощи CPU. Этот подход значительно отличается от движка PhysX SDK, который перенаправляет все текущие физические вычисления на карту PhysX.

Так как 15 сентября 2007 года фирма Intel выкупила фирму Havok, то «Havok FX» был отменён. Предполагалось, что Intel заморозит проект аппаратной поддержки движка на видеокартах своего конкурента, компании AMD, и сосредоточится на оптимизации движка под свои многоядерные CPU.[9][10][11]

20 марта 2009 года появилась новость о том, что на ежегодном мероприятии Game Developers Conference 2009 компании AMD и Havok продемонстрируют ускорение физики силами видеокарт Radeon. Терри Македон (англ. Terry Makedon), менеджер продукции ATI Catalyst, заявил, что на GDC компания AMD покажет свою стратегию «ATI GPU Physics» и проведёт соответствующую демонстрацию. AMD будет использовать для ускорения Havok язык программирования OpenCL, компилятор которого входит в состав программного пакета «ATI Stream SDK».[12][13][14][15]

Как и было обещано, AMD и Havok провели демонстрацию физики на GDC 09. Впервые были продемонстрированы возможности выполнения «Havok Cloth» на расширении OpenCL. Было заявлено, что для расчётов данной подсистемы необходим графический процессор от AMD с поддержкой OpenCL и AMD Stream. Также было заявлено об ориентации Havok на новейшие многоядерные процессоры AMD Phenom.[16][17][18]

Ссылки по разделу

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.

Ссылки по разделу

Intel Larrabee & AMD Fusion[править | править исходный текст]

Ожидается, что Intel Larrabee — многоядерная реализация х86-архитектуры с оптимизированной пропускной способностью, — будет хорошо подходить для роли физического процессора. Как и процессор Cell, Larrabee по своим параметрам находится между центральным и графическим процессорами. Larrabee предназначен для универсальной многозадачной многопоточной обработки в противовес специализированной высокоэффективной внутренней обработки. Компания Intel подтвердила, что архитектура памяти в Larrabee не будет использовать временные буферы, как Cell или Ageia PhysX; вместо этого архитектура памяти будет ближе к обычной иерархии кэша CPU. Однако Larrabee будет иметь расширения для включения высокопроизводительных вычислений (наиболее вероятным является полная замена инструкций по управлению кэшем).

Компания AMD объявила о своём проекте AMD Fusion. AMD Fusion будет представлять собой процессор, который на одном кристалле будет объединять центральный х86-64 процессор и графический процессор, созданный на основе последних моделей серии Radeon. Различные ресурсы процессора AMD Fusion, такие как иерархический кэш, будут использоваться совместно. Эта будущая конфигурация, вероятно, также будет подходящей для роли PPU.

Примечания[править | править исходный текст]

  1. Ben Hardwidge. Nvidia offers PhysX support to AMD / ATI (англ.)(недоступная ссылка — история). custompc.co.uk (10 марта 2008 года). Проверено 30 марта 2009. Архивировано из первоисточника 11 октября 2008.
  2. Павел "xAnder" Шубский. WHQL-драйвер NVIDIA для PhysX – в начале августа(недоступная ссылка — история). Игромания (24 июля 2008 года). Проверено 27 июля 2008. Архивировано из первоисточника 28 июля 2008.
  3. BlackCat. PhysX взломан и больше не является эксклюзивом для карт NVIDIA. IXBT.com (Суббота, 28 июня 2008 года). Проверено 9 июля 2008. Архивировано из первоисточника 17 февраля 2012.
  4. Павел "xAnder" Шубский. NVIDIA откроет поддержку PhysX для ATI Radeon?(недоступная ссылка — история). Игромания (9 июля 2008 года). Проверено 9 июля 2008. Архивировано из первоисточника 17 мая 2013.
  5. NVIDIA выпустила драйвер для аппаратной поддержки PhysX. GameDev.ru (15 августа 2008). Проверено 27 октября 2008 года. Архивировано из первоисточника 17 февраля 2012.
  6. Винни - начальник технического обслуживания европейского подразделения компании XFX. Почти бесплатная физика. RusDoc.ru (14 октября 2008 года). Проверено 19 октября 2008. Архивировано из первоисточника 17 февраля 2012.
  7. Games using Havok
  8. Havok FX product information
  9. 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. Архивировано из первоисточника 17 февраля 2012.
  10. Anton Shilov. Intel To Acquire Havok (англ.). Bit-tech (15 сентября 2007 года). Проверено 27 февраля 2011. Архивировано из первоисточника 17 февраля 2012.
  11. Арсений Герасименко. Intel заявила о приобретении компании Havok. 3DNews (17 сентября 2007 года). Проверено 27 февраля 2011.
  12. Ben Hardwidge. AMD to demo GPU physics at GDC next week (англ.). Bit-tech (20 марта 2009 года). Проверено 23 марта 2009. Архивировано из первоисточника 17 февраля 2012.
  13. Александр Шеметов. Ускорение физики средствами GPU от AMD уже скоро. 3DNews (23 марта 2009 года). Проверено 23 марта 2009.
  14. BESS!. AMD покажет «ускорение физики» в своих GPU с API Havok на GDC2009. iXBT (24 марта 2009 года). Проверено 24 марта 2009. Архивировано из первоисточника 17 февраля 2012.
  15. Павел Шубский. AMD продемонстрирует обработку физики(недоступная ссылка — история). Игромания (журнал) (23 марта 2009 года). Проверено 24 марта 2009. Архивировано из первоисточника 31 марта 2009.
  16. Павел Шубский. AMD продемонстрировала физику(недоступная ссылка — история). Игромания (журнал) (27 марта 2009 года). Проверено 27 марта 2009. Архивировано из первоисточника 31 марта 2009.
  17. BESS!. AMD и Havok на Game Developers Conference 2009. iXBT (27 марта 2009 года). Проверено 28 марта 2009. Архивировано из первоисточника 17 февраля 2012.
  18. Александр Шеметов. Havok и AMD показали на GDC физику на OpenCL. 3DNews (29 марта 2009 года). Проверено 30 марта 2009.

Ссылки[править | править исходный текст]