Skip to content

DEMO: testing torch device MPS with cirrus CI #71

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

Open
wants to merge 4 commits into
base: array_api
Choose a base branch
from

Conversation

tylerjereddy
Copy link
Owner

Quick demo to show that we can test on native ARM mac metal performance shaders (MPS GPU) on cirrus CI so we have at least one array API "device" other than host tested in CI.

@tylerjereddy
Copy link
Owner Author

So, the failures in Cirrus CI arm Mac run here appear to be related to memory problems--I wonder if they somehow block usage of the integrated GPU on their native mac platforms?

Locally I get a few sensible device-related failures with:

SCIPY_TORCH_DEVICE=mps python dev.py test -j 12 -b numpy -b pytorch -s cluster

FAILED scipy/cluster/tests/test_hierarchy.py::TestLinkage::test_linkage_tdist[torch] - AttributeError: 'Tensor' object has no attribute 'flags'
FAILED scipy/cluster/tests/test_vq.py::TestWhiten::test_whiten[torch] - AssertionError: 
FAILED scipy/cluster/tests/test_vq.py::TestWhiten::test_whiten_zero_std[torch] - AssertionError: 
FAILED scipy/cluster/tests/test_vq.py::TestVq::test_py_vq[torch] - TypeError: can't convert mps:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
FAILED scipy/cluster/tests/test_vq.py::TestKMean::test_kmeans2_kpp_high_dim[torch] - TypeError: can't convert mps:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.

@tylerjereddy
Copy link
Owner Author

I opened a ticket (cross-linked above) with the Cirrus CI team just to see what they think about the MPS support/usage--I see no open/closed issues about this yet, so I'm curious..

@rgommers
Copy link

That is an interesting idea. I don't know much about MPS, but could try to find out from the PyTorch team. Curious what the Cirrus CI folks will say.

@tylerjereddy
Copy link
Owner Author

They said it is because of the Apple virtualization framework they build tart on top of, and are hoping it will be possible after the upcoming WWDC conference in a few weeks.

@tylerjereddy
Copy link
Owner Author

tylerjereddy commented May 16, 2023

Actually, now they think it should be supported in theory, since there is a video of Apple saying it is. That sounds promising, at least eventually...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants