madeby561 commited on
Commit
5097530
·
verified ·
1 Parent(s): c8ba356

Serving update: madeby561/vllm dark-devotion-...-mtpdcpfix image + VLLM_DCP_GLOBAL_TOPK + VLLM_DCP_SHARD_DRAFT + use_local_argmax_reduction; refresh perf (70-94 codegen, ~50@256k flat, 256k prefill no-wedge, ~200@C4, 474k pool)

Browse files
Files changed (2) hide show
  1. README.md +8 -1
  2. docker-compose.yml +8 -5
README.md CHANGED
@@ -74,7 +74,14 @@ Surviving experts are luke's NVFP4 weights bit-for-bit. **Saliency** `S_j = mean
74
  ```bash
75
  MODEL_DIR=/path/to/GLM-5.2-NVFP4-REAP-504B-term docker compose up -d # OpenAI API on :5001, id "GLM-5.2"
76
  ```
77
- The included compose defaults to the **best config found: DCP4 + MTP5 + `use_index_cache`** → **~489k-token KV pool, ~80 tok/s** single-stream codegen (~30% MTP accept). `use_index_cache` (caches the DSA top-2048 sparse indices across decode steps) is what makes DCP4 fast — previously DCP4 was comm-bound ~40 tok/s on PCIe. For max short-context decode speed: `DCP_SIZE=1 MTP=1 MAX_MODEL_LEN=125000` (~125k ctx). Tested on `voipmonitor/vllm:glm52-v11-darkdevotion-...-cu132`.
 
 
 
 
 
 
 
78
 
79
  ## Credits
80
 
 
74
  ```bash
75
  MODEL_DIR=/path/to/GLM-5.2-NVFP4-REAP-504B-term docker compose up -d # OpenAI API on :5001, id "GLM-5.2"
76
  ```
