Usare C++ direttamente sulle GPU per fare a meno delle CPU: l'idea di AMD
Joseph Huber di AMD ha illustrato durante una presentazione l'impegno dell'azienda verso l'esecuzione di codice C/C++ direttamente sulle GPU, senza doverlo adattare a nessun linguaggio specifico dei produttori di hardware.
di Niccolò Passera pubblicata il 12 Dicembre 2024, alle 14:11 nel canale Schede VideoRadeonAMD
Joseph Huber, ingegnere di AMD, agli "LLVM Developers' Meeting" di quest'anno ha presentato un'interessante svolta, ovvero la possibilità di eseguire toolchain C/C++ standard direttamente sulla GPU. Il normale codice C/C++ potrà essere compilato tramite Clang senza doverlo adattare a linguaggi specifici del fornitore come CUDA, OpenMP e OpenCL.
Quanto proposta da AMD potrebbe funzionare anche per le GPU NVIDIA, con alcune limitazioni imposte dal formato intermedio PTX di NVIDIA. Tramite questo nuovo approccio è stato possibile, usando ROCm e la libreria C LLVM, convertire interamente DOOM in maniera tale che funzionasse sia per il rendering che per la logica di gioco sulla GPU.
Huber spiega così nel suo repository GitHub il porting di DOOM: "Il compilatore Clang può puntare direttamente alle GPU. Emettiamo un singolo kernel che chiama la funzione 'main'. Le funzioni che richiedono il sistema operativo sono gestite attraverso l'interfaccia RPC. Per ulteriori informazioni, guardate il mio intervento su LLVM".
"Questa implementazione definisce l'utility amdgpu-loader, che gestisce l'avvio del kernel principale, l'impostazione dell'interfaccia delle finestre SDL2 e fornisce le funzioni per ottenere le chiavi di input e scrivere il framebuffer di output. Ok, non è interamente sulla GPU, ma tutta la logica e il rendering vengono eseguiti sulla GPU".
L'obiettivo finale sarebbe ottimizzare e gestire alcune funzionalità sulle GPU andando così a diminuire il carico di lavoro sulla CPU. Un altro potenziale vantaggio sarebbe quello di non dover usare più un linguaggio intermedio come CUDA o simili.
Purtroppo, al momento, tutto ciò ha un costo in termini di prestazioni, come ammesso dallo stesso Huber: la compilazione di tali toolchain comporta l'utilizzo di molte risorse, rallentando di molto l'esecuzione dei processi.
16 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoA sto punto abbandoniamo completamente il paradigma del pc a cui siamo abituati e passiamo tutti ad un soc in stile apple .
Anche no
Il codice sorgente C++ ricompilato per GPU di quelle attualmente sul mercato, viene eseguito in modo relativamente efficiente solo se si tratta di un sorgente che si presta ad essere vettorizzato in modo massiccio, in tutti gli altri casi viene eseguito in modo più effciente su una CPU.
ma da quello che so io non è che è così facile ed immediato tutto questo, le CPU sono fatte in un modo ed hanno un certo set di istruzioni.. le GPU sono fatte in tutt'altro modo e soprattutto hanno un set di struzioni ben diverso e limitato rispetto ad una CPU.
Quindi non è che puoi prednere una GPU e fargli fare roba da CPU come fosse acqua fresca perchè sarebbe come decidere di andare a fare una gita domenicale usando una mietitrebbia al posto della Golf.
..puoi tecnicamente farlo.. ma non vuol dire che sia una buona idea.
Penso che questo sarebbe più innovativo ed importante che quanto presentato da AMD ed in entrambe i casi non è scontato che siano le soluzioni più efficienti.
Con GPU già energivore allo stato attuale se spostiamo ancora lavoro dalla CPU alla GPU non rischiamo di sovraccaricarla di lavoro e quindi mantenerla sempre in uso 100%?
Penso che questo sarebbe più innovativo ed importante che quanto presentato da AMD ed in entrambe i casi non è scontato che siano le soluzioni più efficienti.
Con GPU già energivore allo stato attuale se spostiamo ancora lavoro dalla CPU alla GPU non rischiamo di sovraccaricarla di lavoro e quindi mantenerla sempre in uso 100%?
Si, ricordo la news, non è di molto tempo fa.
Io concedo il beneficio del dubbio e attendo una prova concreta visto che si parla di una pura idea e nulla di neanche vicino a qualcosa di concreto.. TUTTAVIA già ho messo le mani avanti bollando la cosa come fuffa.. va bene tutto ma non è che gli altri sono tutti scemi eh.
Si fanno il culo per avere CPU e GPU specializzate per ottenere il top in specifici settori con la massima efficienza possibile.. e ti pare che mo arriva il genio della lampada col chip tuttofare che sbaraglia tutti? Anche no direi.
Io concedo il beneficio del dubbio e attendo una prova concreta visto che si parla di una pura idea e nulla di neanche vicino a qualcosa di concreto.. TUTTAVIA già ho messo le mani avanti bollando la cosa come fuffa.. va bene tutto ma non è che gli altri sono tutti scemi eh.
Si fanno il culo per avere CPU e GPU specializzate per ottenere il top in specifici settori con la massima efficienza possibile.. e ti pare che mo arriva il genio della lampada col chip tuttofare che sbaraglia tutti? Anche no direi.
Esatto
Ma poi basta vedere Intel, non è proprio l ultima arrivata, eppure con le GPU fa molta fatica.
Evidentemente a parole è bello, ma poi nella pratica realizzare una CPU-GPU non è proprio roba da tutti
A sto punto abbandoniamo completamente il paradigma del pc a cui siamo abituati e passiamo tutti ad un soc in stile apple .
Facendo una veloce analisi di mercato credo che i computer senza GPU siano la stragrande maggioranza.
beh no.
Con GPU integrata casomai..
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".