HSA, Kaveri e Linux: AMD e le tappe del calcolo eterogeneo

AMD ha pubblicato il driver beta OpenCL 1.2 per Windows. Il pacchetto consente agli sviluppatori di iniziare a sperimentare con HSA. L'azienda ha annunciato anche il prossimo arrivo del supporto HSA per Linux.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

AMD ha pubblicato i driver i driver beta OpenCL 1.2 per Windows e ha annunciato l'intenzione di supportare l'Heterogeneous System Architecture (HSA) su Linux. L'azienda ha intenzione di implementare tale supporto nel secondo trimestre 2014 tramite un software di runtime HSA che supporterà molteplici linguaggi di programmazione.

Nonostante HSA sia ancora agli albori, le sue caratteristiche sono note a tutti: promette di offrire a sviluppatori e consumatori moltissima potenza di calcolo da applicare a svariati tipi di carico di lavoro. Nell'APU Kaveri (Recensione AMD A10-7850K e A8-7600: le APU Kaveri alla prova dei fatti) circa il 47% del die è dedicato alla GPU. Solitamente tale risorsa rimane inutilizzata, a meno che l'operazione da processare non sia di tipo grafico. In mondo ideale però gli sviluppatori potrebbero sfruttare quei transistor per accelerare carichi di tipo generale, ottenendo un miglioramento prestazionale e un'efficienza superiore. Ed è proprio questo lo scopo ultimo del calcolo eterogeneo, cioè usare la risorsa migliore per ogni singola operazione.

Con Kaveri AMD ha forgiato la prima soluzione hardware che risponde ai dettami di HSA. La potenza però è nulla senza il controllo, ovvero l'hardware può far poco senza il software. Ed è qui che entrano in gioco gli sviluppatori e gli investimenti che AMD deve fare se vuole ottenere un seguito lungo quest'ambizioso percorso.

Non è la prima volta che AMD parla dei piani di abilitare HSA su Linux, o del supporto HSA per diversi linguaggi come Java, C++ AMP, Python e OpenCL 2.0. L'azienda ha risposto molti sforzi nella realizzazione di strumenti per gli sviluppatori, quindi sta cercando (comprensibilmente) di generare interesse, tenendo accesi i riflettori su HSA e le sue potenzialità. D'altronde se software di un certo calibro inizieranno a sfruttare a dovere HSA, restituendo grandi benefici prestazionali, le APU di AMD diventeranno molto più desiderabili all'occhio del pubblico. Al contrario se HSA non prenderà piede tra gli sviluppatori il grande lavoro fatto dagli ingegneri dell'azienda andrà in fumo.

Fino a oggi il messaggio di fondo è sempre stato lo stesso. Java offre già un supporto limitato a HSA tramite Aparapi, una API per carichi di lavoro parallelizzati. L'azienda si aspetta che l'arrivo di Java 8 a metà 2014 con supporto per espressioni Lambda e accelerazione parallela grazie al linguaggio d'intermediazione HSAIL, culmini nel supporto nativo Java Virtual Machine (JVM) con Java 9 nel 2015.

OpenCL 2.0 dovrebbe essere la scelta principale per la maggior parte delle applicazioni sia su Windows che Linux, e AMD ha intenzione di offrire questa funzionalità a sviluppatori selezionati nel terzo trimestre di quest'anno, abilitando caratteristiche opzionali nel quarto trimestre che dovrebbero sfruttare ancora di più funzioni e ottimizzazioni specifiche HSA.

Al momento è comunque tutto un cosiddetto "work in progress", ovvero si lavora giorno dopo giorno. La notizia di oggi è il debutto del driver beta OpenCL 1.2 per Windows, destinato agli sviluppatori che desiderano fin da subito iniziare a sperimentare con HSA piuttosto che attendere la piena disponibilità di OpenCL 2.0 nel corso dell'anno. Il driver è lo stesso usato da AMD in diverse recenti presentazioni di Kaveri.

Con questo driver a disposizione, forse riusciremo a capire meglio qual è l'interesse degli sviluppatori verso HSA e le APU Kaveri.