Фізичний процесор

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Фізичний процесор (англ. Physics Processing Unitангл. PPU, «фізичний прискорювач») - пристрій, мікросхема, виділений спеціалізований процесор, призначений для обробки «фізичних» обчислень переважно в фізичних рушіях. До прикладів фізичних обчислень, які використовують фізичний процесор, відносяться: динаміка твердих тіл (англ. rigid body dynamics), динаміка м'яких тіл (англ. soft body dynamics), виявлення зіткнень (англ. collision detection), динаміка рідини (гідродинаміка), симуляція волосся, хутра та тканини, аналіз скінченних елементів (англ. finite element analysis), розломи об'єктів. Ідея (основна функція, суть) фізичного процесора складається з розвантаження центрального процесора (англ. CPUангл. Central 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 відкритою платформою, доступною для всіх охочих. Підтримка PhysX SDK буде доступна для всіх відеокарт виробництва Nvidia, починаючи з серії 8ххх. 24 липня 2008 року стало відомо, що Nvidia випустить WHQL-сертифікований драйвер ForceWare з підтримкою прискорення фізики 5 серпня 2008 року.

Посилання по розділу
  • Тести Ageia PhysX: апаратне прискорення фізики в іграх (рос.).
  • Апаратне прискорення фізики (рос.).
  • Фізичний прискорювач ASUS PhysX P1 (рос.).
  • Майже безкоштовна фізика (рос.). Архів оригіналу за 24 вересня 2015. Процитовано 28 грудня 2015.

Співпроцесор VU0 в PS2 як PPU

[ред. | ред. код]
Докладніше: Emotion Engine та PlayStation 2

Ігрова приставка шостого покоління 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

[ред. | ред. код]

Процесор 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

Фізичний рушій Havok SDK є головним конкурентом рушія PhysX SDK. Він використовується більш ніж в 150-ти іграх, включаючи такі ігри, як Half-Life 2, The Elder Scrolls IV: Oblivion і Dead Rising.[1]

Щоб конкурувати з фізичним процесором PhysX, була розроблена концепція Havok FX, основна суть якої полягала у використанні потужностей відеокарт для прискорень певних фізичних обчислень. Havok FX повинен був використовуватися тільки на комп'ютерах, оснащених мінімум двома відеокартами, з'єднаними за допомогою NVIDIA SLI або ATI Crossfire. При цьому одна відеокарта з цієї зв'язки повинна була повністю виділятися для фізичних обрахування.[2]

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

Так як 15 вересня 2007 фірма Intel викупила фірму Havok, то «Havok FX» був скасований. Передбачалося, що Intel заморозить проєкт апаратної підтримки рушія на відкритих свого конкурента, компанії AMD, і зосередиться на оптимізації рушія під свої багатоядерні CPU. Як і було обіцяно, AMD і Havok провели демонстрацію фізики на GDC 09. Вперше були продемонстровані можливості виконання «Havok Cloth» на розширенні OpenCL. Було заявлено, що для розрахунків даної підсистеми необхідний графічний процесор від AMD з підтримкою OpenCL і AMD Stream. Також було заявлено про орієнтацію Havok на новітні багатоядерні процесори AMD Phenom.

Посилання по розділу

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 APU

[ред. | ред. код]
Докладніше: Intel Larrabee та AMD APU

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

AMD APU являє собою процесор, який на одному кристалі об'єднує центральний процесор з набором команд х86-64 і графічний процесор, створений на основі останніх[коли?] моделей серії Radeon. Різні ресурси APU, такі, як ієрархічний кеш, використовуються спільно.[джерело?]

Посилання

[ред. | ред. код]

Джерела

[ред. | ред. код]
  1. Games using Havok. Архів оригіналу за 18 квітня 2012. Процитовано 28 грудня 2015.
  2. Havok FX product information. Архів оригіналу за 2 березня 2007. Процитовано 28 грудня 2015.