Se pare ca marketingul de la nVidia inca a ramas la capitolul “hai sa pacalim pe toata lumea”.
Dupa ce au facut o prezentare cu o placa video falsa, prinsa in suruburi pentru lemn, (vedeti aici http://overmind.ro/Rev/nVF.html) si dupa ce produsul lor cel faimos a fost o ratare chiar si pentru piata profesonala unde au reusit sa aduca doar jumatate din performanta/watt promisa, se pare ca singurul lucru cu care se mai pot lauda este PhysX.
Lasand la o parte toate gherlele date de driverele lor, din cauza carora am tradus termenul respectic ca Pishix ca e mai aproape de realitatea situatiei, marketingul lor se lauda ca respectiva tehnologie e de 2-4x mai rapida pe GPU-ul lor decat pe un CPU.
Sa moara ei ?!
In primul rand, se mai face o mare magarie: daca in sistem este detectata o placa non-nVidia, Pishixul este oprit automat chiar daca in sistem exista si o placa nV.
Totusi niste oameni destepti au gasit cum sa modeze driverele astfel incat sa se poata folosi o placa ATi serioase ca principala in acelasi timp cu o reciclabila gen 9600 GT ce se foloseste pentru Pishix.
nVidia, ca sa demonstreze ce bun e Pishixu pe GPU, au folosit demo-uri gen PhysX Soft Body Demo sau Cryostasis. Cine a avut vointa a sapat un pic prin ele.
Pentru ca cu ATi-uri nu se permite intentionat Pishix, a ramas ca asta sa fie procesat de CPU. Ciudat este faptul ca pe CPU performanta Pishix este mult mai redusa decat ar trebui sa fie. Si mai cuidat e ca in demo-uri s-a folosit doar API-ul de la nV pentru a se demonstra acel avantaj de 2-4x. Ia sa vedem ce, cum si de ce.
La o analiza atenta se observa ca Pishixul foloseste in loc de instructiuni SSE instructinui x87 pentru calculele in virgula mobila.
Culmea: instructiuni x87 in CPU-uri recente nu se mai poarta. De cand AMD-ul a venit cu 3DNow! si intelul cu SSE, s-a renuntat in CPU-uri la instructiunile x87 din cauza de performante reduse fata de cele SSE. Comparativ, SSE-ul are un spor direct de 20% de performanta. Nici sistemele de operare recente x64 nu mai suparta asa ceva.
x87 se bazeaza pe stive, adica pentru a face o instructiune trebuie folosita stiva si trebuie multe operatiuni cu memoria. Vechiul cip Pishix functioneaza pe 32 de biti. Necesitand double precision floating point in GPU-urile G80 inseamna ca pe 128 de biti se pot pune 4 astfel de puncte.
SEE in schimb, are pentru instructiuni atat variante scalare cat si vectoriale. Scalar se traduce in o data / instructiune, in timp ce pentru vectorial putem avea o instructiune pe 128 de biti, doua pe 64 sau 4 pe 32.
Asadar daca avem 4 instructiuni 32-bit acestea se pot executa de SSE intr-un singur ceas.
Deci deja s-a depasit avantajul de 2-4x mentionat de nV. Intr-un caz cinstit, Pishixul ar trebui sa functioneze cel putin cu 20% mai bine pe un CPU (am avea un raport de minim 5:4 in favoarea CPU).
Dar trisarile nu se termina aici.
Pshixul pentru CPU este facut a fi procesat ca single-thread, adica de un singur core al unui CPU. Totusi, pe GPU-ul nV, este lasat sa lucreze in paralel. Cum demonstram asta ? Simplu:
daca nV se lauda cu o performanta de pana la 4x mai buna pentru un GTX280 fata de un quad core, inseamna ca pentru a atinge respectiva performanta, ar trebui sa lucreze cam 60 de core-uri din placa video.
Deci 60 de core-uri de placa video sunt echivalentul unui singur core de CPU.
Daca nu ar exista multithread pus bine la punct in GPU, atunci Pishixul s-ar fi miscat mult mai rau pe respectivul GPU.
Sa mai recalculam o data. Daca intr-un quad core s-ar putea folosi multithread, atunci deja performanta Pishix pe CPU ar fi de 5 ori mai mare decat pe GPU (raport 20:4). Pentru un 6-core de 7.5x (raport de 30:4).
Magaria mai este demonstrata si confirmata si de cat de bine functioneaza Pishixul pe console gen PS3, unde nu exista suport hardware pentru Pishix, dar totusi ruleaza la framerate-uri acceptabile.
Deci vedeti unde-i problema ? Data fiind doar situatia acutala, avantajul de 2-4x ar fi fost anulat de folosirea de core-uri multiple in cazul CPU-urilor.
Evident ca atunci nV n-ar mai fi avut cum sa se laude cu respectivul ‘avantaj’ si erau lasati cu intre 50% si egalitate. Deci implementarea lor exclusiva de Pishix isi pierdea scopul si rostul.
Ca atare, daca nu s-ar folosi cele doua trisari, Pishixul ar fi functionat pe CPU de 4-8x mai repede. Va dati seama cata magaria s-a facut ?
API-urile de la Bullet physics / Havok nu au probleme in acest sens. Dar asta de la nV e mai incapatanat.
Daca s-ar aplica aceleasi trisari si s-ar anti-optimiza codul de Pishix pentru GPU-ul nV ar ajunge pe undeva la de 1000x mai incet dacat pe un CPU modern.
Rusine ! Tehnolgia Pishix isi merita pe deplin denumirea.
-
Recent Posts
Recent Comments
xaeus on How to identify 18650 cell cap… eby on How to identify 18650 cell cap… xaeus on How to identify 18650 cell cap… eby on How to identify 18650 cell cap… xaeus on How to identify 18650 cell cap… Archives
- February 2022
- January 2022
- November 2021
- May 2020
- January 2020
- July 2019
- May 2019
- August 2018
- February 2018
- December 2017
- June 2017
- May 2017
- April 2017
- March 2017
- February 2017
- November 2016
- September 2016
- June 2016
- May 2016
- December 2015
- September 2015
- July 2015
- May 2015
- February 2015
- December 2014
- November 2014
- October 2014
- September 2014
- June 2014
- April 2014
- February 2014
- January 2014
- September 2013
- August 2013
- July 2013
- May 2013
- August 2012
- December 2011
- October 2011
- August 2011
- February 2011
- October 2010
- September 2010
- July 2010
- May 2010
Categories
Meta