HSA per sviluppatori: calcolo eterogeneo per le masse
Pubblicato: 2022-03-11Cosa hanno in comune produttori di chip come AMD, ARM, Samsung, MediaTek, Qualcomm e Texas Instruments? Bene, a parte le ovvie somiglianze tra questi colossi produttori di chip, sono anche i fondatori della HSA Foundation. Che cos'è HSA e perché ha bisogno di una fondazione sostenuta da pesi massimi del settore?
In questo post cercherò di spiegare perché l'HSA potrebbe essere un grosso problema nel prossimo futuro, quindi inizierò con le basi: cos'è l'HSA e perché dovrebbe interessarti ?
HSA sta per Heterogeneous System Architecture, che suona un po' noioso, ma credetemi, potrebbe diventare davvero molto eccitante. HSA è essenzialmente un insieme di standard e specifiche progettati per consentire un'ulteriore integrazione di CPU e GPU sullo stesso bus. Questo non è un concetto del tutto nuovo; Le CPU desktop e i SoC mobili utilizzano da anni la grafica integrata e utilizzano un singolo bus, ma HSA lo porta al livello successivo.
Invece di utilizzare semplicemente lo stesso bus e memoria condivisa per CPU e GPU, HSA consente anche a queste due architetture molto diverse di lavorare in tandem e condividere attività . Potrebbe non sembrare un grosso problema, ma se guardi più da vicino ed esamini i potenziali effetti a lungo termine di questo approccio, inizia a sembrare molto "dolce" in senso tecnico.
Oh no! Ecco un altro stupido standard che gli sviluppatori devono implementare
Sì e no.
L'idea di condividere lo stesso bus non è nuova, e nemmeno l'idea di impiegare GPU altamente parallelizzate per determinate attività di calcolo (che non implicano il rendering di colpi alla testa). È già stato fatto e immagino che la maggior parte dei nostri lettori abbia già familiarità con gli standard GPGPU come CUDA e OpenCL.
Tuttavia, a differenza dell'approccio CUDA o OpenCL, HSA eliminerebbe efficacemente lo sviluppatore dall'equazione, almeno quando si tratta di assegnare carichi diversi a core di elaborazione diversi. L'hardware deciderebbe quando scaricare i calcoli dalla CPU alla GPU e viceversa. HSA non dovrebbe sostituire i linguaggi di programmazione GPGPU consolidati come OpenCL, poiché possono essere implementati anche su hardware HSA.
Questo è il punto centrale di HSA: dovrebbe rendere l'intero processo facile, persino senza interruzioni. Gli sviluppatori non dovranno necessariamente pensare a scaricare i calcoli sulla GPU. L'hardware lo farà automaticamente.
Per raggiungere questo obiettivo, HSA dovrà godere del supporto di più produttori di chip e fornitori di hardware. Mentre l'elenco dei sostenitori di HSA è impressionante, Intel è vistosamente assente da questo vero chi è chi dell'industria dei chip. Data la quota di mercato di Intel nei mercati dei processori desktop e server, questo è un grosso problema. Un altro nome che non troverai nell'elenco è Nvidia, che si concentra su CUDA ed è attualmente il leader del mercato del calcolo GPU.
Tuttavia, HSA non è progettato esclusivamente per sistemi e applicazioni ad alte prestazioni, su hardware che di solito sfoggia un adesivo Intel Inside . L'HSA può essere utilizzato anche in dispositivi mobili ad alta efficienza energetica, dove Intel ha una quota di mercato trascurabile.
Quindi, l'HSA dovrebbe semplificare la vita, ma è ancora rilevante? Prenderà piede? Questa non è una questione tecnologica, ma economica. Dipenderà dalla mano invisibile del mercato. Quindi, prima di procedere, iniziamo dando un'occhiata più da vicino a come stanno le cose in questo momento e come siamo arrivati qui.
Sviluppo HSA, problemi di dentizione e problemi di adozione
Come ho detto nell'introduzione, HSA non è esattamente un concetto nuovo. Inizialmente era stato concepito da Advanced Micro Devices (AMD), che aveva un interesse acquisito nel farlo decollare. Dieci anni fa, AMD ha acquistato gli specialisti della grafica ATI e da allora l'azienda ha cercato di sfruttare il suo accesso a una tecnologia GPU all'avanguardia per aumentare le vendite complessive.
A prima vista, l'idea era abbastanza semplice: AMD non solo avrebbe continuato a sviluppare e produrre GPU discrete all'avanguardia, ma avrebbe anche integrato la tecnologia GPU di ATI nei suoi processori. Il dipartimento marketing di AMD ha chiamato l'idea "Fusion" e HSA è stata chiamata Fusion System Architecture (FSA). Suona benissimo, vero? Ottenere un processore x86 decente con una buona grafica integrata sembrava una buona idea, e lo è stata.
Sfortunatamente, AMD ha riscontrato una serie di problemi lungo il percorso; Ne indicherò alcuni:
- Qualsiasi buona idea tecnologica è destinata a essere ripresa dalla concorrenza, in questo caso Intel.
- AMD ha perso il vantaggio tecnologico a favore di Intel e ha trovato sempre più difficile competere nel mercato delle CPU a causa del vantaggio tecnologico di Intel nella fonderia.
- L'esecuzione di AMD era problematica e molti dei nuovi processori erano in ritardo sul mercato. Altri sono stati completamente demoliti.
- Il tracollo economico del 2008 e la successiva rivoluzione mobile non hanno aiutato.
Questi, e una serie di altri fattori, hanno cospirato per smussare il vantaggio di AMD e impedire l'adozione da parte del mercato dei suoi prodotti e tecnologie. AMD ha iniziato a implementare i processori con la nuova generazione di grafica Radeon integrata a metà del 2011 e ha iniziato a chiamarli APU (Accelerated Processing Unit) invece di CPU.
Marketing a parte, la prima generazione di APU di AMD (nome in codice Llano) è stata un flop. I chip erano in ritardo e non riuscivano a tenere il passo con le offerte di Intel. Anche le funzionalità HSA serie non sono state incluse, ma AMD ha iniziato ad aggiungerle nella sua piattaforma del 2012 (Trinity, che essenzialmente era Llano fatto bene). Il passo successivo è arrivato nel 2014, con l'introduzione delle APU Kaveri, che supportavano la gestione della memoria eterogenea (la GPU IOMMU e la CPU MMU condividevano lo stesso spazio di indirizzi). Kaveri ha anche apportato una maggiore integrazione architettonica, consentendo una memoria coerente tra CPU e GPU (AMD la chiama hUMA, che sta per Heterogeneous Unified Memory Access). Il successivo aggiornamento di Carizzo ha aggiunto ancora più funzionalità HSA, consentendo al processore di cambiare il contesto delle attività di calcolo sulla GPU e fare qualche altro trucco.
L'imminente architettura della CPU Zen e le APU integrate su di essa promettono di offrire ancora di più, se e quando si presenterà sul mercato.
Allora, qual'è il problema?
AMD non è stato l'unico produttore di chip a realizzare il potenziale delle GPU on-die. Intel ha iniziato ad aggiungerli anche alle sue CPU Core, così come i produttori di chip ARM, quindi le GPU integrate sono attualmente utilizzate praticamente in tutti i SoC per smartphone, oltre alla stragrande maggioranza dei PC/Mac. Nel frattempo, la posizione di AMD nel mercato delle CPU è stata erosa. Il crollo della quota di mercato ha reso le piattaforme AMD meno attraenti per sviluppatori, aziende e persino consumatori. Semplicemente non ci sono molti PC basati su AMD sul mercato e Apple non utilizza affatto processori AMD (sebbene utilizzasse la grafica AMD, principalmente a causa della compatibilità OpenCL).
AMD non compete più con Intel nel mercato delle CPU di fascia alta, ma anche se lo facesse, non farebbe molta differenza sotto questo aspetto. Le persone non acquistano workstation da $ 2.000 o PC da gioco per utilizzare la grafica integrata. Usano una grafica discreta e costosa e non si preoccupano molto dell'efficienza energetica.
Che ne dici di alcuni HSA per smartphone e tablet?
Ma aspetta. E le piattaforme mobili? AMD non potrebbe semplicemente lanciare soluzioni simili per chip per smartphone e tablet? Beh, no, non proprio.
Vedete, alcuni anni dopo l'acquisizione di ATI, AMD si è trovata in una difficile situazione finanziaria, aggravata dalla crisi economica, quindi ha deciso di vendere la sua divisione di GPU mobili Imageon a Qualcomm. Qualcomm ha ribattezzato i prodotti Adreno (anagramma di Radeon) e ha continuato a diventare l'attore dominante nel mercato dei processori per smartphone, utilizzando GPU interne appena ridipinte.
Come alcuni di voi potrebbero notare, vendere un outfit grafico per smartphone proprio mentre la rivoluzione degli smartphone stava per iniziare, non sembra una brillante mossa commerciale, ma credo che il senno di poi sia sempre 20/20.
HSA era associato esclusivamente ad AMD e ai suoi processori x86, ma non è più così. In effetti, se tutti i membri della HSA Foundation iniziassero a spedire processori per smartphone ARM abilitati HSA, venderebbero più volte i processori x86 di AMD, sia in termini di entrate che di unità spedite. Quindi cosa succede se lo fanno? Cosa significherebbe per l'industria e gli sviluppatori?
Bene, per cominciare, i processori per smartphone si basano già su un'elaborazione eterogenea, più o meno. L'elaborazione eterogenea di solito si riferisce al concetto di utilizzare architetture diverse in un unico chip e, considerando tutti i componenti che si trovano nei SoC altamente integrati di oggi, questa potrebbe essere una definizione molto ampia. Di conseguenza, quasi tutti i SoC possono essere considerati una piattaforma di elaborazione eterogenea, a seconda dei propri standard. A volte, le persone si riferiscono persino a processori diversi basati sullo stesso set di istruzioni di una piattaforma eterogenea (ad esempio, chip mobili con core ARM Cortex-A57 e A53, entrambi basati sul set di istruzioni ARMv8 a 64 bit).
Molti osservatori concordano sul fatto che la maggior parte dei processori basati su ARM possono ora essere considerati piattaforme eterogenee, inclusi i chip Apple della serie A, i SoC Samsung Exynos e processori simili di altri fornitori, in particolare grandi player come Qualcomm e MediaTek.
Ma perché qualcuno dovrebbe aver bisogno di HSA sui processori per smartphone? Non è il punto di utilizzare le GPU per l'informatica generale per gestire carichi di lavoro professionali, non Angry Birds e Uber?
Sì, lo è, ma ciò non significa che un approccio quasi identico non possa essere utilizzato per aumentare l'efficienza, che è una priorità nella progettazione di processori mobili. Quindi, invece di eseguire innumerevoli attività parallele su una workstation di fascia alta, l'HSA potrebbe anche essere utilizzato per rendere i processori mobili più efficienti e versatili.
Poche persone danno un'occhiata da vicino a questi processori, di solito controllano la scheda tecnica quando acquistano un nuovo telefono e basta: guardano i numeri e le marche. Di solito non guardano al die SoC stesso, il che ci dice molto, ed ecco perché: le GPU sui processori per smartphone di fascia alta occupano più spazio di silicio rispetto alle CPU. Considerando che sono già lì, sarebbe bello metterli a frutto in applicazioni diverse dai giochi, no?
Un ipotetico processore per smartphone completamente conforme a HSA potrebbe consentire agli sviluppatori di sfruttare questo potenziale senza aggiungere molto ai costi di produzione complessivi, implementare più funzionalità e aumentare l'efficienza.
Ecco cosa potrebbe fare HSA per i processori per smartphone, almeno in teoria:
- Migliora l'efficienza trasferendo le attività adatte alla GPU.
- Aumenta le prestazioni scaricando la CPU in alcune situazioni.
- Utilizzare il bus di memoria in modo più efficace.
- Riduci potenzialmente i costi di produzione dei chip sfruttando più silicio contemporaneamente.
- Introduci nuove funzionalità che non potrebbero essere gestite dai core della CPU in modo efficiente.
- Semplificare lo sviluppo grazie alla standardizzazione.
Sembra carino, soprattutto se si considera che è improbabile che gli sviluppatori perdano molto tempo nell'implementazione. Questa è la teoria, ma dovremo aspettare per vederla in azione e potrebbe volerci un po'.
Come funziona HSA comunque?
Ho già delineato le basi nell'introduzione, e sono riluttante a entrare troppo nei dettagli per un paio di motivi: a nessuno piacciono le novelle pubblicate su un blog tecnologico e le implementazioni HSA possono differire.
Pertanto, cercherò di delineare il concetto in poche centinaia di parole.
Su un sistema standard, un'applicazione scaricherà i calcoli dalla GPU trasferendo i buffer alla GPU, il che comporterebbe una chiamata alla CPU prima dell'accodamento. La CPU pianificherebbe quindi il lavoro e lo passerebbe alla GPU, che lo ritrasmetterebbe alla CPU al termine. Quindi l'applicazione otterrebbe il buffer, che dovrebbe essere nuovamente mappato dalla CPU prima che sia pronto. Come puoi vedere, questo approccio comporta molti avanti e indietro.
Su un sistema HSA, l'applicazione metterebbe in coda il lavoro, la CPU HSA lo subentrerebbe, lo consegnerebbe alla GPU, lo riprenderebbe e lo riporterebbe all'applicazione. Fatto.
Ciò è reso possibile dalla condivisione della memoria di sistema direttamente tra CPU e GPU, anche se potrebbero essere coinvolte anche altre unità di calcolo (ad esempio i DSP). Per raggiungere questo livello di integrazione della memoria, HSA utilizza uno spazio di indirizzi virtuale per i dispositivi di calcolo. Ciò significa che i core della CPU e della GPU possono accedere alla memoria a parità di condizioni , purché condividano le tabelle delle pagine, consentendo a dispositivi diversi di scambiare dati tramite puntatori.
Questo è ovviamente ottimo per l'efficienza, perché non è più necessario allocare memoria alla GPU e alla CPU utilizzando la memoria virtuale per ciascuna. Grazie alla memoria virtuale unificata, entrambi possono accedere alla memoria di sistema in base alle proprie esigenze, garantendo un utilizzo superiore delle risorse e una maggiore flessibilità.
Immagina un sistema a basso consumo con 4 GB di RAM, di cui 512 MB allocati per la GPU integrata. Questo modello di solito non è flessibile e non è possibile modificare la quantità di memoria GPU al volo. Sei bloccato con 256 MB o 512 MB, e il gioco è fatto. Con HSA, puoi fare tutto quello che vuoi: se scarichi molte cose sulla GPU e hai bisogno di più RAM per la GPU, il sistema può allocarle. Quindi, nelle applicazioni legate alla grafica, con molte risorse ad alta risoluzione, il sistema potrebbe finire per allocare 1 GB o più di RAM alla GPU, senza problemi.

