Nom de domaine

Hai mai sognato di eseguire i tuoi algoritmi CUDA direttamente nel tuo browser o di testare i tuoi script di calcolo utilizzando la GPU del tuo PC senza dover lottare con un'installazione complessa? Quindi tieniti forte i pantaloni Freegun, perché HipScript trasformerà il tuo Chrome in una vera e propria stazione di calcolo ad alte prestazioni!

Perché fino ad ora, per sfruttare la potenza delle schede grafiche NVIDIA con CUDA o AMD con HIP, dovevi installare un sacco di SDK, driver e altre chicche che facevano venire i capelli grigi agli amministratori di sistema e anche al sottoscritto. Ma grazie a HipScriptquest'era è finita, finita, chiusa, ciao ciao!

In parole povere, CUDA è l'API sviluppata da NVIDIA per il calcolo GPGPU (calcolo generale su GPU) e in un codice CUDA troviamo una base C++ comune alla CPU e alla GPU, che permette di condividere facilmente le stesse strutture e le stesse funzioni. I kernel sono progettati per essere lanciati da migliaia (o addirittura milioni) di thread, organizzati in “blocchi” e “griglie”. AMD ha risposto rapidamente, creando ANCA : un concorrente quasi gemello di CUDA, che ne utilizza il vocabolario e la sintassi per trarre vantaggio dall'ecosistema già esistente, anche se personalmente lo trovo ancora molto peggio di CUDA.

Grazie a HipScripttutto (CUDA o HIP) ora può essere eseguito direttamente nel browser! Il progetto sfrutta entrambi WebAssembly E WebGPU per eliminare la noiosa installazione di driver o SDK. Se il tuo browser supporta WebGPU (ad esempio Chrome, con alcuni flag attivati), sei quindi attrezzato per testare ed eseguire i tuoi codici con un semplice clic.

Per gli armeggiatori che sono riusciti a leggere questo articolo finora, ecco alcune possibili idee per l'uso:

  • Mining leggero di criptovalute : Per testare i tuoi algoritmi di mining direttamente nel browser, eh… E non arricchirti grazie alle spalle dei visitatori del tuo sito.
  • Rendering 3D in tempo reale : Per creare visualizzazioni impressionanti per i tuoi progetti
  • Apprendimento automatico : Per sperimentare con le reti neurali senza installare PyTorch (perché è particolarmente fastidioso da installare).
  • Steganografia e crittografia : per nascondere i dati nelle immagini con algoritmi GPU ottimizzati o eseguire una crittografia avanzata.
  • Cracking dell'hashish : O al contrario per la robustezza delle vostre password (legalmente ovviamente!)
  • Compressione video : per codificare i tuoi video con algoritmi personalizzati

La magia di HipScript avviene grazie a una catena di compilazione intelligente. Innanzitutto, il tuo codice CUDA/HIP viene convertito in OpenCL tramite il compilatore chipStar. Quindi questo codice OpenCL viene trasformato in SPIR-V/Vulkan con cspv. Poi tinta converte lo shader Vulkan in uno shader WebGPU (WGSL) e, infine, tutto è incapsulato in WebAssembly per essere eseguito nel browser. Non è bellissimo comunque?

Ecco un piccolo esempio di kernel CUDA che viene eseguito direttamente nel browser:

cuda __global__ void addVectors(float* a, float* b, float* c, int n) { int i = blockIdx.x * blockDim.x + threadIdx.x; if (i < n) { c[i] = a[i] + b[i]; } }

Adesso vai al dimostrazione in linea per testare questo codice e altri esempi più avanzati! Inoltre, il supporto per le funzionalità CUDA/HIP è in continua evoluzione. Per il momento HipScript gestisce già la sintassi di base per il lancio dei kernel, della memoria condivisa (statica e dinamica), __syncthreadso anche printf per il debug (sebbene esistano alcune limitazioni sui puntatori o sui tipi di numero, come la virgola mobile a 64 bit).

E HipScript non è ancora perfetto poiché al momento è supportato solo un sottoinsieme di funzionalità CUDA/HIP. Le prestazioni non sono ancora al livello nativo. E hai bisogno di un browser recente con WebGPU abilitato.

Nonostante tutto, c'è da divertirsi! Dal punto di vista dell'ottimizzazione, il team ha mostrato ingegnosità nel ridurre le dimensioni dello strumento e gestire la compilazione LLVM in WebAssembly: compressione tramite Brotli per ridurre i download, l'integrazione con Wasmer e a Cloudflare R2 per distribuire ed eseguire il binario in modo efficiente, anche se rimangono alcuni bug da risolvere. Ma non importa, il risultato è già sorprendente: compilare e lanciare il codice CUDA/HIP in una semplice scheda di Chrome è un vero tour de force!

Il codice sorgente è disponibile su GitHub per coloro che desiderano armeggiare o contribuire al progetto. E chissà, forse sarai il primo a creare un'applicazione web rivoluzionaria che sfrutta la potenza pura della GPU direttamente nel browser?

Per maggiori dettagli, visita il blog luci0123nonché sulArticolo Foronix.


Source link

Categorized in: