Repository navigation
[rpc] skip ACCEL devices - #29020
Merged
Merged
[rpc] skip ACCEL devices#29020
Conversation
Member
|
Can you give the commands that you are using to reproduce the crash? For example using |
Contributor
Author
|
Sure, sorry. Mac 2: Mac 1: |
ggerganov
approved these changes
Sep 17, 2026
rgerganov
approved these changes
Sep 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
ACCELdevices are intended to be used alongside a companion CPU. On Mac, they are detected as part of the non-CPU identification loop and added to the list of available devices. Inference later crashes when they are sent an operation (RMS_NORM in my case) that can't run there, and there's no CPU to offload the work to.Additional information
Before #16276, I think
ggml_backend_init_best()was used to select the appropriate device to expose: this considered GPU, IGPU, and lastly CPU. PR #16276 allows multiple accelerators to be exposed, butACCELones are also added to the list; however, they can't work without the CPU.I think an improved solution would be to:
On Mac, the obvious workaround is to specify the metal device in the command-line invocation.
CPU-only platforms that have BLAS or AMX would also expose this issue. Before this PR, inference would crash. After this PR, inference will run on CPU, but not BLAS/AMX.
I wonder if we should also skip IGPUs if GPUs are detected, just like the regular local-inference flow does; this could come in a followup PR perhaps.
Requirements