A parità di condizioni, i sistemi HSA e non HSA condivideranno la stessa larghezza di banda della memoria , avranno accesso alla stessa quantità di memoria , ma il sistema HSA potrebbe finire per utilizzarla in modo molto più efficiente, migliorando così le prestazioni e riducendo il consumo energetico. Si tratta di ottenere di più con meno.
A cosa servirebbe il calcolo eterogeneo?
La risposta semplice? L'elaborazione eterogenea, o HSA come una delle sue implementazioni, dovrebbe essere una buona scelta per tutte le attività di elaborazione più adatte alle GPU rispetto alle CPU. Ma cosa significa esattamente, in cosa sono comunque brave le GPU?
Le moderne GPU integrate non sono molto potenti rispetto alla grafica discreta (soprattutto schede grafiche di gioco di fascia alta e soluzioni workstation), ma sono molto più potenti dei loro predecessori.
Se non hai tenuto traccia, potresti presumere che queste GPU integrate siano uno scherzo, e per anni sono state proprio questo: grafica per scatole economiche per la casa e l'ufficio. Tuttavia, questo ha iniziato a cambiare all'inizio del decennio quando le GPU integrate sono passate dal chipset al pacchetto CPU e muoiono, diventando veramente integrate .
Sebbene siano ancora terribilmente sottodimensionate rispetto alle GPU di punta, anche le GPU integrate racchiudono molto potenziale. Come tutte le GPU, eccellono nei carichi di istruzioni singole, dati multipli (SIMD) e istruzioni singole, thread multipli (SIMT). Se hai bisogno di sgranocchiare molti numeri in carichi ripetitivi e parallelizzati, le GPU dovrebbero aiutarti. Le CPU, d'altra parte, sono ancora migliori con carichi di lavoro pesanti e ramificati.
Ecco perché le CPU hanno meno core, in genere tra due e otto, e i core sono ottimizzati per l'elaborazione seriale sequenziale. Le GPU tendono ad avere dozzine, centinaia e, nelle schede grafiche discrete di punta, migliaia di core più piccoli ed efficienti. I core della GPU sono progettati per gestire più attività contemporaneamente, ma queste singole attività sono molto più semplici di quelle gestite dalla CPU. Perché caricare la CPU con tali carichi, se la GPU è in grado di gestirli con efficienza e/o prestazioni superiori?
Ma se le GPU sono così dannatamente brave, perché non abbiamo iniziato a usarle come dispositivi informatici generali anni fa? Bene, l'industria ci ha provato, ma il progresso è stato lento e limitato a determinate nicchie. Il concetto era originariamente chiamato General Purpose Computing on Graphics Processing Units (GPGPU). In passato, il potenziale era limitato, ma il concetto GPGPU era valido e successivamente è stato adottato e standardizzato sotto forma di CUDA di Nvidia e OpenCL di Apple/Khronos Group.
CUDA e OpenCL hanno fatto un'enorme differenza poiché hanno consentito ai programmatori di utilizzare le GPU in un modo diverso e molto più efficace. Erano, tuttavia, specifici del fornitore. È possibile utilizzare CUDA su hardware Nvidia, mentre OpenCL è riservato all'hardware ATI (ed è stato adottato da Apple). L'API DirectCompute di Microsoft è stata rilasciata con DirectX 11 e ha consentito un approccio indipendente dal fornitore (ma era limitato a Windows).
Riassumiamo elencando alcune applicazioni per il GPU Computing:
Elaborazione tradizionale ad alte prestazioni (HPC) sotto forma di cluster HPC, supercomputer, cluster GPU per carichi di calcolo, elaborazione GRID, bilanciamento del carico.
Carichi che richiedono fisica , che possono, ma non devono, coinvolgere giochi o grafica in generale. Possono anche essere usati per gestire calcoli di fluidodinamica, fisica statistica e alcune equazioni e algoritmi esotici.
Geometria , quasi tutto ciò che riguarda la geometria, inclusi i calcoli della trasparenza, le ombre, il rilevamento delle collisioni e così via.
Elaborazione audio , utilizzando una GPU al posto dei DSP, elaborazione vocale, elaborazione del segnale analogico e altro ancora.
L'elaborazione digitale delle immagini è ciò per cui sono progettate le GPU (ovviamente), quindi possono essere utilizzate per accelerare la post-elaborazione e la decodifica di immagini e video. Se devi decodificare un flusso video e applicare un filtro, anche una GPU entry-level pulirà il pavimento con una CPU.
Informatica scientifica , compresa la ricerca sul clima, l'astrofisica, la meccanica quantistica, la modellazione molecolare e così via.
Altre attività ad alta intensità di calcolo , vale a dire crittografia/decrittografia. Sia che tu debba "estrarre" criptovalute, crittografare o decrittografare i tuoi dati riservati, decifrare password o rilevare virus, la GPU può aiutarti.
Questo non è un elenco completo di potenziali applicazioni di calcolo GPU, ma i lettori che non hanno familiarità con il concetto dovrebbero avere un'idea generale di ciò che rende diverso il calcolo GPU. Ho anche tralasciato le applicazioni ovvie, come i giochi e la grafica professionale.
Tuttavia, non esiste un elenco completo, perché il calcolo della GPU può essere utilizzato per tutti i tipi di cose, che vanno dalla finanza e dall'imaging medico, ai carichi di database e statistiche. Sei limitato dalla tua stessa immaginazione. La cosiddetta visione artificiale è un'altra applicazione emergente. Una GPU capace è una buona cosa da avere se devi "insegnare" a un drone o a un'auto senza conducente a evitare alberi, pedoni e altri veicoli.
Sentiti libero di inserire qui la tua battuta preferita di Lindsay Lohan.
In via di sviluppo per HSA: tempo per alcune cattive notizie
Questa potrebbe essere la mia opinione personale piuttosto che un fatto, ma io sono un sostenitore dell'HSA. Penso che il concetto abbia molto potenziale, a condizione che sia implementato correttamente e ottenga un supporto sufficiente tra i produttori di chip e gli sviluppatori. Tuttavia, i progressi sono stati dolorosamente lenti, o forse è solo una mia sensazione, con un pizzico di pio desiderio. Mi piace solo vedere la nuova tecnologia in azione e sono tutt'altro che un individuo paziente.
Il problema con HSA è che non è ancora lì . Ciò non significa che non decollerà, ma potrebbe volerci un po'. Dopotutto, non stiamo parlando solo di nuovi stack software; HSA richiede un nuovo hardware per fare la sua magia. Il problema è che gran parte di questo hardware è ancora sul tavolo da disegno, ma ci stiamo arrivando. Lentamente.
Ciò non significa che gli sviluppatori non stiano lavorando su progetti relativi all'HSA, ma non c'è molto interesse o progresso, se è per questo. Ecco alcune risorse che dovresti controllare se vuoi provare HSA:
HSA Foundation @ GitHub è, ovviamente, il luogo per le risorse relative all'HSA. La HSA Foundation pubblica e mantiene una serie di progetti su GitHub, inclusi debugger, compilatori, strumenti HSAIL vitali e molto altro. La maggior parte delle risorse sono progettate per l'hardware AMD.
Le risorse HSAIL fornite da AMD consentono di avere un'idea migliore delle specifiche HSAIL. HSAIL sta per HSA Intermediate Language ed è fondamentalmente lo strumento chiave per gli scrittori di compilatori back-end e gli scrittori di librerie che desiderano indirizzare i dispositivi HSA.
Il Manuale di riferimento del programmatore HSA (PDF) include le specifiche HSAIL complete, oltre a una spiegazione completa del linguaggio intermedio.
Le risorse della HSA Foundation sono limitate per il momento e il programma per sviluppatori della fondazione "arriverà presto", ma ci sono una serie di strumenti ufficiali per sviluppatori da verificare. Ancora più importante, ti daranno una buona idea dello stack di cui avrai bisogno per iniziare.
Il blog ufficiale di AMD presenta anche alcuni utili contenuti HSA.
Questo dovrebbe essere sufficiente per iniziare, a condizione che tu sia un tipo curioso. La vera domanda è se dovresti o meno preoccuparti per cominciare.
Il futuro di HSA e GPU Computing
Ogni volta che trattiamo una tecnologia emergente, ci troviamo di fronte allo stesso dilemma: dovremmo dire ai lettori di dedicarci tempo e risorse, o di tenersi alla larga, prendendo l'approccio attendista?
Ho già chiarito che sono un po' di parte perché mi piace il concetto generale di GPU Computing, ma la maggior parte degli sviluppatori può farne a meno, per ora. Anche se decolla, HSA avrà un appeal limitato e non riguarderà la maggior parte degli sviluppatori. Tuttavia, potrebbe essere importante lungo la strada. Sfortunatamente per AMD, è improbabile che rappresenti una svolta nel mercato dei processori x86, ma potrebbe rivelarsi più importante nei processori mobili basati su ARM. Potrebbe essere stata un'idea di AMD, ma aziende come Qualcomm e MediaTek sono in una posizione migliore per portare hardware abilitato HSA a centinaia di milioni di utenti.
Deve essere una perfetta simbiosi di software e hardware. Se i produttori di chip mobili impazzissero per HSA, sarebbe un grosso problema. Una nuova generazione di chip HSA offuscherebbe il confine tra CPU e core GPU. Condividerebbero lo stesso bus di memoria a parità di condizioni e penso che le aziende inizieranno a commercializzarli in modo diverso. Ad esempio, AMD sta già commercializzando le sue APU come "dispositivi di elaborazione" costituiti da diversi "core di elaborazione" (CPU e GPU).
I chip mobili potrebbero finire per utilizzare un approccio simile. Invece di commercializzare un chip con otto o dieci core CPU e una tale GPU, i produttori di chip potrebbero iniziare a parlare di cluster, moduli e unità. Quindi, un processore con quattro core CPU piccoli e quattro grandi sarebbe un processore "doppio cluster" o "doppio modulo", o un design "tri-cluster" o "quad-cluster", se prendono in considerazione i core GPU . Molte specifiche tecniche tendono a diventare prive di significato nel tempo, ad esempio il DPI sulla stampante dell'ufficio o il conteggio dei megapixel sulla fotocamera dello smartphone economico.
Non è solo marketing, però. Se le GPU diventano flessibili come i core della CPU e in grado di accedere alle risorse di sistema alla stessa stregua della CPU, perché dovremmo anche prenderci la briga di chiamarle con il loro vero nome? Due decenni fa, l'industria ha smesso di utilizzare coprocessori matematici (FPU) dedicati quando sono diventati un componente indispensabile di ogni CPU. Solo un paio di cicli di prodotti dopo, ci siamo dimenticati che sono mai esistiti.
Tieni presente che HSA non è l'unico modo per sfruttare le GPU per il calcolo.
Intel e Nvidia non sono a bordo e il loro approccio è diverso. Negli ultimi anni Intel ha aumentato silenziosamente gli investimenti in ricerca e sviluppo delle GPU e le sue ultime soluzioni grafiche integrate sono abbastanza buone. Man mano che le GPU integrate diventano più potenti e occupano più spazio di silicio, Intel dovrà trovare modi più ingegnosi per utilizzarle per l'informatica generale.
Nvidia, d'altra parte, si è ritirata dal mercato della grafica integrata anni fa (quando ha smesso di produrre chipset per PC), ma ha tentato la fortuna nel mercato dei processori ARM con i suoi processori della serie Tegra. Non hanno avuto un enorme successo, ma sono ancora utilizzati in alcuni hardware e Nvidia sta concentrando i suoi sforzi sui sistemi embedded, in particolare nel settore automobilistico. In questa impostazione, la GPU integrata ha il proprio peso poiché può essere utilizzata per il rilevamento delle collisioni, la navigazione interna, la mappatura 3D e così via. Ricordi Project Tango di Google? Parte dell'hardware era basato su chip Tegra, consentendo il rilevamento della profondità e alcuni altri trucchi accurati. Sul lato opposto dello spettro, la linea di prodotti Tesla di Nvidia copre il mercato delle GPU di fascia alta e garantisce il dominio di Nvidia in questa nicchia per gli anni a venire.
Linea di fondo? Sulla carta, il GPU Computing è un grande concetto con un sacco di potenziale, ma lo stato attuale della tecnologia lascia molto a desiderare. L'HSA dovrebbe fare molto per affrontare la maggior parte di questi problemi. Inoltre, non è supportato da tutti gli attori del settore, il che è destinato a rallentare ulteriormente l'adozione.
Potrebbero volerci alcuni anni, ma sono fiducioso che le GPU alla fine prenderanno il posto che le spetta nell'arena informatica generale, anche nei chip mobili. La tecnologia è quasi pronta e l'economia farà il resto. Come? Bene, ecco un semplice esempio. L'attuale generazione di processori Atom di Intel presenta da 12 a 16 GPU Execution Unit (EU), mentre i loro predecessori avevano solo quattro EU, basati su un'architettura precedente. Man mano che le GPU integrate diventano più grandi e potenti e con l'aumento della loro area die, i produttori di chip non avranno altra scelta che usarle per migliorare le prestazioni e l'efficienza complessive. Non farlo sarebbe un male per margini e azionisti.
Non preoccuparti, potrai comunque goderti il gioco occasionale su questa nuova generazione di GPU. Tuttavia, anche quando non stai giocando, la GPU farà molte cose in background, scaricando la CPU per aumentare le prestazioni e l'efficienza.
Penso che siamo tutti d'accordo che questo sarebbe un grosso problema, specialmente su dispositivi mobili economici.