Ray tracing solo tra 10 anni, le GPU sono acerbe

La rasterizzazione avrà campo libero per almeno 10 anni. Il ray tracing non è ancora gestibile in maniera ottimale dalle GPU. Serve un passo in avanti sia sul fronte della potenza, che su quello della programmabilità e non è escluso un ritorno a unità specializzate.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

La rasterizzazione (rasterization) continuerà a essere la tecnica di rendering 3D principale anche nei prossimi 10 anni. Il ray tracing - e altre tecnologie simili - dovranno aspettare perché hanno caratteristiche che l'hardware dei prossimi anni non potrà gestire in modo efficiente. Il ray tracing è un algoritmo che riproduce la scena con una tecnica che segue i raggi (rays) partendo dal punto di vista della telecamera anziché dalle sorgenti di luce. Questo permette di riprodurre effetti visivi di altissima qualità, superiori a quelli che adesso otteniamo con la rasterizzazione. Tutto questo richiede però moltissima potenza perché si tratta di un'operazione complessa.

Stando a quanto affermato da David Luebke, direttore della ricerca grafica di Nvidia, il metodo più corretto per gestire i calcoli richiesti dal ray tracing sarebbe di integrare hardware a funzione fissa nelle future GPU. Gli attuali motori ray tracing hanno diversi limiti, che al momento sembrano valicabili solo con hardware specifico.

"In futuro le prestazioni superiori delle GPU e la maggiore programmabilità si combineranno per consentire approcci più semplici - come il ray tracing. Il rovescio della medaglia è che per quanto riguarda la grafica ci sono molti effetti che non possiamo riprodurre in tempo reale. Nei prossimi anni continuerete a vedere giochi che introdurranno innovazioni grafiche, nuovi algoritmi e modi di usare l'hardware", ha dichiarato Luebke.

Il ray tracing

Se da una parte c'è l'ipotesi di un ritorno a unità specializzate, la programmabilità delle GPU continuerà a estendersi. "Le GPU del futuro saranno molto più potenti in termini di prestazioni pure e maggiormente programmabili - nel senso che la gamma di applicazioni che potranno accelerare sarà più ampia di quella attuale. Gran parte della nostra ricerca sulle architetture è focalizzata nel migliorare la programmabilità senza sacrificare le prestazioni", ha dichiarato Bill Dally, capo scientifico di Nvidia.

Dally ha anche affermato che il futuro sarà dei sistemi eterogenei con CPU e GPU che si occuperanno delle operazioni che sanno fare al meglio. "Il futuro è il calcolo eterogeneo nel quale useremo le CPU (ottimizzate per le prestazioni single-thread) per porzioni di lavoro sensibili sul fronte della latenza e le GPU (ottimizzate per throughput per unità di energia e costo) per porzioni di calcolo parallelo. Le GPU possono gestire sia i dati che le porzioni di lavoro parallelo meglio delle CPU perché sono più efficienti. Le CPU sono necessarie solo per parti di lavoro sensibili sul fronte della latenza - le parti seriali e le sezioni critiche", ha affermato Dally.

"Non vedo la convergenza tra core ottimizzati per la latenza e core specializzati per gestire il throughput. Le tecniche usate per ottimizzare latenza e throughput sono molti differenti ed entrano in conflitto. Avremo un singolo chip con molti (migliaia) core per il throughput e un numero minore di core ottimizzati per la latenza quindi possiamo gestire entrambi i tipi di codice", ha aggiunto Dally.

Il peggior nemico del calcolo eterogeneo sono i modelli di programmazione attuali. Bilanciare il carico tra CPU e GPU potrebbe essere molto costoso in termini di prestazioni. "Ci aspettiamo che il sistema operativo tratti i core della CPU e quelli della GPU alla pari - programmando il lavoro per entrambi i tipi di core. Tuttavia spostare il lavoro da un core della CPU a una della GPU o viceversa non sarebbe ottimale", ha terminato il capo scientifico di Nvidia.