txgsync's picture
|
download
raw
3.51 kB
# Environment variables
## Both engines
| Variable | Default | Use |
|---|---|---|
| `NSLM_MODEL_DIR` | | The model folder for the tests (Windows build) |
## Metal engine
| Variable | Default | Use |
|---|---|---|
| `NSLM_KV_DENSE=1` | off | Commit all KV cache memory at the start. The default pages the cache (macOS 26.4 or later) |
| `NSLM_BATCH_GEMM=N` | off | Run decode steps of N or more slots through the prompt GEMMs. Faster at large batches. Gives up bit-for-bit equality |
## CUDA engine
| Variable | Default | Use |
|---|---|---|
| `NSLM_VRAM_RESERVE_MB` | 512. Qwen3.8-Flash-Next: 2560 on a GPU that drives a display | VRAM to keep free. The Qwen3.8-Flash-Next expert cache shrinks to keep it |
| `NSLM_EXPERT_MIN_MB` | 6144 | VRAM to keep for experts when the KV cache is large |
| `NSLM_KV_VRAM_MB`, `NSLM_EXPERT_VRAM_MB` | | Fixed VRAM shares for the KV cache and the experts |
| `NSLM_CACHE_STATS=1` | off | Write the expert cache hits at exit |
| `NSLM_NO_GRAPH=1` | off | Do not use CUDA graphs for decode (K2-Horizon-MoVA and Qwen3.8-Flash-Next) |
| `NSLM_NO_PREDICT=1` | off | Do not predict the experts of the next layer during decode (K2-Horizon-MoVA) |
| `Q4E_PROFILE=1` | off | Qwen3.8-Flash-Next: write the GPU time of each forward stage at exit, and the CPU tail's times |
| `Q4E_ROUTES=FILE` | off | Qwen3.8-Flash-Next: write the routed experts of each forward, for `tools/qwen4_cache_sim.py` |
| `Q4E_NO_PREFETCH=1` | off | Qwen3.8-Flash-Next: do not copy the next layer's experts while a prompt layer computes |
| `Q4E_PLE_THREADS=N` | CPU cores, at most 16 | Qwen3.8-Flash-Next: host threads for the PLE rows. Decode rows split by head. The CPU tail uses one fewer |
| `Q4E_TAIL_RENORM=1` | off | Qwen3.8-Flash-Next `--tail-skip`: scale the kept weights of a row up to its sum |
| `Q4E_CPU_TAIL=N` | 0 | Qwen3.8-Flash-Next in `nslm-chat` and `nslm-serve`: `nslm-qwen4-gen --cpu-tail N` |
| `Q4E_VRAM_EXPERTS=1` | off | Qwen3.8-Flash-Next in `nslm-chat` and `nslm-serve`: `nslm-qwen4-gen --vram-experts` |
| `Q4E_STREAM_EXPERTS=1` | off | Qwen3.8-Flash-Next in `nslm-chat` and `nslm-serve`: `nslm-qwen4-gen --stream-experts` |
| `Q4E_PLE_GGUF=FILE` | | Qwen3.8-Flash-Next in `nslm-chat` and `nslm-serve`: `nslm-qwen4-gen --ple-gguf FILE` |
| `Q4E_ROWS=N` | 4096 or 16384 | Qwen3.8-Flash-Next in `nslm-chat` and `nslm-serve`: `nslm-qwen4-gen --prompt-rows N` |
| `Q4E_DRAFTS=K` | 0 | Qwen3.8-Flash-Next in `nslm-chat` at temperature 0: `nslm-qwen4-gen --drafts K` (1 to 3 MTP drafts a forward, the same text). Set, it opens the MTP head, which every forward runs. `nslm-serve` does not draft |
| `NSLM_SEED_GEMM_F32=1` | off | Keep seed weights in f32 in the prompt GEMM. This changed neither KLD nor NLL, and it costs about 30% of prompt speed at 4K |
| `NSLM_PREFILL_RANGE` | 8192, or 32768 when the KV cache is partly in host memory | Prompt rows that the engine computes layer by layer at a time. Each range copies the earlier host rows again |
| `NSLM_MLA_DEC_KEYS` | 8192 (128 MiB of VRAM) | MLA keys that the engine decompresses at a time for prompt rows. 0 attends prompts absorbed, as decode does |
| `NSLM_MLA_SCALAR=1` | off | Use the earlier one-pass latent kernel, for comparison |
## MLX loader
| Variable | Default | Use |
|---|---|---|
| `NSLM_MAX_CONTEXT` | | The longest context (tokens) that you plan to use. The loader picks the MLA cache format from it |
| `OMLX_K2_MODEL` | | The oMLX K2-Horizon model file, for `make test-mlx` and the MLX tools |

Xet Storage Details

Size:
3.51 kB
·
Xet hash:
854eb26f010e1f73bca184c73cf9208b6a4760945fc30a55ff6119f791e3d443

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.