| 71 | "Options:\n" |
| 72 | " --draft <path> Draft model for speculative decode\n" |
| 73 | " --port <N> Listen port (default: 8080)\n" |
| 74 | " --host <addr> Bind address (default: 0.0.0.0)\n" |
| 75 | " --max-ctx <N> Max context length (default: 131072)\n" |
| 76 | " --max-tokens <N> Default max output tokens (legacy alias for\n" |
| 77 | " --default-max-tokens; loses to --default-max-tokens\n" |
| 78 | " when both are passed)\n" |
| 79 | " --target-device <backend:gpu> Target device (default: auto:0)\n" |
| 80 | " --draft-device <backend:gpu> Draft device (default: auto:0)\n" |
| 81 | " --draft-ipc-bin <path> Remote backend IPC daemon for mixed backends\n" |
| 82 | " --draft-ipc-work-dir <path> Remote draft IPC scratch directory\n" |
| 83 | " --draft-ipc-ring-cap <N> Remote draft feature ring capacity\n" |
| 84 | " --draft-swa <N> Draft sliding-window attention size (0=off; e.g.\n" |
| 85 | " 2048 for unsloth Qwen3.6 targets, per server/README.md.\n" |
| 86 | " Env: DFLASH27B_DRAFT_SWA)\n" |
| 87 | " --target-shard-ipc-bin <path> Remote target shard IPC daemon for mixed target split\n" |
| 88 | " --target-shard-ipc-work-dir <path> Remote target shard IPC scratch directory\n" |
| 89 | " --target-devices <list> Target devices, e.g. cuda:0,cuda:1\n" |
| 90 | " --target-split-mode <mode> Multi-GPU mode: layer (default) or tensor\n" |
| 91 | " --target-layer-split <weights> Reserved layer-split weights\n" |
| 92 | " --target-split-fast-rollback Opt in to exact F32 checkpoints for local\n" |
| 93 | " qwen35 layer splits (extra VRAM; env:\n" |
| 94 | " DFLASH_SPLIT_FAST_ROLLBACK=1)\n" |
| 95 | " --peer-access Enable peer access for multi-GPU placement\n" |
| 96 | " --chunk <N> Chunked-prefill chunk size (default: 512)\n" |
| 97 | " --ds4-fused-decode Enable DeepSeek4 single-graph GPU decode\n" |
| 98 | " --ds4-expert-top-k <N>\n" |
| 99 | " Keep and renormalize the highest-ranked N routed experts\n" |
| 100 | " (0=model default; single-device DeepSeek4 only)\n" |
| 101 | " --ds4-prefill <mode> DeepSeek4 prefill: exact, dense, or sparse\n" |
| 102 | " (default: exact; dense/sparse are experimental\n" |
| 103 | " and may change generated tokens)\n" |
| 104 | " --fa-window <N> Flash-attention sliding window (default: 0=full).\n" |
| 105 | " WARNING: >0 drops system prompt / tool definitions\n" |
| 106 | " from attention at long contexts. Use 0 for tools.\n" |
| 107 | " --model-name <name> Model name for /v1/models (default: dflash)\n" |
| 108 | " --prefix-cache-slots <N> Prefix cache slots (default: 32, 0 disables)\n" |
| 109 | " --prefill-cache-slots <N> Full prompt/prefill cache slots (default: 0)\n" |
| 110 | " --fast-rollback Enable speculative fast rollback (default: on)\n" |
| 111 | " --no-fast-rollback Disable speculative fast rollback, even with --ddtree\n" |
| 112 | " --ddtree Enable DDTree speculative decode\n" |
| 113 | " --ddtree-budget <N> DDTree budget (default: 22)\n" |
| 114 | " --verify-width <N> laguna chain spec verify width (default: base 8,\n" |
| 115 | " trimmed per step by drafter confidence; N = fixed base)\n" |
| 116 | " --adaptive-experts [tau] MoE expert-count gating on verify batches\n" |
| 117 | " (near-lossless; default tau 0.80 when passed)\n" |
| 118 | " --no-cors Disable CORS headers\n" |
| 119 | " --think-max-tokens <N> Phase-1 reasoning cap when a request opts in\n" |
| 120 | " via thinking:{type:enabled} (default: 15488 =\n" |
| 121 | " default_max_tokens - hard_limit_reply_budget;\n" |
| 122 | " may be raised by share/model_cards/<name>.json)\n" |
| 123 | " --default-max-tokens <N> Combined cap when request omits max_tokens\n" |
| 124 | " (default: 16000, matches antirez/ds4 ds4_eval.c;\n" |
| 125 | " may be raised by share/model_cards/<name>.json)\n" |
| 126 | " --hard-limit-reply-budget <N>\n" |
| 127 | " Level 2 force-close: when this many tokens\n" |
| 128 | " remain (of the combined cap), inject </think>\n" |
| 129 | " so the model gets that budget to write the\n" |
| 130 | " visible answer. Mirrors ds4_eval.c's\n" |
no test coverage detected