notizia

La startup rafforza NVIDIA: simula CUDA su scheda AMD, compila ed esegue direttamente il programma originale

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • Crecy proviene dal Tempio Aofei
    Qubit |. Account pubblico QbitAI

Senza alcuna modifica o conversione, la scheda grafica AMD può eseguire il programma CUDA originale!

Una start-up britannica ha lanciato uno strumento di compilazione di programmi CUDA per AMD, gratuito per uso commerciale.

Una volta rilasciato, lo strumento ha suscitato un'ampia e accesa discussione tra i netizen eRaggiunto il primo posto nella hot list di HackerNews



Lo strumento si chiama SCALE e gli sviluppatori lo posizionano come un toolkit di programmazione GPGPU (GPU per uso generale).



Attualmente, 9 programmi, incluso il framework di grandi dimensioni llama-cpp, hanno superato il test e funzionano normalmente.

A differenza di altre implementazioni, SCALESimula direttamente l'installazione del toolkit CUDA, la compilazione può essere completata dal sorgente senza conversione in altre lingue.

Pertanto, SCALE può anche fornire supporto per linguaggi intermedi specifici di NVIDIA come PTX in linea.

Non è necessario convertire, lascia che AMD esegua CUDA

Secondo l'introduzione del sito web ufficiale, SCALE ha principalmente un compilatore nvcc compatibile con tre componenti, l'implementazione AMD del runtime CUDA e dell'API dei driver e la libreria ROCm.

Il compilatore può compilare direttamente programmi scritti in linguaggi specifici di CUDA tra cui nvcc, PTX in linea, ecc. in codici binari che possono essere eseguiti su GPU AMD.

La libreria ROCm viene utilizzata per fornire l'API "CUDA-X". SCALE utilizza questo metodo quando ha a che fare con librerie come cuBLAS e cuSOLVER.



L'innovazione chiave di SCALE è questaAccettare il programma CUDA così com'è, senza doverli trasferire in un'altra lingua,Compatibile con nvcc e clange altri metodi di compilazione, mentre gli strumenti e gli script di compilazione esistenti (come cmake) possono funzionare normalmente.

Secondo la dichiarazione ufficiale, SCALE è pienamente compatibile con CUDA, consentendoGli sviluppatori non hanno bisogno di scrivere codici separati per diverse piattaforme GPU

Questo è molto diverso dall'HIP lanciato da AMD, perché HIP riscrive il codice CUDA in un certo modo e potrebbe non essere in grado di comprendere correttamente macro complesse, e non supporta linguaggi proprietari come inline PTX.

Anche l'autore di SCALE ritiene che l'HIP non possa risolvere il problema di compatibilità CUDA.

Inoltre, il linguaggio di SCALE è un superset di CUDA e ne fornisce alcuniEstensioni linguistiche opzionali, che può rendere più semplice ed efficiente la scrittura del codice GPU per gli sviluppatori che desiderano eliminare nvcc.

L'autore ha espresso la speranza che in futuro gli sviluppatori possano scrivere il codice una volta ed eseguirlo su diverse piattaforme hardware, e sta lavorando per colmare il divario di compatibilità tra il popolare linguaggio di programmazione CUDA e altri fornitori di hardware.

Attualmente, il supporto di SCALE per varie serie di GPU AMD è il seguente:

  • Già supportato: gfx1030 (serie RX6000) e gfx1100 (serie RX7000)
  • "sembrano funzionare": gfx1010 (serie RX5000) e gfx1101
  • Adattamento: gfx900 (serie RX Vega)

Inoltre, l'autore ha testato alcuni progetti open source CUDA e ha eseguito con successo 9 applicazioni CUDA utilizzando SCALE.



Tuttavia, SCALE è un progetto completamente nuovo, quindi l'autore ha anche preparato una serie di tutorial dall'installazione alla compilazione, fornendo diversi tipi di programmi di esempio.

I passaggi chiave del tutorial sono accompagnati da codici pertinenti e includono anche come determinare il modello della propria GPU, che si può dire molto dettagliato.



Se riscontri problemi durante l'utilizzo, l'autore introduce anche metodi comuni di risoluzione dei problemi e apre anche un forum Discord per comunicare direttamente con il team di sviluppo.



Si chiama la startup che ha creato SCALECalcolo spettrale, fondata nel Regno Unito nel 2018, afferma di avere una conoscenza approfondita dell'architettura di CPU e GPU e il suo obiettivo è aiutare gli sviluppatori a utilizzare in modo efficiente le risorse di elaborazione.



Netizen: sfidare il fossato di Nvidia?

Alcuni utenti della rete credono che se SCALE può davvero avere l'effetto (come pubblicizzato), metterà in discussione il fossato di NVIDIA e consentirà ad AMD di competere direttamente con essa.



Tuttavia è troppo presto per trarre una conclusione. Dopotutto, i funzionari di SCALE ammettono che ci sono ancora alcuni difetti rispetto al CUDA originale.

E gli sviluppatori hanno anche chiarito che alcune API e funzioni CUDA non sono supportate, ma non hanno fornito un elenco specifico.



Per quanto riguarda ulteriori carenze della "soluzione AMD", un netizen che ha affermato di aver comunicato con il team SCALE ha affermato che l'attuale SCALE non può gestire TensorCore, il che significa che il framework di accelerazione FlashAttention non può essere eseguito su AMD.

Inoltre, poiché la scheda N ha una potente unità di moltiplicazione della matrice, anche se può essere compilata ed eseguita, le prestazioni della scheda AMD potrebbero non essere buone come quelle della scheda N.



Alcuni netizen ritengono che il motivo per cui Nvidia è dominante è che AMD non è disposta a investire per far sì che la sua GPU abbia prestazioni di apprendimento automatico più elevate (non solo il vantaggio di CUDA).



Anche se funzionano in modo efficiente, c'è anche la questione se le schede AMD siano davvero convenienti e accessibili.



Un'altra ondata di netizen ritiene che il problema più grande non sia se possa funzionare tecnicamente, ma le questioni legali dietro di esso.

Anche questo problema ha innescato un’ampia discussione, ma non si è ancora giunti ad una conclusione.

Alcune persone pensano che SCALE sia legalmente discutibile quanto ZLUDA (un altro modo per eseguire programmi CUDA su AMD) e potrebbe portare ad azioni legali da parte di NVIDIA.



Nello specifico, secondo i termini EULA di NVIDIA, CUDA SDK consente solo lo sviluppo di applicazioni eseguite su schede N, il che potrebbe vietare implementazioni compatibili come SCALE.



Ma subito alcuni utenti della rete hanno affermato che SCALE non utilizzava l'"SDK" di NVIDIA, quindi come parlare dell'accordo di utilizzo dell'SDK?



Insomma, che si tratti di una carenza tecnica o di una questione legale, la discussione su questo nuovo strumento è ancora in corso.

Quanto all'utilità o meno, spetta agli sviluppatori votare con i piedi.

Link di riferimento:
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560