77
+ The included compose defaults to the **best config found: DCP4 + MTP5 + global-topk + DCP-sharded draft + `use_index_cache`**, on the patched serving image **[`madeby561/vllm:dark-devotion-…-mtpdcpfix`](https://hub.docker.com/r/madeby561/vllm)** — voipmonitor's `dark-devotion-…-dcpglobaltopk` base plus a one-file `deepseek_mtp.py` fix that lets `VLLM_DCP_SHARD_DRAFT` run the MTP draft DCP-parallel on GLM-5.2 (full write-up on the image page). Measured single-stream on 4× RTX PRO 6000 (PCIe, TP4 / DCP4 / MTP5):
78
+
79
+ - **70–94 tok/s** codegen
80
+ - **~50 tok/s at 256k context** — decode stays *flat* with depth (DSA sparse attention: 56 tok/s at 0 ctx → 49 at 256k)
81
+ - **256k cold prefill: no wedge**; **~200 tok/s aggregate at concurrency 4**
82
+ - **474k-token KV pool** @ util 0.95, `MAX_MODEL_LEN=300000`
83
+
84
+ `VLLM_DCP_GLOBAL_TOPK=1` feeds the speculative draft the model's true global-topk attention target (faster *and* higher-fidelity than local-topk); `VLLM_DCP_SHARD_DRAFT=1` shards that draft across the DCP ranks; `use_index_cache` caches the DSA top-2048 sparse indices across decode steps (DCP4 was comm-bound ~40 tok/s on PCIe without it). For max short-context decode speed: `DCP_SIZE=1 MTP=1 MAX_MODEL_LEN=125000` (~125k ctx).
85
 
86
  ## Credits
87
 
docker-compose.yml CHANGED
@@ -1,8 +1,9 @@
1
  # GLM-5.2-NVFP4-REAP (168 experts / ~504B) — vLLM serving on 4× 96 GB Blackwell GPUs
2
  # (e.g. RTX PRO 6000, SM120). Works for both the -504B (code-calib) and -504B-term variants.
3
  #
4
- # Best config (defaults below): DCP4 + MTP5 + use_index_cache
5
- # → ~489k-token KV pool, ~80 tok/s single-stream codegen (~30% MTP accept).
 
6
  #
7
  # Quickstart:
8
  # MODEL_DIR=/path/to/GLM-5.2-NVFP4-REAP-504B-term docker compose up -d
@@ -10,12 +11,12 @@
10
  #
11
  # Tuning via env (no file edits):
12
  # max decode speed, short ctx : DCP_SIZE=1 MTP=1 MAX_MODEL_LEN=125000
13
- # absolute max context : raise MAX_MODEL_LEN toward the KV pool (~489k @ DCP4)
14
  # no speculative decode : MTP=0
15
  # Sampling: temperature 0.6, top_p 0.95, repetition_penalty 1.0 (do NOT exceed 1.0).
16
  services:
17
  glm52-reap:
18
- image: ${IMAGE:-voipmonitor/vllm:glm52-v11-darkdevotion-vllma86f74e-b12x5b2e018-cu132-20260618}
19
  container_name: ${NAME:-glm52-reap}
20
  network_mode: host
21
  ipc: host
@@ -49,6 +50,8 @@ services:
49
  VLLM_USE_B12X_FP8_GEMM: "1"
50
  VLLM_USE_B12X_MOE: "1"
51
  VLLM_USE_B12X_SPARSE_INDEXER: "1"
 
 
52
  VLLM_USE_V2_MODEL_RUNNER: "1"
53
  VLLM_ENABLE_PCIE_ALLREDUCE: "1"
54
  VLLM_PCIE_ALLREDUCE_BACKEND: b12x
@@ -87,7 +90,7 @@ services:
87
  fi
88
  SPEC_ARGS=()
89
  if [ "$${MTP}" = "1" ]; then
90
- SPEC_CONFIG="$${SPEC_CONFIG:-$$(printf '{"model":"%s","method":"mtp","num_speculative_tokens":%s,"moe_backend":"b12x","draft_sample_method":"probabilistic"}' "$${MTP_MODEL}" "$${NUM_SPECULATIVE_TOKENS}")}"
91
  SPEC_ARGS=(--speculative-config "$${SPEC_CONFIG}")
92
  fi
93
  echo "[glm52-reap] TP$${TP_SIZE} DCP$${DCP_SIZE} MTP=$${MTP} ctx=$${MAX_MODEL_LEN} util=$${GPU_MEMORY_UTILIZATION}"
 
1
  # GLM-5.2-NVFP4-REAP (168 experts / ~504B) — vLLM serving on 4× 96 GB Blackwell GPUs
2
  # (e.g. RTX PRO 6000, SM120). Works for both the -504B (code-calib) and -504B-term variants.
3
  #
4
+ # Best config (defaults below): DCP4 + MTP5 + global-topk + DCP-sharded draft + use_index_cache
5
+ # → 474k-token KV pool; 70-94 tok/s codegen, ~50 tok/s @256k (flat at depth),
6
+ # 256k prefill no-wedge, ~200 tok/s aggregate @ concurrency 4.
7
  #
8
  # Quickstart:
9
  # MODEL_DIR=/path/to/GLM-5.2-NVFP4-REAP-504B-term docker compose up -d
 
11
  #
12
  # Tuning via env (no file edits):
13
  # max decode speed, short ctx : DCP_SIZE=1 MTP=1 MAX_MODEL_LEN=125000
14
+ # absolute max context : raise MAX_MODEL_LEN toward the KV pool (~474k @ DCP4)
15
  # no speculative decode : MTP=0
16
  # Sampling: temperature 0.6, top_p 0.95, repetition_penalty 1.0 (do NOT exceed 1.0).
17
  services:
18
  glm52-reap:
19
+ image: ${IMAGE:-madeby561/vllm:dark-devotion-df8ad3b-b12x5af873a-dcpglobaltopk-cu132-20260621-mtpdcpfix}
20
  container_name: ${NAME:-glm52-reap}
21
  network_mode: host
22
  ipc: host
 
50
  VLLM_USE_B12X_FP8_GEMM: "1"
51
  VLLM_USE_B12X_MOE: "1"
52
  VLLM_USE_B12X_SPARSE_INDEXER: "1"
53
+ VLLM_DCP_GLOBAL_TOPK: "1"
54
+ VLLM_DCP_SHARD_DRAFT: "1"
55
  VLLM_USE_V2_MODEL_RUNNER: "1"
56
  VLLM_ENABLE_PCIE_ALLREDUCE: "1"
57
  VLLM_PCIE_ALLREDUCE_BACKEND: b12x
 
90
  fi
91
  SPEC_ARGS=()
92
  if [ "$${MTP}" = "1" ]; then
93
+ SPEC_CONFIG="$${SPEC_CONFIG:-$$(printf '{"model":"%s","method":"mtp","num_speculative_tokens":%s,"moe_backend":"b12x","draft_sample_method":"probabilistic","use_local_argmax_reduction":true}' "$${MTP_MODEL}" "$${NUM_SPECULATIVE_TOKENS}")}"
94
  SPEC_ARGS=(--speculative-config "$${SPEC_CONFIG}")
95
  fi
96
  echo "[glm52-reap] TP$${TP_SIZE} DCP$${DCP_SIZE} MTP=$${MTP} ctx=$${MAX_MODEL_LEN} util=$${GPU_MEMORY_UTILIZATION}"