| 242 | opt(fp, c, "--role ROLE", "Distributed role: coordinator or worker."); |
| 243 | opt(fp, c, "--layers A:B", "Inclusive layer slice, e.g. 0:20 or 21:output."); |
| 244 | opt(fp, c, "--listen HOST PORT", "Coordinator listen address; workers may use it for their data listener."); |
| 245 | opt(fp, c, "--coordinator HOST PORT", "Coordinator address for --role worker."); |
| 246 | opt(fp, c, "--dist-prefill-chunk N", "Coordinator prefill pipeline chunk size. Default: session cap."); |
| 247 | opt(fp, c, "--dist-prefill-window N", "Max prefill chunks in flight. Default: workers+2, capped at 8."); |
| 248 | opt(fp, c, "--dist-activation-bits N", "Hidden-state transport width: 32, 16, or 8. Default: 32"); |
| 249 | opt(fp, c, "--dist-replay-check", "Diagnostic: reset and replay prompt, then compare logits."); |
| 250 | opt(fp, c, "--debug", "Print coordinator route/debug logs."); |
| 251 | fputc('\n', fp); |
| 252 | title(fp, c, "Tensor Parallelism"); |
| 253 | fputc('\n', fp); |
| 254 | para(fp, c, "Tensor parallelism uses the same coordinator/worker addresses as distributed mode, but always runs one 50/50 worker. Add --tensor-parallel, omit --layers, start the worker, then start the coordinator."); |
| 255 | fputc('\n', fp); |
| 256 | opt(fp, c, "--tensor-parallel", "Switch --role/--listen/--coordinator to two-machine tensor parallelism."); |
| 257 | opt(fp, c, "--transport auto|rdma|tcp", "Tensor gate transport. Default: auto"); |
| 258 | opt(fp, c, "--rdma-device NAME", "Select a verbs device when auto-detection is ambiguous."); |
| 259 | opt(fp, c, "--rdma-gid-index N", "Select the local verbs GID index."); |
| 260 | opt(fp, c, "--tensor-parallel-token-prefill", "GLM diagnostic: prefill one token at a time for exact arithmetic."); |
| 261 | opt(fp, c, "--debug-hash N", "Cross-check hidden state every N tokens."); |
| 262 | fputc('\n', fp); |
| 263 | } |
| 264 | |
| 265 | static void print_cli_diagnostics(FILE *fp, const help_colors *c); |
| 266 |
no test coverage detected