Intel avanza oneAPI come il ‘prossimo clic importante

Intel promuove oneAPI come il prossimo importante passo avanti

L’ascesa dell’intelligenza artificiale “generativa” riguarda principalmente la scalabilità, l’idea di aggiungere più risorse a un programma informatico per ottenere risultati migliori. Come ha affermato Ilya Sutskever, co-fondatore di OpenAI e chief scientist, “Avevo una forte convinzione che più grande fosse meglio” quando ha fondato l’azienda che avrebbe creato ChatGPT.

Questa idea di un calcolo sempre più potente ha portato a una corsa per sviluppare i chip più potenti per l’IA, inclusi non solo le nuove GPU di Nvidia, ma anche Intel’s Habana Labs, che ha mostrato risultati impressionanti nei test di benchmark; e Advanced Micro Devices, così come le start-up come Cerebras Systems.

Inoltre: L’IA generativa può risolvere il più grande problema irrisolto delle scienze informatiche?

Questa corsa allo sviluppo dei chip ha creato un problema molto pratico: come si suppone che i programmatori sviluppino per un universo in espansione di tipi di chip con capacità e ambienti di programmazione unici?

“Abbiamo le GPU, abbiamo le TPU, abbiamo gli FPGA – tutte queste cose colpiscono punti di design diversi e meravigliosi sul mercato, ma se pensi all’esperienza del programmatore, è come, Oh, come si programma?” dice Joe Curley, vice presidente e direttore generale dei prodotti software ed ecosistema presso Intel in un’intervista con ENBLE.

I chip dipendono sempre dagli strumenti di sviluppo disponibili per utilizzare quei chip; non importa quanto sia fantastico un chip, è solo un ammasso di silicio se non c’è nulla con cui scrivere per esso.

La risposta di Intel è oneAPI, una specifica di programmazione open-source, il cui codice sorgente è pubblicato su GitHub e che ha lo scopo di consentire ai programmatori di ottenere un’elaborazione parallela di numerosi tipi di chip senza conoscere tutti i dettagli di ogni chip.

Inoltre: Estendere ChatGPT: possono i plugin di chatbot IA cambiare davvero le regole del gioco?

La scorsa settimana è stata una grande settimana per oneAPI, poiché è stato annunciato che la specifica sta venendo riformulata come Unified Acceleration Foundation, o UXL, che è ospitata dalla Joint Development Foundation della Linux Foundation. L’UXL ha come membri fondatori “steering members” altri giganti del mondo dei chip: ARM Holdings, Qualcomm, Fujitsu e Samsung, così come Google.

Il responsabile del Comitato direttivo per l’UXL, Rod Burns, ha definito la presentazione dell’UXL la scorsa settimana come un “momento cruciale per l’elaborazione eterogenea”.

Vice presidente di Intel, Joe Curley

“Tutto ciò che è oneAPI è un modello di programmazione software che cerca di creare un livello di astrazione comune che consente di programmare diversi marchi di acceleratori attraverso linguaggi comuni e interfacce di librerie comuni”, ha detto Curley.

Intel ha distribuito la propria implementazione della specifica open-source a partire da dicembre 2020. I componenti di oneAPI includono un linguaggio di parallelizzazione multi-piattaforma chiamato DPC++, che è un’adattamento di un linguaggio di programmazione open-source chiamato SYCL, basato sul linguaggio di programmazione C++ e gestito da Khronos Group.

Inoltre: Come funziona effettivamente ChatGPT?

Nel giugno dello scorso anno, Intel ha acquisito la startup CodePlay di Edimburgo, in Scozia, fornitore di compilatori paralleli. Quell’accordo ha portato a Intel competenze nella compilazione cross-device per SYCL.

oneAPI ha anche una selezione di librerie per diverse funzioni, come ad esempio oneDNN, per l’accelerazione delle primitive di moltiplicazione di matrici.

Maggiori dettagli sulla specifica di oneAPI possono essere consultati sulla pagina delle specifiche della tecnologia.

La tecnologia del compilatore e delle librerie offre diversi approcci alla programmazione dell’IA. Uno consiste nel partire dal punto di vista di un data scientist e lavorare verso il basso dai framework di IA popolari come PyTorch e TensorFlow, utilizzando librerie per parallelizzare quel codice.

Inoltre: Nvidia domina i benchmark dell’IA, ma Intel porta una concorrenza significativa

L’obiettivo di oneAPI, ha detto Curley, è “indirizzare” una parte del continuum della programmazione parallela che non è mai stata standardizzata.

Molte volte nel calcolo parallelo, ha detto Curley, “si inizia con linguaggi completamente astratti, come Python, passando attraverso un’infrastruttura di librerie che consente di accedere all’accelerazione”, e tutto viene fatto sotto il cofano per il data scientist, ha detto Curley. All’estremità opposta dello spettro, il programmatore in C++ o Fortran fornisce suggerimenti espliciti a un compilatore per parallelizzare il codice per una GPU.”

