Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open
#835 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
20/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
javascript

Research direction

Start by reading src/backend/headless-gl/kernel.js and comparing its Kernel structure with WebGLKernel and HeadlessGLKernel. Then study the behavior of the metalcompute package and identify how its Metal logic could fit gpu.js. Done would mean a defined and working Metal backend or kernel integration that can use the relevant GPUs, but the issue does not specify tests or acceptance criteria.

Written by the indexing model from the issue text.

Description

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

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

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

Dominant language
JavaScript
Stars
15.5k
Forks
663
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from gpujs/gpu.js

All issues in gpujs/gpu.js

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.