| ▲ | simonw 2 days ago |
| I couldn't get the downloadable binary to work, or the binary I compiled myself: ./SwiftLM \
--model mlx-community/Qwen3.5-122B-A10B-4bit \
--stream-experts \
--port 5413
Error: [SwiftLM] Loading model: mlx-community/Qwen3.5-122B-A10B-4bit
[SwiftLM] Enabled Async SSD Streaming on directory: e9c67b08899964be5fdd069bb1b4bc8907fe68f5
[SwiftLM] Memory strategy: FULL GPU (69.6GB model, 133.4GB available)
[SwiftLM] Download: [===================>] 100% ⠋ (66395.4 MB / 66395.4 MB) | Speed: 0.0 MB/s
MLX error: Failed to load the default metallib. library not found library not found library not found library not found at /Users/runner/work/SwiftLM/SwiftLM/LocalPackages/mlx-swift/Source/Cmlx/mlx-c/mlx/c/stream.cpp:115
|
|
| ▲ | simonw 2 days ago | parent | next [-] |
| Claude Code helped me figure out this recipe (inspired by a similar workaround in the CI scripts): git clone --recursive https://github.com/SharpAI/SwiftLM.git
cd SwiftLM
swift build -c release
# Trick to copy in that missing mlx.metallib file
uv run --with mlx-metal python -c "
import importlib.metadata, pathlib, shutil
d = importlib.metadata.distribution('mlx-metal')
metallib = pathlib.Path(d._path).parent / 'mlx/lib/mlx.metallib'
shutil.copy(metallib, '.build/release/')
print(f'Copied {metallib} -> .build/release/mlx.metallib')
# Now start the server (downloads 69GB Qwen model)
.build/release/SwiftLM \
--model mlx-community/Qwen3.5-122B-A10B-4bit \
--stream-experts \
--port 5413
But the server crashed when I tried to run a prompt through it: freed pointer was not the last allocation
|
| |
| ▲ | aegis_camera 2 days ago | parent [-] | | the Python mlx-metal trick is actually what's crashing it. The mlx.metallib from pip is a different version of MLX than what your Swift binary was built against. It gets past the startup error but then corrupts the GPU memory allocator at inference time → freed pointer was not the last allocation. Use the version-matched metallib that's already in the repo: cp LocalPackages/mlx-swift/Source/Cmlx/mlx/mlx/backend/metal/kernels/default.metallib \
.build/release/
.build/release/SwiftLM \
--model mlx-community/Qwen3.5-122B-A10B-4bit \
--stream-experts \
--port 5413
This is the exact metallib that was compiled alongside the Swift code — no version mismatch. Future pre-built releases will bundle it automatically. |
|
|
| ▲ | aegis_camera 2 days ago | parent | prev | next [-] |
| git clone https://github.com/SharpAI/SwiftLM # no --recursive needed
cd SwiftLM
swift build -c release
### Please let me know if this fix the issue: # Copy metallib next to the binary (one-time step)
cp LocalPackages/mlx-swift/Source/Cmlx/mlx/mlx/backend/metal/kernels/default.metallib \
.build/release/ |
|
| ▲ | 2 days ago | parent | prev | next [-] |
| [deleted] |
|
| ▲ | 2 days ago | parent | prev [-] |
| [deleted] |