Closed Steve-Glass closed 2 months ago
There's something strange with the Xcode installation in these runners, running xcrun --show-sdk-version
outputs
xcodebuild: error: SDK "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" cannot be located.
xcrun: error: unable to lookup item 'SDKVersion' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
See e.g. https://github.com/fwcd/m1xxx/pull/63
I can't reproduce this locally, even with xcode-select -s /Library/Developer/CommandLineTools
.
The new macos-14
runners contain a link at the top of the log to included software:
Included Software: https://github.com/actions/runner-images/blob/macOS-14/20240116.1/images/macos/macos-14-arm64-Readme.md
This link is a 404 and should instead link to https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
@darena-patrick, looks like this ticket says exactly that. If you switch to macos-14
your jobs will be running on the M1 (aka arm64
) runner.
@darena-patrick, looks like this ticket says exactly that. If you switch to
macos-14
your jobs will be running on the M1 (akaarm64
) runner.
yea, I deleted my comment once I realized that :)
@Steve-Glass any plans to support Docker on these images? Otherwise, any word on when linux/arm64
will be available?
@Steve-Glass any plans to support Docker on these images? Otherwise, any word on when
linux/arm64
will be available?
No docker for the M1 images: https://docs.github.com/en/actions/using-github-hosted-runners/about-larger-runners/about-larger-runners#limitations-for-macos-larger-runners:
Due to a limitation of Apple's Virtualization Framework, which our hypervisor uses, nested-virtualization is not supported by arm64 runners.
And for linux arm images there is this open (but locked) issue: https://github.com/actions/runner-images/issues/5631
The new
macos-14
runners contain a link at the top of the log to included software:Included Software: https://github.com/actions/runner-images/blob/macOS-14/20240116.1/images/macos/macos-14-arm64-Readme.md
This link is a 404 and should instead link to https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
This is expected as no full public releases happened yet, it should be fixed with the next release :)
When is this coming to Azure Pipelines?
@Steve-Glass there's a huge breaking change here: the M1 processor does not support nested virtualization. This will break every workflow out there using Colima/Lima or any other VM-based solution for running Docker in macOS.
Neither QEMU nor Virtualization.framework can be used to start VMs inside the runners, because they are already VMs.
QEMU will report {"level":"debug","msg":"qemu[stderr]: qemu-system-aarch64: Error: HV_UNSUPPORTED","time":"2024-02-01T19:34:57Z"}
Trying to use Virtualization.framework will report {"level":"fatal","msg":"Error Domain=VZErrorDomain Code=2 Description=\"Invalid virtual machine configuration. Virtualization is not available on this hardware.\" UserInfo={\n NSLocalizedFailure = \"Invalid virtual machine configuration.\";\n NSLocalizedFailureReason = \"Virtualization is not available on this hardware.\";\n}","time":"2024-02-01T19:36:49Z"}
@douglascamata, I'm not sure that it should be called a breaking change since it was explicitly mentioned as a limitation.
@Vyazovoy being a documented change doesn’t change the fact that it is a breaking change. They are two different things.
I would like to upvote @fwcd comment. I too am seeing an error running xcrun --show-sdk-version
.
Is the GPU available on these runners? Trying to use them with PyTorch and the MPS (i.e. Metal) backend result in error like this (See https://github.com/lab-cosmo/metatensor/actions/runs/7847356344/job/21416128283)
RuntimeError: MPS backend out of memory (MPS allocated: 0 bytes, other allocations: 0 bytes, max allowed: 7.93 GB). Tried to allocate 256 bytes on private pool. Use PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0 to disable upper limit for memory allocations (may cause system failure).
Setting PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0
in the env changes the error message to (see https://github.com/lab-cosmo/metatensor/actions/runs/7847470210/job/21416465675)
RuntimeError: MPS backend out of memory (MPS allocated: 0 bytes, other allocations: 0 bytes). Tried to allocate 256 bytes on shared pool.
There are other reports of the same issue on the PyTorch forums: https://discuss.pytorch.org/t/mps-back-end-out-of-memory-on-github-action/189773
"isb" instructions are recognized as EXC_BAD_INSTRUCTION
in the new M1 runners.
@Luthaf unfortunately, the new macos-14
don't have access to MPS hardware, see https://github.com/pytorch/pytorch/issues/111449#issuecomment-1767613883.
@Steve-Glass,
Target date
Available as of 1/30/2023
You mean 1/30/2024
Apparently the macos-14 also has support to run intel code disabled, qemu reports:
Error: qemu exited unexpectedly with exit code -1, stderr: qemu-system-aarch64: -accel hvf: Error: HV_UNSUPPORTED
This a big bummer for someone wanting to build a dual architecture container for example. Doing that on an intel bacsed linux machine is like 5x slower than doing it on a macos arm based machine.
If I understand correctly, none of the M1 macos runners available from github do support any container engine (docker or podman) as they do not allow the required linux VM to be started.
That is a huge issue, especially if you combine it with the fact that there is no arm linux runner yet.
@ssbarnea it is not a GitHub restriction, Apple does not support nested virt on M1 CPU gen entirely
Unfortunately, the current macos-14
runner which ARM architecture cannot run Docker.
Although it can execute builds on native ARM, this essentially says goodbye to the Docker ecosystem system. 😢
What's the point using mac runners for Docker tasks if you can use Linux runners?
What's the point using mac runners for Docker tasks if you can use Linux runners?
Currently there are no GitHub-hosted ARM-based Linux runners.
@fwcd @cgrindel were you able to fix errors with xcrun --show-sdk-version
?
Unfortunately, no. I still see the following:
++ xcrun --show-sdk-version
2024-04-28 15:28:55.452 xcodebuild[11203:62473] Writing error result bundle to /var/folders/3m/p59k4qdj0f17st0gn2cmj3640000gn/T/ResultBundle_2024-28-04_15-28-0055.xcresult
xcodebuild: error: SDK "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" cannot be located.
xcrun: error: unable to lookup item 'SDKVersion' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'
I've created issue #9811
What's the point using mac runners for Docker tasks if you can use Linux runners?
Sometimes Docker is just here to provide a side service while running native tests that require a specific system. I want to test my web socket client implementation on macOS, not on linux, but I still want to run my docker-based test server during the build.
Breaking changes
The new M1 runner is available for all plans, free in public repositories, and eligible to consume included free plan minutes in private repositories. The new runner operates exclusively on macOS 14 and to use it, simply update the
runs-on
key in your YAML workflow file tomacos-14
.Change log
Target date
Available as of 1/30/2023
The motivation for the changes
N/A
Possible impact
N/A
Platforms affected
Runner images affected
Mitigation ways
N/A