Un procesor fizic ( ing. Physics Processing Unit - ing. PPU , „accelerator fizic”, „accelerator fizic”) este un microprocesor specializat conceput pentru a calcula interacțiunile fizice ale obiectelor, în principal în motoarele fizice ale jocurilor video .
Exemple de calcule fizice folosind un procesor fizic pot fi: dinamica corpului rigid , dinamica corpului moale , detectarea coliziunilor , dinamica fluidelor , simularea mișcării păr, blană și țesături, analiza cu elemente finite , defecte ale obiectelor .
Ideea (funcția principală, esența) unui procesor fizic este de a descărca unitatea centrală de procesare ( ing. CPU - ing. Central Processing Unit ) din sarcinile consumatoare de timp ale fizicii prelucrării. O idee foarte similară este folosită de plăcile video moderne , a căror parte principală sunt procesoarele grafice ( English GPU - English Graphics Processing Unit ).
Primele procesoare fizice dezvoltate sunt SPARTA și HELLAS .
Termenul „PPU” a fost inventat de departamentul de marketing al Ageia pentru a descrie cipul lor PhysX pentru consumatori. Procesorul fizic PhysX de la Ageia este singura instanță completă, proiectată, proiectată, produsă în masă, comercializată și acceptată care a fost concepută exclusiv ca un PPU . Pe lângă PhysX, există și alte soluții și tehnologii în acest domeniu.
Primul procesor care a fost promovat ca „PPU” a fost un cip PhysX , fabricat de Ageia . Jocurile care doreau să folosească PhysX au trebuit să folosească un sub-software special - motorul de fizică PhysX SDK al Ageia (cunoscut anterior ca NovodeX SDK ).
Procesorul PhysX constă dintr-un nucleu RISC de uz general care controlează o serie de procesoare VLIW personalizate care funcționează cu instrucțiuni SIMD și virgulă mobilă [1] . Procesorul funcționează cu bănci de memorie locale cu un comutator încorporat pentru a controla fluxurile dintre ele. PhysX nu are aceeași ierarhie cache ca CPU sau GPU .
În prezent, nu există plăci cu procesor PhysX disponibile pentru vânzare. În trecutul recent, plăcile au fost produse de trei companii. ASUS și BFG Technologies au fost primele companii care au început să vândă plăci. Kituri complete de computer cu plăci PhysX instalate sunt disponibile de la constructori de computere, cum ar fi Alienware , Dell și Falcon Northwest.
În februarie 2008 , după ce Nvidia a cumpărat Ageia Technologies , se părea că toate dezvoltările acesteia din urmă au fost complet transferate către Nvidia. Cu toate acestea, în martie 2008, Nvidia a anunțat că va face din PhysX SDK o platformă deschisă disponibilă pentru toată lumea. [2] Suportul PhysX SDK va fi disponibil pentru toate plăcile video Nvidia, începând cu seria 8xxx. În acest moment, Nvidia se pregătește să lanseze o nouă versiune a driverelor, care include suport pentru PhysX SDK pe aceste plăci video. Pe 24 iulie 2008, a fost dezvăluit că Nvidia va lansa un driver ForceWare certificat WHQL cu suport pentru accelerarea fizică pe 5 august 2008 . [3]
Pe 28 iunie 2008, Eran Badit de la NGOHQ.com a lansat suport hardware PhysX SDK pe placa grafică Radeon HD 3870 . [4] NVIDIA a reacționat negativ la inițiativa lui Eran Badit, dar pe 9 iulie 2008, Badit a primit acces la documentație, SDK, hardware și contactele inginerilor. Astfel, NVIDIA deschide SDK-ul PhysX pentru dezvoltatori terți. [5]
Pe 15 august 2008, NVIDIA a lansat driverul ForceWare 177.83, care permite suportul PhysX pentru plăcile grafice din seriile 8, 9 și 200. Acest lucru a extins imediat baza de utilizatori la peste 70 de milioane de oameni din întreaga lume. [6] [7]
Link-uri secțiuniConsola de jocuri Sony PlayStation 2 de a șasea generație folosește un „ Emotion Engine ” pe 128 de biți , care este o combinație între o unitate centrală de procesare (CPU) și un procesor de semnal digital (DSP). Emotion Engine constă dintr-o parte centrală de 64 de biți bazată pe MIPS R5900 și două coprocesoare vectoriale de 128 de biți VU0 și VU1 ( Vector Unit ) . VU0 este folosit în mod obișnuit pentru transformări de poligon, fizică și alte lucruri legate de joc . VU1 este folosit în mod obișnuit pentru transformarea poligonului, iluminare și alte calcule legate de randare.
În ciuda diferențelor semnificative față de PhysX, VP0 poate fi considerată o implementare timpurie limitată a procesorului fizic. Setul său de caracteristici și plasarea pe sistemul cu microprocesor urmăresc să accelereze sarcinile de actualizare a stării jocului, inclusiv fizica și inteligența artificială ; VU0 poate descărca partea centrală a „Emotion Engine”. Fiind un procesor de semnal digital, VU0, totuși, este mult mai dependent de procesorul principal și nu poate implementa API -ul fizic complet . Acesta este motivul pentru care VU0 nu poate fi clasificat ca PPU.
Utilizarea sa este similară cu utilizarea motorului Havok FX sau a unui accelerator fizic GPU, prin aceea că resursele unei unități externe cu virgulă mobilă de uz general care acționează ca un accelerator grafic sau fizic le completează pe cele ale procesorului.
Procesorul STI Cell , care este folosit în consola de jocuri Sony PlayStation 3 de generația a șaptea , are o structură similară cu procesorul Ageia PhysX. Designul procesorului a fost creat luând în considerare considerații similare cu Ageia PhysX. Spre deosebire de GPGPU ATI/NVidia și ca și PhysX, designul Cell este conceput cu accent pe furnizarea fiecărui fir paralel cu un set de lucru mai mare , mai multă comunicare între fire și control decât un procesor convențional . Acest design este foarte potrivit pentru calculul fizic.
Termenul „PPU” nu este folosit pentru a descrie celula, dar vine împreună cu o distincție de marketing: alianța STI Design Center vinde procesorul pentru o gamă largă de aplicații încorporate non-gaming; și chiar și ca parte a PlayStation 3, este capabil să utilizeze SPE-uri asemănătoare DSP ( Synergistic Processing Elements - Synergistic Processing Element) pentru procesarea nodurilor ( eng . procesarea vertex ), sunet, decompresie și alte sarcini.
Motorul de fizică Havok SDK este principalul concurent al motorului PhysX SDK. Este folosit în peste 150 de jocuri, inclusiv jocuri precum Half-Life 2 , The Elder Scrolls IV: Oblivion și Dead Rising . [opt]
Pentru a concura cu procesorul fizic PhysX, a fost dezvoltat conceptul Havok FX , a cărui esență principală a fost utilizarea puterii plăcilor video pentru a accelera anumite calcule fizice. Havok FX urma să fie utilizat numai pe computere echipate cu cel puțin două plăci video conectate folosind NVIDIA SLI sau ATI Crossfire . În același timp, o placă video din acest pachet a trebuit să fie alocată complet pentru calcule fizice. [9]
Soluția lui Havok împarte toate simulările de fizică în efecte fizice și fizică „gameplay”. Efectele fizice (praf, fragmente mici și resturi de la explozii, incendiu) sunt procesate folosind GPU-ul de pe placa video ca instrucțiuni Shader Model 3.0 (Shader Model versiunea 3.0). Fizica „gameplay” este gestionată de CPU în mod obișnuit. O diferență importantă între cele două este că efectele fizice nu afectează modul de joc al jocului; marea majoritate a operațiunilor fizice sunt încă efectuate în software standard de către CPU. Această abordare diferă semnificativ de motorul PhysX SDK, care redirecționează toate calculele fizice curente către cardul PhysX.
De când Intel a cumpărat Havok pe 15 septembrie 2007, Havok FX a fost anulat. S-a presupus că Intel va îngheța proiectul de suport hardware pentru motor pe plăcile grafice ale concurentului său, AMD, și se va concentra pe optimizarea motorului pentru procesoarele sale multi-core. [10] [11] [12]
Pe 20 martie 2009, a apărut știrea că la evenimentul anual Game Developers Conference 2009, AMD și Havok vor demonstra accelerarea fizică de către plăcile grafice Radeon . Terry Makedon , manager de produs pentru ATI Catalyst , a declarat că la GDC, AMD își va prezenta strategia „ATI GPU Physics” și va face o demonstrație aferentă. AMD va folosi limbajul de programare OpenCL pentru a accelera Havok , al cărui compilator face parte din pachetul software ATI Stream SDK. [13] [14] [15] [16]
După cum am promis, AMD și Havok au susținut o demonstrație de fizică pe GDC 09. Pentru prima dată, a fost demonstrată capacitatea de a rula „Havok Cloth” pe o extensie OpenCL. S-a afirmat că pentru calculele acestui subsistem este necesar un procesor grafic AMD cu suport pentru OpenCL și AMD Stream. A fost, de asemenea, menționată concentrarea lui Havok pe cele mai recente procesoare multi-core Phenom de la AMD . [17] [18] [19]
Link-uri secțiuniDezvoltarea conceptului GPGPU face ca GPU-urile să fie din ce în ce mai potrivite pentru sarcinile care sunt destinate procesoarelor fizice. DirectX 10 adaugă tipuri de date întregi , o arhitectură unificată de umbrire și umbrire de geometrie la GPU, care îi permit acestuia să gestioneze o gamă mai largă de algoritmi . NVidia CUDA oferă comunicare între fire și un spațiu de lucru în stil scratchpad asociat cu fire .
Cu toate acestea, GPU-urile sunt proiectate să funcționeze cu grafică 3D pe computer. Au o latență mai lungă, fluxuri mai lente, funcționează cu texturi și framebuffer . Acest lucru le diferențiază de Ageia PPU și Cell ca fiind mai puțin potrivite pentru modelarea fizică.
Sistemul de programare paralelă Sieve C++ acceptă PPU, arătând că cipul Ageia PhysX ar fi potrivit pentru sarcini de tip GPGPU.
Link-uri secțiuniLarrabee de la Intel , o implementare multi-core optimizată pentru lățimea de bandă a arhitecturii x86, este de așteptat să fie potrivită pentru rolul procesorului fizic . La fel ca procesorul Cell, Larrabee se află între CPU și GPU în ceea ce privește parametrii săi. Larrabee este proiectat pentru procesarea multi-threaded cu mai multe sarcini, spre deosebire de procesarea internă specializată de înaltă performanță. Intel a confirmat că arhitectura de memorie Larrabee nu va folosi buffer-uri temporare precum Cell sau Ageia PhysX; în schimb, arhitectura memoriei va fi mai aproape de ierarhia normală a memoriei cache a CPU. Cu toate acestea, Larrabee va avea extensii pentru a activa HPC (cel mai probabil o înlocuire completă a instrucțiunilor de gestionare a memoriei cache).
În 2008, AMD și-a anunțat proiectul AMD Fusion . AMD Fusion va fi un procesor care combină un procesor central x86-64 și un procesor grafic bazat pe cele mai recente modele din seria Radeon pe un singur cip . Diverse resurse de procesor AMD Fusion , cum ar fi memoria cache ierarhică, vor fi partajate. Această configurație viitoare este, de asemenea, probabil potrivită pentru rolul PPU.
Tehnologii de procesoare digitale | |||||||||
---|---|---|---|---|---|---|---|---|---|
Arhitectură | |||||||||
Arhitectura set de instrucțiuni | |||||||||
cuvânt mașină | |||||||||
Paralelism |
| ||||||||
Implementări | |||||||||
Componente | |||||||||
Gestionare a energiei |