Procesor fizic

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.

Ageia PhysX

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țiuni

Coprocesor VU0 în PS2 ca PPU

Consola 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.

Procesor celular ca PPU

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.  

Havok FX

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țiuni

GPU vs PPU

Dezvoltarea 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țiuni

Intel Larrabee și AMD Fusion

Larrabee 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.

Note

  1. Nicholas Blachford. Lets Get Physical: Inside The PhysX Physics Processor  (Engleză) (2006). Preluat la 10 iunie 2014. Arhivat din original la 14 iulie 2014.
  2. Ben Hardwidge. Nvidia oferă suport PhysX pentru AMD / ATI  (engleză)  (downlink) . custompc.co.uk (10 martie 2008). Preluat la 30 martie 2009. Arhivat din original la 11 octombrie 2008.
  3. Pavel „xAnder” Shubsky. Driver NVIDIA WHQL pentru PhysX - începutul lunii august (downlink) . Jocuri de noroc (24 iulie 2008). Data accesului: 27 iulie 2008. Arhivat din original la 28 iulie 2008. 
  4. BlackCat. PhysX este piratat și nu mai este exclusiv plăcilor NVIDIA . IXBT.com (28 iunie 2008). Consultat la 9 iulie 2008. Arhivat din original pe 29 iunie 2009.
  5. Pavel „xAnder” Shubsky. NVIDIA deschide suportul PhysX pentru ATI Radeon? (link indisponibil) . Jocuri de noroc (9 iulie 2008). Consultat la 9 iulie 2008. Arhivat din original la 17 mai 2013. 
  6. NVIDIA lansează driver pentru suport hardware PhysX . GameDev.ru (15 august 2008). Data accesului: 27 octombrie 2008. Arhivat din original la 5 ianuarie 2012.
  7. Vinnie este șeful serviciilor tehnice pentru XFX Europe. Fizica aproape gratuită . RusDoc.ru (14 octombrie 2008). Consultat la 19 octombrie 2008. Arhivat din original pe 5 ianuarie 2012.
  8. Jocuri folosind Havok (link descendent) . Consultat la 16 octombrie 2008. Arhivat din original la 18 aprilie 2012. 
  9. Informații despre produs Havok FX (downlink) . Consultat la 16 octombrie 2008. Arhivat din original pe 2 martie 2007. 
  10. Anton Shilov. Fizica GPU este moartă pentru moment, spune că șeful pentru relații cu dezvoltatorii AMD Nvidia prezice „sinergii negative” cu achiziția Havok de către Intel  (  link inaccesibil) . X-bit labs (19 noiembrie 2007). Consultat la 27 februarie 2011. Arhivat din original pe 16 februarie 2012.
  11. Anton Shilov. Intel va achiziționa  Havok . Bit-tech (15 septembrie 2007). Consultat la 27 februarie 2011. Arhivat din original pe 16 februarie 2012.
  12. Arsenie Gherasimenko. Intel a anunțat achiziția Havok . 3DNews (17 septembrie 2007). Consultat la 27 februarie 2011. Arhivat din original la 2 noiembrie 2009.
  13. Ben Hardwidge. AMD va demonstra fizica GPU la GDC  săptămâna viitoare . Bit-tech (20 martie 2009). Consultat la 23 martie 2009. Arhivat din original la 16 februarie 2012.
  14. Alexander Shemetov. Accelerația fizică cu GPU-urile AMD vine în curând . 3DNews (23 martie 2009). Consultat la 23 martie 2009. Arhivat din original pe 26 martie 2009.
  15. BESS!. AMD va arăta „accelerare fizică” în GPU-urile lor cu API-ul Havok la GDC2009 (link indisponibil) . iXBT (24 martie 2009). Preluat la 24 martie 2009. Arhivat din original la 3 iulie 2017. 
  16. Pavel Shubsky. AMD va demonstra procesarea fizică . Jocuri de noroc (revista) (23 martie 2009). Consultat la 24 martie 2009. Arhivat din original la 31 martie 2009.
  17. Pavel Shubsky. AMD a demonstrat fizica . Jocuri de noroc (revista) (27 martie 2009). Consultat la 27 martie 2009. Arhivat din original la 31 martie 2009.
  18. BESS!. AMD și Havok la Game Developers Conference 2009 (link nu este disponibil) . iXBT (27 martie 2009). Preluat la 28 martie 2009. Arhivat din original la 3 iulie 2017. 
  19. Alexander Shemetov. Havok și AMD au prezentat fizica OpenCL la GDC . 3DNews (29 martie 2009). Consultat la 30 martie 2009. Arhivat din original la 30 martie 2009.

Link -uri