Concentrarsi sullo sviluppatore

In questo articolo abbiamo ripercorso la storia del progetto Fusion di AMD, intervistando anche alcuni dirigenti dell'azienda. Com'è nato il progetto? Quali sono stati i problemi? Cosa vuol dire APU e quali benefici avremo? Ce lo spiega AMD.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Concentrarsi sullo sviluppatore

"Ogni programmatore ha il proprio linguaggio favorito", ha dichiarato Phil Rogers. "Possono arrivare a essere quasi religiosi su questo. Non si può dire a un programmatore che deve cambiare il suo modo di lavorare per ottenere risultati migliori, e HSA permette di sfruttare il calcolo eterogeneo per tutti i linguaggi di alto livello".

La compatibilità con C e C++ potrebbe essere sufficiente per qualcuno, ma AMD voleva assicurarsi che la copertura fosse totale, e per questo ha fatto sì che HSA funzionasse con C#, Java e persino i linguaggi funzionali. AMD però non poteva fare tutto da sola, e quindi ha reso HSA uno standard aperto gestito dalla fondazione omonima, che conta tra i propri membri fondatori anche ARM, MediaTek e Texas Instruments. 

L'obiettivo della fondazione presentata nel giugno del 2012 è quello di promuovere piattaforme e software compatibili con HSA a ogni livello. Ciò include la creazione di SDK e librerie, la formazione degli sviluppatori e la gestione di risorse per questi ultimi, spesso gratuite. Dal punto di vista di uno sviluppatore l'idea centrale è che i programmatori possono sfruttare facilmente il calcolo eterogeneo per le loro applicazioni, senza dover scrivere il codice con metodi prefissati.

Manju Hedge - clicca per ingrandire

"I programmatori non programmano direttamente in linguaggio macchina" spiega Manju Hedge di AMD. "Hanno bisogno di compilatori, debugger e profiler adeguati, strumenti per l'ottimizzazione, librerie. Sono queste le sfide che ci attendono, ed è per questo che abbiamo creato la fondazione, per portare avanti lo standard. Molti degli strumenti che creiamo saranno open source, così i nostri partner potranno arrivare sul mercato più velocemente e con costi minori. Quando il mondo del software vedrà la bontà di questa iniziativa, ne preserverà il valore. È una delle prime volte in cui le aziende che fanno hardware modificano i chip per rendere più facile la programmazione, mentre in passato molti facevano modifiche per ottenere migliori prestazioni o nuove capacità. Noi abbiamo fatto dei cambiamenti solo per facilitare la vita dei programmatori, perché è ciò che serve per rendere le cose pervasive".

È importante tenere a mente che OpenCL e HSA sono due cose diverse, ed è probabile che la prima si evolverà per accogliere meglio la seconda, nel tempo. Anche senza HSA, OpenCL offre un modo di programmare molto diverso rispetto anche solo a due anni fa. Per esempio, OpenCL 1.2 riduce sensibilmente la quantità di codice per l'inizializzazione e altri elementi che generano overhead, che prima erano necessari. Con HSA questa tendenza verso la semplicità e le prestazioni continuerà, perché i programmatori non hanno più bisogno di gestire due diversi spazi di memoria".

Clicca per ingrandire

"Diciamo che un programmatore usa Visual Studio e scrive applicazioni C++ in Windows" spiega Phil Rogers, "ci sono migliaia di programmatori che lo fanno. Per loro è possibile usare questa nuova tecnologia in Visual Studio con la funzione che Microsoft ha chiamato C++ AMP, un acronimo che significa Accelerated Massive Parallelism. Con C++ AMP basta aggiungere due keyword al linguaggio - restrict e array view - per rendere il programma pronto a gestire il carico tramite la GPU. È una piccola modifica al programma dai numerosi benefici, quando si hanno molte operazioni parallele in una data applicazione. È una transizione molto più semplice di quanto ci si potrebbe aspettare".