-
Notifications
You must be signed in to change notification settings - Fork 114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Native ARM Mac GPU usage (metal performance shaders) #501
Comments
I ran the following Pytorch example inside a Tart VM and indeed it seems not supported by underlying |
Thanks, this would be pretty cool! |
With a little bit more investigation it seems the But in my testing I don't see any graphics devices inside the VM: Comparing to what I see on an M1 Mac Mini: @edigaryev I know you diged into private APIs of |
@fkorotkov the paravirtualization actually seems to be used: You can also check this by running
I'm not sure as to why Apple’s Metal Performance Shaders don't work, though. |
Perhaps @Developer-Ecosystem-Engineering might be able to (informally) point us in the right direction? I know they've been quite helpful with NumPy low-level development on M-series chips. |
I am running into the same issue as well. |
Its currently not supported to run these types of workloads under virtualization.framework. We understand the request! |
Since Cirrus CI offers some native arm Mac (M chip) services, I was wondering if there might be some documentation/examples/options for using the GPU component (i.e., the metal performance shaders) when testing with i.e.,
torch
which has anmps
backend: https://pytorch.org/docs/stable/notes/mps.htmlI did a little experiment here: tylerjereddy/scipy#71
And found that there may be some restrictions that prevent practical usage in the open source tier:
RuntimeError: MPS backend out of memory (MPS allocated: 0 bytes, other allocations: 0 bytes, max allowed: 1.70 GB). Tried to allocate 0 bytes on private pool. Use PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0 to disable upper limit for memory allocations (may cause system failure).
Do you have any experience/guidance here? Is this expected? Is this disabled and you don't want us trying it? It would be very cool to be able to flush through GPUs in CI like that!
The text was updated successfully, but these errors were encountered: