sskj/experiments/pro6000/kimi3_pro6000_sglang_tp32ep32_moe_backend_prefill

Kimi-K3 / Pro6000D / SGLang TP32 EP32 MoE Backend Prefill

This experiment is the real-serving acceptance gate for Kimi-K3 FlashInfer MXFP4 MoE on NVIDIA SM120. It does not modify the existing baseline experiment.

Fixed matrix

Dimension Values
Nodes 601-604, 8 GPUs per node
Parallelism TP32, EP32, DP1
MoE runner marlin, flashinfer_mxfp4
Input / output 16K / 1 token
Concurrency 8, 16
Chunked prefill 8K, 16K
Requests 40 per repeat
Repeats 3

The eight configurations are identical except for MoE runner and chunk size. The client uses SGLang random-ids, which produces the exact synthetic token length without depending on a ShareGPT file or text truncation. Radix cache is disabled. OSL=1 makes TTFT, E2E latency and input TPS the primary metrics; TPOT is not meaningful for this matrix.

Unique entrypoint

Run on 601 only. The sudo password is supplied at runtime and is never written to Git or result files.

cd /data/hzy/sskj/experiments/pro6000/kimi3_pro6000_sglang_tp32ep32_moe_backend_prefill

read -rsp 'sudo password: ' SUDO_PASSWORD; echo
export SUDO_PASSWORD
export RUN_ID=kimi3-moe-prefill-$(date +%Y%m%d-%H%M%S)

bash run_moe_backend_prefill.sh build-image
bash run_moe_backend_prefill.sh run

For an unattended run, use the same entrypoint under tmux:

umask 077
printf '%s\n' "$SUDO_PASSWORD" > /tmp/kimi3-phase5-sudo
unset SUDO_PASSWORD

tmux new-session -d -s kimi3-moe-prefill \
  "cd /data/hzy/sskj/experiments/pro6000/kimi3_pro6000_sglang_tp32ep32_moe_backend_prefill && \
   SUDO_PASSWORD_FILE=/tmp/kimi3-phase5-sudo RUN_ID=\"${RUN_ID}\" \
   bash run_moe_backend_prefill.sh all 2>&1 | tee /data/hzy/${RUN_ID}.log"

Delete /tmp/kimi3-phase5-sudo after the run. The file is mode 0600 and is never copied to result directories.

Outputs

results/<RUN_ID>/
  build/            per-node image build and smoke evidence
  service/          exact docker commands and all four server logs
  raw/              one benchmark JSONL per repeat
  bench/            human-readable benchmark logs
  gpu/              per-node GPU snapshots
  results.csv       flat repeat-level metrics
  summary.json      median metrics and FlashInfer-vs-Marlin deltas
  orchestrator.log  lifecycle and progress

The run aborts on a failed service start, any failed request, a missing result, or an image capability smoke failure. Containers are removed on exit.