gpujs / gpujs/gpu.js

Support for MacOS Metal Performance Shaders (MSP) based on py-metal-compute

Aperta
#835 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
JavaScript
Stelle
15.5k
Fork
663
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Dear GPU Community,

recently I've started to play around with brain.js and processing calculations on GPU with the goal to squeeze some performance out of my home server with Blackmagic Pro eGPU. Generally speaking, I was able to run a few tests successfully, but surprisingly all calculations have been processed on my internal graphics card, not on eGPU.

![Image 7-2-24 at 1 18 PM](https://github.com/gpujs/gpu.js/assets/2910779/956212f8-7d83-46d3-89c7-cd0d74718e55)

However, if running tests with `py-metal-compute` (`metalcompute` pip package), calculation is being processed on all 3 GPUs.

![Image 7-2-24 at 1 42 PM](https://github.com/gpujs/gpu.js/assets/2910779/31e0c8cc-d24e-466c-8f41-a0e4140f54be)

With that, I would like to try to contribute looking for a way to migrate the logic from `metalcompute` to gpu.js. From my first observations I would need to develop a Kernel that can be injected similar to `WebGLKernel` or `HeadlessGLKernel`. As a first step I'm trying to get familiar with the code in `src/backend/headless-gl/kernel.js`, but if there is some information that would give me a head start, I would highly appreciate!

Any guidance that would speedup the development, I would highly appreciate it!

Best,
Vitali

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia leggendo src/backend/headless-gl/kernel.js e confrontando la sua struttura Kernel con WebGLKernel e HeadlessGLKernel. Studia quindi il comportamento del package metalcompute e individua come la sua logica Metal potrebbe integrarsi in gpu.js. Il lavoro sarebbe considerato completato quando fosse disponibile un’integrazione definita e funzionante del backend o del kernel Metal in grado di utilizzare le GPU rilevanti, ma l’issue non specifica test o criteri di accettazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript
Ambito
computer-graphics
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
20/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.