All’evento del LLVM Developers’ Meeting del 2024, AMD ha partecipato con un’interessante dimostrazione, con cui uno dei suoi ingegneri ha illustrato come è possibile eseguire il codice C e C++ direttamente nella GPU, senza la necessità di adottare nessun adattamento di sorta, come altri linguaggi o “dialetti” di programmazione. Ciò consente naturalmente di aumentare molto le prestazioni di esecuzione, eliminando qualsiasi tipo di latenza derivata dalla necessità di eseguire altre operazioni, come appunto la traduzione.
AMD: una nuova dimostrazione rivela come eseguire il codice C/C++ direttamente nella GPU
L’ingegnere di AMD, Joseph Huber, ha parlato all’evento di come la GPU può eseguire il codice C e C++ direttamente, grazie il porting della libreria C LLVM, del runtime del compilatore e del runtime C++, permettendo la normale compilazione per indirizzare la GPU, senza la necessità di far uso di OpenMP, OpenACC e altri linguaggi particolari.
Questa tecnica particolare, che fa uso del porting dei runtime C/C++ LLVM, è denominata “cross-compiling” e può funzionare anche sulle GPU realizzate da Nvidia, seppur con limitazioni che sono imposte dal formato PTX proprietario del concorrente californiano, oltre che alcuni ostacoli che ancora vanno superati per quanto riguarda la gestione di alcune funzionalità del processore grafico stesso.
Tutti i dettagli della nuova dimostrazione di AMD sono visionabili nel video disponibile su YouTube, che postiamo qui, dove viene illustrato tutto con cura dall’ingegnere. È anche possibile visionare un PDF pubblico in merito, dove sono stati riportati tutti i passaggi.
Quella di AMD è sicuramente un’innovazione che può essere importante in alcuni ambiti, oltre che per l’IA, per aiutare ad eliminare ulteriormente le latenze, snellendo sempre più il calcolo e le operazioni necessarie.
Nel frattempo, l’azienda ha anche aggiornato le sue librerie ROCm alla versione 6.3, con diverse novità per ottimizzare ulteriormente gli strumenti disponibili, migliorando ulteriormente prestazioni e funzionalità offerte per quanto riguarda la codifica e l’elaborazione.