You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Serve fails on M2 Max with apple_gpu_family_9_required #6
on an Apple M2 Max, which reports apple_gpu_family: 8. The check appears to
require Metal GPU family 9 (M3/ or newer), but this is not documented
in the release notes or enforced before model preparation.
I checked my M2 Ultra chip. The issue seems to be around bf16 tensors and some hardware not supporting them.
model runtime requires Apple tensor BF16.
I am currently confirming if my device can handle BF16 tensors and if so I will change kMinimumAppleGpuFamily from 9 to 8 in DeviceCapabilities.hpp
If it works and runs I will confirm.
Can confirm, was able to get this running on 2023 Mac M2 Ultra 64gig.
Required a change in kMinimumAppleGpuFamily from 9 to 8 in DeviceCapabilities.hpp - Then rebuilt and tried again, it worked.
☺ slipstream serve --model ~/models/swift-qwen38-flash-next-v3 --port 8090 ruby-3.2.2 main ✗
15:21:25 Loading · local/swift-qwen38-flash-next-v3
Waiting for sufficient available memory to start; the macOS reserve remains protected...
[Qwen4Exp] resident layers: 0 / 48
^[[Qwen4Exp] MTP draft head loaded
[Qwen4Exp] expert cache: 288 experts per layer on average, pins 36.7055 GiB; free now 55.0646 GiB
15:21:42 Kernel policy for GPU family 8 with 60 cores.
15:22:01 Ready · local/swift-qwen38-flash-next-v3 · context 256K · http://127.0.0.1:8090
15:22:46 Error · not_found · GET /favicon.ico
15:25:22 Done · input 62 · cached 0 · output 3,367 · think xhigh · TTFT 3.9s · prompt 16 tok/s · decode 23.6 tok/s
With occasional - engine is recovering; retry shortly when using opencode.
4. I managed to get it running on M2 Max with basically the same change ref.: #17
I also had to change this though /shrug (was refusing to start nitinpanj/Swift-Qwen3.8-Flash-Next-Q4_0-Q8out-v3-GGUF)
Activity
WSINTRA commentedon Oct 3, 2026
Seeing same issue on 2023 Mac 64 gig. Apple M2 Ultra
Generated manifest.json
=== Successfully prepared Slipstream model in 321.5s ===
19:43:06 Loading · local/swift-qwen38-flash-next-v3
error: runtime bootstrap failed [resource_assembly]: apple_gpu_family_9_required
memory_plan_json: {"device_name":"Apple M2 Ultra","macos_version":"26.6.2","apple_gpu_family":8,"gpu_core_count":60,"physical_memory_bytes":68719476736,"recommended_max_wor
king_set_bytes":62277025792,"max_buffer_length_bytes":41747087360,"max_threadgroup_memory_bytes":32768,"max_threadgroup_width":1024,"has_unified_memory":true,"supports_plac
ement_sparse":true}
19:43:07 Error · native protocol reached EOF
19:43:07 Stopping · releasing engine resources
WSINTRA commentedon Oct 4, 2026
I checked my M2 Ultra chip. The issue seems to be around bf16 tensors and some hardware not supporting them.
model runtime requires Apple tensor BF16.
I am currently confirming if my device can handle BF16 tensors and if so I will change kMinimumAppleGpuFamily from 9 to 8 in DeviceCapabilities.hpp
If it works and runs I will confirm.
WSINTRA commentedon Oct 4, 2026
Can confirm, was able to get this running on 2023 Mac M2 Ultra 64gig.
Required a change in kMinimumAppleGpuFamily from 9 to 8 in DeviceCapabilities.hpp - Then rebuilt and tried again, it worked.
☺ slipstream serve --model ~/models/swift-qwen38-flash-next-v3 --port 8090 ruby-3.2.2 main ✗
15:21:25 Loading · local/swift-qwen38-flash-next-v3
Waiting for sufficient available memory to start; the macOS reserve remains protected...
[Qwen4Exp] resident layers: 0 / 48
^[[Qwen4Exp] MTP draft head loaded
[Qwen4Exp] expert cache: 288 experts per layer on average, pins 36.7055 GiB; free now 55.0646 GiB
15:21:42 Kernel policy for GPU family 8 with 60 cores.
15:22:01 Ready · local/swift-qwen38-flash-next-v3 · context 256K · http://127.0.0.1:8090
15:22:46 Error · not_found · GET /favicon.ico
15:25:22 Done · input 62 · cached 0 · output 3,367 · think xhigh · TTFT 3.9s · prompt 16 tok/s · decode 23.6 tok/s
With occasional - engine is recovering; retry shortly when using opencode.
initialed85 commentedon Oct 10, 2026
I managed to get it running on M2 Max with basically the same change ref.: #17
I also had to change this though /shrug (was refusing to start nitinpanj/Swift-Qwen3.8-Flash-Next-Q4_0-Q8out-v3-GGUF)
1RAFAL commentedon Oct 10, 2026
Can you please tell me your numbers? (pp + tg)
initialed85 commentedon Oct 10, 2026
Yeah, not amazing tbh- but I dunno if that's to be expected or what:
For this prompt with Pi, no extensions:
It generates more or less as expected:
Output from
slipstream:Whereas the same prompt for Sushi (standard Qwen3.8 Flash Next, not Swift), roughly similar result:
Truncated output from Sushi:
Now I dunno if those numbers are prefill or generation, but the Sushi output "feels" like it streams in a bit faster, so I assume generation?
Not very scientific, sorry!
EDIT: Couple more numbers I noticed in the Sushi logs: