Pull requests / #14
#14 CPU pool: fix dangling else in Linux physical_cores() (fixes #13, root cause of #11)
closed · merged 2026-09-26 · @Vistawizard · 0 コメント · GitHub で見る
BenchmarksNVIDIA / CUDAModels & quantsWindowsLinux
本文
Fixes #13. Root cause of #11. In `physical_cores()` (Linux branch), the `else` had no braces, so it bound to the inner `if (CPU_ISSET(i, &set))` instead of the `sched_getaffinity` check. Every CPU id outside the affinity mask then appended all `hardware_concurrency()` ids again: on a 16-CPU machine, `(1024 − 16) × 16 + 15` = **16 143 pool workers**, load average > 10 000, and the server never becomes ready. This PR braces both branches, so the fallback only runs when `sched_getaffinity` fails. Behaviour on Windows is unchanged. **Tested** on Debian 13 (Proxmox LXC, 16 CPUs), RTX 3060 12 GB, Ryzen 9 5950X, IQ2_XS, 32K context: - before: `16143 expert-pool workers`, hang - after: `15 expert-pool workers + the host thread`, ready in 48 s, ~40.5 tok/s decode, 421 tok/s prefill (16.5K prompt) With this, the `--pool-workers` workaround from #11 is no longer needed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Q1SEDU9H9DCuipw7SB1haY
関連リンク
インストール・モデル・リリースへの站内リンク。