Nvidia non ha ottimizzato PhysX per le CPU. I continui confronti tra processori e core grafici, fiore all'occhiello della campagna marketing dell'azienda statunitense, non sono specchio reale di come potrebbero andare le cose. Qualche settimana fa abbiamo riportato le informazioni di un test (
PhysX a marce ridotte con la CPU, Nvidia bara?) che vedeva PhysX alla prese con una CPU x86 standard. I risultati hanno evidenziato che PhysX su CPU lavora con un codice non ottimizzato - usa per la maggior parte istruzioni e operazioni matematiche x87 floating point anziché SSE - e spesso in modalità single-thread.
AMD è da diversi anni che batte il chiodo sulla scarsa ottimizzazione del codice Nvidia (
PhysX boicotta le CPU multi-core, AMD contro Nvidia,
Nvidia risponde ad AMD: false le accuse su PhysX). Messa alle strette da questi risultati e interrogata, l'azienda di Santa Clara
ha sostanzialmente ammesso di non aver lavorato con impegno sull'ottimizzazione di PhysX per i processori x86. Il codice usato per le CPU in pratica è vecchio di otto anni, poiché figlio dell'acquisizione di AGEIA.
Nel 2004 AGEIA acquisì Novodex, sviluppatrice dell'omonimo middleware fisico. Fino ad allora PhysX era stata una soluzione solo software, ma poi AGEIA decise di realizzare schede acceleratrici per la fisica (PPU, Physics Processing Unit). Questo passo portò l'azienda ad aggiornare l'SDK, ma solo per supportare la PPU,
lasciando sostanzialmente invariato il codice NovodeX originario.
"In base a quanto sostiene un ingegnere AGEIA che lavora ancora in Nvidia, Novodex aveva iniziato a realizzare l'SDK originale nel 2002 / 2003. Quando Nvidia acquisì AGEIA nel 2008, l'azienda aveva già effettuato il porting di PhysX su Xbox 360 e PS3. Il primo obiettivo di Nvidia è stato quello di portare PhysX sulla GPU e logicamente si è focalizzata nello sviluppo in quell'area", scrive HotHardware dopo una chiacchierata con un portavoce Nvidia.
"Secondo Nvidia è stato fatto un po' di lavoro per migliorare le capacità multithreading dell'SDK e le prestazioni generali, ma c'
è un limite su quello che si può ottimizzare su un motore vecchio di 8 anni senza distruggere la retrocompatibilità".
"Nvidia ha ammesso che ha speso molto più tempo a ottimizzare PhysX per il Xenon della Xbox 360 e il Cell della PS3 rispetto alla piattaforma x86".
A quanto pare in futuro le cose potrebbero cambiare. Nvidia sta lavorando a una nuova versione dell'SDK di Physx. Il team preposto sta riprogettando l'intera piattaforma da zero. Un passaggio che potrebbe incrementare anche le prestazioni di PhysX sulla CPU, ma per ora non ci sono dettagli.
Nvidia ha quindi ammesso il problema e si è impegnata per risolverlo, o quantomeno per migliorare la situazione.
Peccato però che ci siano voluti anni. Anni in cui l'azienda ha svolto un marketing aggressivo, sbandierando prestazioni che, in fin dei conti, erano solo specchietti per allodole. Nessuno mette in dubbio che PhysX abbia i suoi vantaggi, e sappiamo che i dati rilasciati dalle aziende sono spesso e volentieri gonfiati. Ma arrotondare per eccesso è una cosa, sparare prestazioni di molte volte superiori è un'altra.
Ci aspettiamo, insieme ai consumatori, comportamenti più corretti da aziende di questo calibro - soprattutto considerando il valore della fidelizzazione.
Questa volta non è andata così. Peccato.