“Dove entra in gioco oneAPI è, in certo senso, il passo successivo, ovvero, so che sto scrivendo per un acceleratore, so che userò un acceleratore, quindi voglio puntare su quel dispositivo e scrivere un codice ottimale, e mi interessa davvero le prestazioni”, ha dichiarato Curley.

“È proprio qui che si inserisce qualcosa come oneAPI, e la cosa complicata è che, in quella parte del continuum, non è mai stato fatto uno sforzo di standardizzazione di successo”, ha detto. C’è CUDA di Nvidia, che domina la creazione di framework per l’IA e che non è aperto.

Inoltre: L’IA può programmare? Solo a piccoli passi

“CUDA è un linguaggio di proprietà di un’azienda, e hanno i loro interessi, e sono sicuro che lo facciano bene, ma il loro interesse non è quello di costruire una comunità diversificata”, ha osservato Curley.

“OpenCL ci ha provato, ha avuto alcuni successi, ma molti sviluppatori hanno trovato OpenCL poco pratico: molti file di intestazione, non era particolarmente produttivo.”

L’approccio di OpenCL, mantenuto anche dal Khronos Group, era diviso, ha osservato Curley. “Avevi una pagina host e una pagina acceleratore, e dovevi pensare in modo diverso” ai due dispositivi.

“Quello che fa Sickle è creare un linguaggio a pagina singola molto più intuitivo che dice, hey, sto scrivendo del codice, voglio che tu esegua questo codice C++ su quel dispositivo in questo modo”, ha spiegato Curley, “invece di dire, avrò un codice host e un codice dispositivo e gestirli entrambi, e poi collegarli in fondo”.

Inoltre: Come utilizzare ChatGPT per scrivere codice

“Quindi quello che fa è fornire una risposta aperta e produttiva a quella parte del continuum, prima di arrivare a chi scrive in assembly e intrinseci, ad esempio”, ha detto Curley.

Curley ha descritto SYCL come proveniente da “un’inizio più moderno” rispetto agli sforzi precedenti di calcolo parallelo, “avendo imparato molto da ciò che le persone hanno imparato programmando acceleratori per i precedenti 13 anni”.

Gli obiettivi di oneAPI sono coerenti con l’obiettivo di Intel, dichiarato l’anno scorso da Wei Li, vicepresidente e direttore generale di AI e analisi, di utilizzare “software come ponte per arrivare ovunque con l’IA”, superando gli ostacoli tecnici.

L’acquisizione di CodePlay ha portato una tecnologia che semplifica la compilazione multi-piattaforma. “Sulla nostra pila di compilazione, hanno fornito un plugin che si integra direttamente nella nostra catena di strumenti per consentire di generare codice per una GPU AMD o Nvidia”, ha detto Curley.

Inoltre: Un nuovo ruolo emerge per i leader del software: supervisionare l’IA generativa

“Quindi, se stai iniziando da zero oggi, abbiamo un ambiente in cui non devi scrivere per una persona e poi spostarti, puoi scrivere nel linguaggio SYCL e poi portarlo su qualsiasi dispositivo tu preferisca.”

Questo aspetto di semplicità non riguarda solo il sollievo della programmazione, ha detto Curley; riguarda anche la portabilità del codice, che ha il suo fascino.

“Questo è davvero importante per una classe di clienti nei sistemi industriali, persone che lo stanno inserendo in aerei o in qualcosa che potrebbe durare 20 o 30 anni, dove non vuoi essere legato a un linguaggio o a una singola azienda solo per motivi pratici di manutenzione”, ha osservato Curley.

Come si comporterà oneAPI rispetto al vantaggio di oltre un decennio che CUDA ha avuto nel mercato e all’enorme base installata di GPU Nvidia?

Inoltre: L’IA è brava a programmare, ma ci sono dei grandi caveat

“Se hai la scelta di basarti su una catena di strumenti aperta o su una catena di strumenti chiusa, in generale, la scelta aperta vince”, è un modo per guardarlo, ha detto Curley.

Allo stesso tempo, queste cose richiedono tempo.

“È nuovo”, ha detto di oneAPI, “e siamo davvero all’inizio del nostro viaggio”. Nel caso di “quel altro linguaggio”, come si riferisce a CUDA, “per i primi 8 o 9 anni, è stato molto un linguaggio di nicchia e, anche oggi, è ancora solo per professionisti in uno spazio specifico”.

“L’idea qui è che, se possiamo creare qualcosa di un po’ più diffuso, un po’ più aperto, un po’ più simile a C++, allora, onestamente, creeremo una grande alternativa”.