Tecnica: AMD Heterogeneous Queuing

 

Sta lentamente divenendo un organismo unico ciò che viene comunemente chiamato APU, certamente i benefici dell’unificazione on die di core grafico e CPU si sono già visti, ma non da un punto di vista puramente computazionale. Fino ad oggi le APU hanno conservato la distinzione di funzionamento tra CPU e GPU, la collaborazione tra le due unità avviene principalmente a livello firmware, con layer di smistamento dei carichi di lavoro come OpenCL. Abbiamo già descritto il funzionamento della tecnologia hUMA, che sarà integrata nelle APU Steamroller, oggi getteremo uno sguardo su ciò che AMD definisce Heterogeneous Queuing (hQ).

L’approccio attuale di generazione della coda di task, permette alle applicazioni di generare direttamente la coda di lavoro dedicata alla CPU, a sua volta i core CPU possono generare la queue per sè stessi in maniera molto efficiente, mentre quando si deve passare un task ai core grafici, è necessario passare attraverso il sistema operativo, passaggio software che genera molta latenza. La GPU è trattata come un cittadino di seconda categoria, non potendo generare task per sè stessa e per la CPU.

 

L'approccio attuale al calcolo eterogeneo obbliga ad un passaggio attraverso l'OS, generando latenza

L’approccio attuale al calcolo eterogeneo obbliga ad un passaggio attraverso l’OS, generando latenza

Dopo aver sviluppato l’accesso diretto alla memoria condivisa, AMD ha messo a punto la tecnologia dell’Heterogeneous Queuing per fare in modo che CPU e GPU fossero trattati alla pari dalle applicazioni. Grazie a questo sistema di generazione del carico, ognuno dei due componenti hardware può generare task e code di lavoro per sè stesso e per l’altro. I task sono suddivisi in pacchetti di formato standard, che ogni hardware compatibile con le specifiche HSA (Heterogeneous System Architecture) sarà in grado di gestire.

L'Heterogeneous Queuing permette a CPU e GPU di interagire in maniera diretta

L’Heterogeneous Queuing permette a CPU e GPU di interagire in maniera diretta

Le applicazioni metteranno i task in una coda di esecuzione unica, ogni applicazione potrà generare diversi task e  un layer di virtualizzazione permetterà al sistema HSA di vedere tutti i task. I core CPU e GPU disporranno di code di esecuzione proprie, che potranno generare indipendentemente, ma potranno anche passare un task all’altra unità di elaborazione avendo accesso ad entrambe le code.

Allo stato attuale, l’implementazione dell’Heterogeneous Queuing sfrutta lo scheduling hardware per determinare come CPU e GPU devono accedere alla coda e suddividersi il lavoro, ma le specifiche finali dell’HSA non prevedono strettamente un’implementazione hardware. Il compito della gestione della coda potrebbe essere affidato anche all’OS, che a quel punto dovrebbe occuparsi dello smistamento dei task tra CPU e GPU. Il secondo approccio permetterebbe di migliorare l’interazione tra CPU e GPU anche nel caso in cui non si tratti di APU, ma di schede grafiche discrete, trattando queste ultime come coprocessori di pari grado della CPU.

Almeno inizialmente, Windows sarà l’unico OS a supportare la tecnologia hQ, ma AMD sta lavorando con diversi sviluppatori Linux e anche per sistemi operativi di altro genere.


Fonte: urlHeise
 
Tag dell'articolo: , , , .

 

Non sono ammessi commenti per questo articolo.

Fan di Facebook

Seguici o condividi su:

Assistenza Tecnica

▲ torna su Login »

Per qualsiasi informazione si prega di utilizzare la sezione Contatti - Pagina dello Staff.
Nomi e marchi appartengono ai legittimi proprietari e vengono utilizzati per il solo scopo informativo.
Tutti i contenuti pubblicati, salvo diversa indicazione, sono soggetti alla licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Italia.
Licenza Creative Commons
2011 - TechArena
P.Iva: 02914540980