Repository navigation
kinfer v0.2.4
A mixture of experts read from the SSD generates sooner: DeepSeek-V4.1 on a MacBook Pro 14.5–18.7 tok/s instead of 11.5–16.6, with the same replies.
curl -fsSL https://raw.githubusercontent.com/LocalKinAI/kinfer/main/scripts/install.sh | sh- A miss is read straight into its slot. On a Mac the experts' GPU cache is memory the host shares, so a miss is now read from the SSD into it directly, not into host memory and then copied: 5 ms of V4.1's 78 a token on the laptop.
- The GPU kept busy while a layer's misses are read. A GPU left idle most of a millisecond lets its clock down and runs the next layer slower; V4.1's misses did that forty times a token. A small kernel on the graphs' own queue now fills most of the wait, and the GPU's part of a token went from 37.6 ms to 25.5.
LLAMA_MOE_FILL=0turns it off. LLAMA_MOE_TIMING=1(withGGML_METAL_GPU_TIME=1) logs where generation's time goes at each cached layer when the model unloads.
| DeepSeek-V4.1, four 256-token replies | v0.2.3 | v0.2.4 |
|---|---|---|
| MacBook Pro (M5 Max, 40 GiB GPU), every layer's experts on the host | 12.0 / 16.6 / 11.5 / 11.5 tok/s | 15.0 / 18.7 / 14.8 / 14.5 tok/s |
| M3 Ultra, 31 layers' experts on the host | 15.5 / 17.5 / 15.4 / 14.8 tok/s | 16.5 / 18.0 / 15.2 / 15.5 tok/s |
Models that fit on the GPU are unchanged (Flash-Next on the M3 Ultra: the same replies, md5 for md5). The patched libraries are now darwin_arm64_b11998k7 (patch 0007). How the time was found and what else was tried: docs/big-models.md. CHANGELOG.md
kinfer-v0.2.4-darwin-arm64.tar.gz sha256 872a7c4e9876edf8fa282461779ce5d0bcefc174f89deb161349ef68d9b9c59c