DigitalNewsChannel

PhysX: un esempio d'inefficienza?

Qualunque gamer che scelga una VGA NVIDIA, lo fa anche per ottenere il pieno supporto alle tecnologie di simulazione della fisica PhysX, utilizzate in diversi giochi e pubblicizzate dal Green Team sin dall’acquisizione di Ageia, sviluppatore iniziale del progetto.

Usare una scheda video NVIDIA su titoli che sfruttano queste istruzioni, significa poter vivere un’esperienza di gioco migliore, perché spesso vengono aggiunti più dettagli ed effetti oltre che la semplice velocizzazione del codice… Eppure, David Kanter di Realworldtech.com punta il dito contro PhysX. Perché?

Physx Fail

Quando il modello fisico di Ageia fu portato dentro NVIDIA, questa dismise subito la produzione della prima PPU (Physics Processing Unit) dedicata e portò il codice in CUDA, così da renderlo adatto alle proprie GPU. Ovviamente, anche le normali CPU avrebbero potuto eseguire PhysX, ma con le debite differenze in termini prestazionali: la madre delle GeForce afferma un boost compreso tra due e quattro volte le prestazioni di una CPU, usando le proprie GPU PhysX compliant.

Dalle ricerche di Kanter, però, sembrerebbe che il codice, sulle CPU, venga eseguito in modalità single-threaded, e questo già si sapeva, nonostante si tratti di un tipo di calcolo particolarmente affine ad architetture multi-core. Abilitare il supporto completo al multi-threading, già raddoppierebbe la velocità di esecuzione sui processori, ma andiamo avanti.

Dopo un’analisi dei processi di giochi come Cryostasis tramite VTune, Kanter avrebbe scoperto che il 100% delle istruzioni per i calcoli di PhysX sarebbero scritte usando il set x87, il vecchio modello a virgola mobile deprecato già da AMD nel 2003, e sconsigliato vivamente da Intel cinque anni fa, tanto da pretenderne la sostituzione in toto con il più moderno set SSE. Si potrebbe pensare che NVIDIA utilizzi x87 per ottenere una maggior precisione, ma non è questo il caso: se è vero che x87 sfrutta 8 registri da 80 bit ciascuno, è anche vero che i dati vengono prevalentemente archiviati in memoria usando comunque 64 bit, quindi con gli altri 16 che vengono troncati. SSE, invece, ha 16 registri da 128 bit, cosa che garantirebbe di per sè un bell'aumento delle prestazioni, e gestisce due livelli di precisione (FP32 e FP64), quindi del tutto simile a x87 per questo tipo di calcoli.

Del resto, la PPU di Ageia riusciva al massimo a gestire dati in single-precision, quindi 32 bit bastano ed avanzano. Prova ne è che PhysX gira anche su G80 (GeForce 8800GTX e Ultra), GPU senza il supporto a FP64.

Quindi, Kanter conclude, PhysX usa x87 per volere di NVIDIA: altrimenti, tramite SSE una CPU potrebbe eguagliare (o quantomeno avvicinare) le prestazioni di una GPU GeForce, soprattutto se si riscrivesse il codice anche per sfruttare tutti i core.

Assumendo che i testi siano stati condotti secondo una metodologia corretta, come del resto sembrerebbe, le conseguenze in termini di immagine per NVIDIA saranno pesanti: in effetti, l’unica motivazione per l’uso di codice x87 sarebbe la necessità di far apparire le proprie GPU come più veloci e prestanti agli occhi dell’utenza.

A farne le spese, però, oltre ovviamente agli affezionati di NVIDIA, sono soprattutto i programmatori che devono spolverare nozioni vecchie di decenni per far fronte ad una scelta discutibile dell’azienda.

PhysX: un esempio d'inefficienza? -- redazione
Wednesday, 29 May 2013 08:33
Autore originale: UnPower_911
Data: 2010-07-07 15:16:49

In effetti mi sembrava strano che PhysX fosse così pesante, nel senso che i calcoli della fisica non sono poi la cosa più complessa al mondo, almeno al livello in cui sono integrati nei VG (poi ovvio se bisogna far calcoli particellari ad alti livelli, chessò simulare un modello per ricerca scienfica, lì è un altro paio di maniche, ma nei VG al massimo cade un palazzo poligonale)

Certo se fosse vero e se la cosa susciterà scalpore forse magari NVIDIA si riterrà costretta a dover cambiare le cose... forse.!
PhysX: un esempio d'inefficienza? -- yepp78
Wednesday, 29 May 2013 11:22
ma alla fine perchè NVIDIA dovrebbe sviluppare codice per altri? cioè mica è un consorzio che sta sviluppando uno standard... fa le scelte che vuole per mantenersi l'esclusiva e a me sembra legittima visto che in questo mondo nessuno ti regala niente
Fai il login per postare un commento

In Evidenza

Mercati - Big 4

Loading
Chart
o Apple 140.64 ▼0.28 (-0.20%)
o Google 814.43 ▼3.15 (-0.39%)
o IBM 173.83 ▼0.99 (-0.57%)
o Microsoft 64.98 ▲0.11 (0.17%)

Mercati - Hardware

Loading
Chart
o AMD 13.70 ▼0.09 (-0.65%)
o ARM $0.00 (%)
o Intel 35.16 ▼0.11 (-0.31%)
o NVIDIA 107.47 ▲0.38 (0.35%)

Mercati - Fotografia

Loading
Chart
o Canon 3,495.00 ▲12.00 (0.34%)
o Fujifilm 4,474.00 ▲21.00 (0.47%)
o Nikon 1,653.00 ▲19.00 (1.16%)
o Sony 3,603.00 ▲63.00 (1.78%)
DigitalNewsChannel© 2010 - 2013 di Professional Systems Consulting srl. P.IVA: 01339090050 Tutti i diritti riservati. E' vietata la riproduzione, anche solo in parte, di contenuti e grafica senza espresso consenso dell'editore. DigitalNewsChannel è testata giornalistica registrata n. 4 del 16/06/2010 presso il Tribunale di Asti. Iscrizione ROC n° 21062.

Registrati

Registrazione utente