Fino alla scorsa generazione di GPU, le Radeon HD 6xxx basate su core Cayman, AMD impiegava un'architettura chiamata VLIW (Very Long Instruction Word), che ha abbandonato proprio quest'anno in favore della nuova GCN. Questo cambio di rotta si inquadra nella prosecuzione del progetto Fusion che, come sappiamo, non mira soltanto a integrare una GPU sullo stesso die della CPU, ma cerca di fonderne le componenti architetturali, così da portare nei processori logici quelle capacità di calcolo tipiche di architetture fortemente parallele come le GPU, al fine di spostarsi sempre più verso quel concetto di Heterogeneous Computing che vi abbiamo già spiegato più approfonditamente in precedenza.

La differenza fondamentale tra queste due soluzioni consiste nel passaggio dall'approccio ILP (Instruction Level Parallelism) a quello TLP (Thread Level Parallelism). VLIW nasceva per ottimizzare le operazioni di grafica, ma non era particolarmente adatta a svolgere calcoli di altro tipo, come invece si richiede a un moderno sistema di tipo GPGPU (General Purpose GPU). VLIW, infatti, per le sue caratteristiche intrinseche, era difficile da programmare in anticipo, non offriva alcuna funzione di scheduling dinamico durante la fase di esecuzione e non era abbastanza flessibile e facile da gestire per quanto riguarda i linguaggi di programmazione, indispensabili in ambito GPGPU. Le istruzioni infatti erano eccessivamente complesse e questo rendeva assai difficile svolgere operazioni di disassemblaggio e debug del codice, al fine di trovarne le sezioni critiche e correggerne le performance.

Inoltre l'intera architettura comunicava esclusivamente tramite compiler e questo poneva una serie di problemi ulteriori, come la necessità di sviluppare linguaggi di livello intermedio in grado di far comunicare il compiler, i programmi e l'hardware, col rischio che, se in un qualsiasi punto di questa complessa catena ci fosse stato anche solo un compiler non all'altezza si sarebbe prodotto del codice non perfettamente funzionante.

AMD Radeon HD 7000M

AMD ha dunque preferito tornare a una classica architettura basata su processori vettoriali di tipo SIMD (Single Instruction Multiple Data), in cui più unità elaborano dati diversi in parallelo, una scelta sicuramente più indicata per i propositi che si pone AMD. Senza scendere eccessivamente nei particolari tecnici basti dire che questa struttura è comunque diversa dalle SIMD presenti in Cayman, che erano praticamente un raggruppamento di Texture Unit. Qui invece ciascuna SIMD è composta da 16 ALU e un file di registro da 64 KB. Un gruppo di quattro SIMD compone poi una cosiddetta Compute Unit e infine gruppi di CU in multipli di quattro compongono la GPU vera e propria. La differenza principale, come detto, è che questa architettura è in grado di lavorare con più facilità su task di diversa natura.

Attenzione però, come con VLIW anche con GCN siamo ancora di fronte a un'architettura di tipo in-order. Le istruzioni all'interno di un cosiddetto wavefront (un insieme di 64 istruzioni) dovranno essere quindi eseguite nell'ordine prestabilito e GCN non potrà decidere di eseguire in ordine sparso diverse parti di un programma. A differenza di VLIW però è possibile selezionare un diverso wavefront da eseguire prima o dopo ed esso potrà essere parte di uno stesso task o di un task completamente differente. In particolare ogni SIMD potrà scegliere tra 10 wavefront e questo amplifica incredibilmente la capacità di calcolo eterogeneo di questa architettura rispetto alla precedente, le cui capacità in questo settore erano interamente dipendenti dal supporto delle API, limitato a un'estensione del linguaggio OpenCL. La conseguenza diretta è che anche scrivere un compiler è ora molto più facile visto che non bisogna più prevedere le priorità di esecuzione dei task e questo rende più facile sviluppare programmi che si avvantaggino delle capacità di queste nuove GPU per il calcolo parallelo.

  • Indietro
  • Avanti
Google News
Le notizie e le recensioni di Notebook Italia sono anche su Google News. Seguici cliccando sulla stellina

Commenti