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
[Linux] Weight bos are MAP_LOCKED — models >~18GB cannot load on 22.6GB RAM machines and some request #709
strace shows every weight chunk is allocated as a 512MB MAP_LOCKED device-window overlay on /dev/accel/accel0. With LimitMEMLOCK=infinity the mapping succeeds, but the total lock
requirement (21.07 GiB language + 0.94 GiB vision + runtime buffers ≈ 22.5–23 GB) exceeds
physical RAM on a 22.6 GB machine — even fully headless. MAP_LOCKED pages cannot be swapped,
so this is a hard capacity wall, not a tunable.
Qwen3.6-35B-A3B activates only ~3B params/token. On Windows, engines run
this class of MoE on 16 GB machines by letting cold expert pages stream. The Linux runtime's
global MAP_LOCKED forecloses that: hot experts need only ~11–13 GB resident, the cold tail
could live on NVMe with router-coupled prefetching.
Request
An allocation mode (env var / xrt.ini / API flag) that skips MAP_LOCKED for weight bos on
Linux, letting MoE expert pages fault/stream — analogous to how the Windows build pages on
16 GB machines.
Consider supporting community pruned variants (e.g. REAP-pruned Qwen3.6-35B at 26–27B):
pruned expert count needs recompiled graphs, but the reduced footprint (~15 GB) + reduced
active params (~2.1B/token) would fit and run well on 22–24 GB Linux machines.
Environment: Lemonade 11.8.1 + flm:npu v1.0.2, Ubuntu 24.04 base,
kernel 7.0.0-30-generic, Ryzen AI 9 H365 (Krackan Point, aie2p 6x8).
Activity