Usare C++ direttamente sulle GPU per fare a meno delle CPU: l'idea di AMD

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 pubblicata il , alle 14:11 nel canale Schede Video
RadeonAMD
 

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 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 - info
matsnake8612 Dicembre 2024, 14:17 #1
La cpu insomma fa sempre di meno. Se continuiamo così tra un po si occuperà esclusivamente di eseguire il boot e poi consegnerà il sistema nelle mani del gpu...

A sto punto abbandoniamo completamente il paradigma del pc a cui siamo abituati e passiamo tutti ad un soc in stile apple .
Max Power12 Dicembre 2024, 14:29 #2
Originariamente inviato da: matsnake86
e passiamo tutti ad un soc in stile apple .


Anche no
LMCH12 Dicembre 2024, 15:05 #3
Originariamente inviato da: matsnake86
La cpu insomma fa sempre di meno. Se continuiamo così tra un po si occuperà esclusivamente di eseguire il boot e poi consegnerà il sistema nelle mani del gpu...

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.
demon7712 Dicembre 2024, 15:09 #4
Scusate, non sono programmatore quindi non entro nel merito..
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.
Riky197912 Dicembre 2024, 15:12 #5
Mi ricordo che non molto tempo fa era uscito l'articolo di un team di ricerca che voleva sviluppare un processore RiscV "universale" in grado di eseguire sia le istruzioni tipiche delle CPU che quelle delle GPU senza una specializzazione del chip come avviene oggi.
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%?
demon7712 Dicembre 2024, 15:43 #6
Originariamente inviato da: Riky1979
Mi ricordo che non molto tempo fa era uscito l'articolo di un team di ricerca che voleva sviluppare un processore RiscV "universale" in grado di eseguire sia le istruzioni tipiche delle CPU che quelle delle GPU senza una specializzazione del chip come avviene oggi.
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.
bancodeipugni12 Dicembre 2024, 16:08 #7
infatti: non esisteva già da tempo sta cosa fin dai tempi del calcolo distribuito ?
aqua8412 Dicembre 2024, 16:22 #8
Originariamente inviato da: demon77
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.


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
WOPR@Norad12 Dicembre 2024, 19:22 #9
Originariamente inviato da: matsnake86
La cpu insomma fa sempre di meno. Se continuiamo così tra un po si occuperà esclusivamente di eseguire il boot e poi consegnerà il sistema nelle mani del gpu...

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.
demon7712 Dicembre 2024, 22:15 #10
Originariamente inviato da: WOPR@Norad
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".

La discussione è consultabile anche qui, sul forum.
 
^