Home News AMD Heterogeneous Queuing, CPU e GPU comunicano

AMD Heterogeneous Queuing, CPU e GPU comunicano

AMD Heterogeneous Queuing, CPU e GPU comunicanoAMD compie un altro importante passo verso l'heterogeneous computing, introducendo una nuova tecnologia, chiamata Heterogeneous Queuing, che favorirà un miglior sfruttamento delle APU da parte di sviluppatori e programmatori, consentendo l'accesso diretto alla GPU e instaurando la possibilità di una comunicazione bilaterale tra GPU e CPU, con conseguente aumento significativo delle prestazioni.

AMD è impegnata ormai da anni in un importante missione: traghettare il computing dagli attuali sistemi omogenei a quelli eterogenei, un’esigenza nella quale si iscrive pienamente anche la tecnologia hQ (heterogeneous Queuing), illustrata e presentata dal chipmaker californiano.

AMD Heterogeneous Queuing

Gli scenari futuri infatti avranno sempre più bisogno di processori altamente paralleli e con CPU e GPU integrate e fuse in un'unica architettura eterogenea, in grado cioè di eseguire contemporaneamente task molto differenti, sfruttando ora le peculiarità dell'una ora dell'altra, invece delle attuali soluzioni ultraspecializzate, che hanno il difetto di essere altamente dispendiose, sia dal punto di vista dei consumi energetici sia dal punto di vista della potenza di calcolo. Le APU o Accelerated Processing Units, sono state il primo, necessario passo verso sviluppi di questo tipo, ma fondere assieme elementi architetturali così diversi come unità di calcolo e processori grafici in un'unica soluzione richiederà diverso tempo e altri passaggi intermedi. Aver portato CPU e GPU all'interno dello stesso die infatti non è sufficiente, ora bisogna iniziare a unificarne più a fondo le caratteristiche, sviluppando anche parallelamente soluzioni per favorire una distribuzione più efficiente e bilanciata dei carichi di lavoro e rendere la vita più facile agli sviluppatori, che vanno invogliati a sfruttare questo nuovo tipo di opportunità.

hUMA

Non a caso, nonostante le APU esistano ormai dal lontano 2006, AMD spiegò già due anni fa che un primo e più decisivo passo verso strutture di calcolo eterogeneo sarebbe stato compiuto soltanto con l'introduzione delle architetture Bulldozer e con le successive Piledriver (Trinity e Richland) e Steamroller (Kaveri), che finalmente offrono la possibilità, a CPU e GPU, di accedere a un unico spazio di memoria comune, grazie alla tecnologia hUMA (heterogeneous Uniform Memory Access, in contrapposizione all'approccio corrente NUMA o Non Uniform Memory Access).

AMD Heterogeneous Queuing

Nella modalità NUMA CPU e GPU hanno infatti ciascuna la propria memoria dedicata, benché entrambe siano ovviamente relazionate a quella di sistema, e ciascuna è inaccessibile direttamente all'altra. Se dunque, in un sistema eterogeneo come si propongono di essere le APU, la prima volesse passare un determinato task alla seconda, in quanto più adatta a svolgerlo, o viceversa, bisognerebbe copiare prima il contenuto nella RAM e poi da lì nella cache dedicata, con una latenza notevole. hUMA corregge il problema, consentendo alla CPU di trasferire i pointer direttamente nella memoria della GPU e di andare poi a leggerne il risultato, senza necessità di copiare prima il tutto nella RAM e poi nuovamente nella propria cache. In questo modo molte latenze sono state eliminate e il processo è indubbiamente più efficace ma, sulla strada verso la realizzazione di una vera heterogeneous system architecture e in attesa di unificare fisicamente la memoria condivisa e non solo lo spazio di indirizzamento, bisognava compiere un ulteriore passo, rappresentato proprio dalla tecnologia heterogeneous Queuing presentata oggi.

hQ

Questa sostanzialmente corregge l'attuale struttura gerarchica che va unicamente dalla CPU alla GPU, introducendo la possibilità per i programmatori di sfruttare le APU in maniera più omogenea, rendendo lo scambio bilaterale tra le due componenti. Ora dunque sia la CPU che la GPU potranno generare task per se stesse e per l'altra.

AMD Heterogeneous Queuing

In questo modo le future applicazioni potranno bypassare completamente l'OS service, che si incarica attualmente di smistare i task a seconda della loro tipologia, inviando invece le proprie richieste di elaborazione di task direttamente all'hardware a disposizione, a prescindere dal fatto che si tratti di CPU o di GPU, a tutto vantaggio dell'efficienza complessiva, della riduzione delle latenze e soprattutto della facilità di programmazione di software capaci di avvantaggiarsi della presenza di architetture eterogenee. Almeno inizialmente Windows sarà l'unico sistema operativo con supporto a hQ, anche se AMD sta collaborando anche con i vari sviluppatori Linux per aggiungere al più presto il supporto a questo tipo di soluzione.

AMD Heterogeneous Queuing

Commenti (0) 

RSS dei commenti
Scrivi un commento
Si deve essere connessi al sito per poter inserire un commento. Registratevi se non avete ancora un account.

busy