NVIDIA PhysX e CPU: un binomio non ideale?

NVIDIA PhysX e CPU: un binomio non ideale?

Un articolo evidenzia come l'ottimizzazione da lato codice per l'esecuzione di PhysX via CPU sia tutt'altro che ideale, soprattutto confrontandola con quella per GPU

di pubblicata il , alle 17:22 nel canale Schede Video
NVIDIA
 

Grazie ad un articolo pubblicato sul sito Realworldtech, a firma David Kanter, emergono interessanti informazioni su come NVIDIA gestisca l'ottimizzazione delle proprie API PhysX, con riferimento all'accelerazione della fisica nei giochi utilizzando le proprie GPU da un lato e le CPU dall'altro.

PhysX è una cosiddetta graphics middleware, che permette secondo quanto affermato da NVIDIA di velocizzare l'utilizzo di tecniche legate alla fisica degli oggetti 3D in ambito videoludico con sensibili incrementi prestazionali grazie alla capacità propria delle GPU di gestire al meglio calcoli paralleli. Le elaborazioni legate alla fisica, del resto, sono per loro natura capaci di venir gestite in threads paralleli beneficiando quindi della disponibilità di architetture parallele.

Utilizzando il tool Intel VTune Kanter ha evidenziato, attraverso un'analisi dell'esecuzione di differenti giochi che utilizzano PhysX, che nel momento in cui PhysX non ha a disposizione una GPU NVIDIA per accelerare le elaborazioni vengono utilizzate istruzioni in virgola mobile x87 al posto di quelle SSE, ben più veloci e disponibili in processori sia Intel che AMD in commercio da molti anni.

Questo approccio è da un lato garanzia di compatibilità con qualsiasi tipologia di processore possa venir utilizzata, benché tutte le cpu in commercio da un elevato numero di anni a questa parte implementa supporto SSE. Inoltre, questo permette a NVIDIA di non dover far fronte alla presumibile mole di lavoro legata all'ottimizzazione del codice per istruzioni SSE, cosa da un palo plausibile considerando come l'interesse di NVIDIA stia nel mondo GPU e non in quello CPU.

D'altro canto, l'utilizzo di questo approccio unito al fatto che il codice PhysX viene eseguito in single threaded senza beneficiare della presenza di più core di processori, rende le prestazioni PhysX con CPU inferiori rispetto a quanto potrebbero essere, utilizzando una CPU per le elaborazioni e servendosi di codice multithreaded oltre che di ottimizzazioni per le istruzioni SSE.

Se NVIDIA propone le proprie GPU per ottenere importanti incrementi prestazionali rispetto alle tradizionali CPU con la gestione della fisica nei giochi, è evidente come l'attuale implementazione di PhysX per CPU penalizzi sensibilmente queste architetture, rendendo il confronto con le GPU ben più favorevole a queste ultime.

NVIDIA è libera di ottimizzare o meno le proprie middleware PhysX per l'utilizzo con CPU, ma è evidente come il codice reso disponibile sino ad ora non porti beneficio ai games developer come agli utenti finali. E' ipotizzabile, del resto, che le prestazioni di una CPU multicore con codice PhysX ottimizzato multithreaded e con SSE possa risultare essere ben più veloce di quanto ottenibile con una GPU NVIDIA di ultima generazione. La scelta è libera, avendo NVIDIA proprietà di PhysX, ma è evidente come il livello prestazionale ottenibile con elaborazioni via CPU non sia allineato a quanto teoricamente possa venir messo a disposizione degli utenti. E' altrettanto chiaro, a nostro avviso, come con questa strategia si voglia mettere in una luce migliore di quello che tecnicamente potrebbe essere un limite prestazionale delle GPU rispetto alle CPU, oltre che una forma di fatto artificiale per impedire che PhysX possa venir sfruttato da tutti gli appassionati a prescindere dal tipo di GPU adottata.

212 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Mr Resetti08 Luglio 2010, 17:34 #1
Ovvio che castrano questa tecnologia sennò chiunque abbia un processore potente potrebbe non aver bisogno di HW nVidia per far girare PhysiX. Dato che tale tecnologia è proprietaria, e non open source, e che ci hanno investito sopra dei soldi penso sia giusto cercare di averne un ritorno economico.
Caridorc08 Luglio 2010, 17:34 #2
@nVidia

Siete dei cani morti...
SwatMaster08 Luglio 2010, 17:34 #3
In un linguaggio tecnico, questa si chiama "presa per il culo".

E' lo stesso discorso dei compilatori Intel che penalizzano i proci AMD... Il software, sull'hw avversario gira male, così il mio sembra piùffigo di quel che in realtà è, ma gira. Così evito beghe con antitrust e organi vari.
Aryan08 Luglio 2010, 17:36 #4
Molto meglio Havok!!!
Masamune08 Luglio 2010, 17:39 #5
cioè, praticamente nvidia ti da un codice che in presenza di proprie gpu va come un treno, mentre se deve girare su cpu, gira castrato.
e per giunta, se facessero le cose fate per bene, col codice ottimizzato, le performance sarebbero superiori utilizzando una cpu multicore invece di una gpu nvidia.
ho capito bene?
Maury08 Luglio 2010, 17:42 #6
E' una vita che si dice che le 4 cose in croce che muove un game con PhysX attivato una cpu di medio livello potrebbe eseguire altrettanto bene.

PhysX è una buffonata, andrebbe boicottato.
songoku4198308 Luglio 2010, 17:44 #7
Originariamente inviato da: Masamune
cioè, praticamente nvidia ti da un codice che in presenza di proprie gpu va come un treno, mentre se deve girare su cpu, gira castrato.
e per giunta, se facessero le cose fate per bene, col codice ottimizzato, le performance sarebbero superiori utilizzando una cpu multicore invece di una gpu nvidia.
ho capito bene?


sembrerebbe cosi. ma è normale che utilizzi le cpu, d'altronde physix è sua
Elrim08 Luglio 2010, 17:44 #8
Ovvio, se vuoi PhysX devi avere un gpu Nvidia. Così come se uno vuole chessò, Snow Leopard, deve comprarsi il Mac.
hermanss08 Luglio 2010, 17:47 #9
if( GPU_NVIDIA ) {
vai come un treno;
.
.
.

} else { vai una ciofeca;}
LZar08 Luglio 2010, 17:51 #10
Non ho capito questa frase: "... cosa da un palo plausibile considerando come l'interesse di NVIDIA stia nel mondo GPU e non in quello CPU.... " .
Che significa "cosa da un palo plausibile"?

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^