GLM-5.2-MXFP8-NVFP4-NF3-Hybrid / docker-compose.nvfp4-775k-mtp3.yml
madeby561's picture
Publish validated v20 profiles, calibrated KV scales, and release card
2eb778b verified
Raw
History Blame Contribute Delete
2.64 kB
# Review overlay — exact four-GPU 775k/MTP3 certification profile.
#
# Use with the base NVFP4 Compose:
#
# MODEL_DIR=/path/to/GLM-5.2-MXFP8-NVFP4-NF3-Hybrid \
# CACHE_DIR=./cache/glm52-nf3-v20-nvfp4-775k \
# docker compose \
# -f docker-compose.nvfp4.yml \
# -f docker-compose.nvfp4-775k-mtp3.yml up -d
#
# This keeps the immutable v20 image but applies two reviewed source patches
# inside the ephemeral container. One passes the target online-MXFP8 overlay to
# the same-checkpoint MTP draft. The other selects SparkInfer's existing
# streaming carry fold so long prompts do not allocate page-table-sized
# candidate tensors. No checkpoint file is modified.
services:
glm52:
entrypoint: ["/bin/bash", "/release/apply-v20-capacity-fixes.sh"]
environment:
MTP: "3"
KV_FP8_ROPE: "1"
KV_CACHE_MEMORY_BYTES: "6198000000"
MAX_MODEL_LEN: "775000"
MAX_BATCHED_TOKENS: "2048"
MAX_NUM_SEQS: "8"
GRAPH: "32"
CUDAGRAPH_SIZES_LIST: "1,2,4,8,32"
GPU_MEMORY_UTILIZATION: "0.972"
PYTORCH_CUDA_ALLOC_CONF: ""
# The stock 524,288-token gather workspace leaves too little runtime
# margin at this pin. 131,072 is enough for the certified 128k request
# and reduces the two persistent execution lanes from 460.2 to 115.2 MiB.
VLLM_B12X_MLA_CKV_GATHER_MAX_TOKENS: "131072"
# Explicitly reproduce the measured validation policy. This also avoids the
# v20 fresh-cache calibration timeout/orphan-probe defect.
DCP_QUERY_SPLIT: "0"
DCP_CKV_GATHER: "1"
# The July-26 helper enables the still-opt-in owner-top-k merge. On the
# measured TP4/DCP4 host it regressed 64k/128k prefill by about 19%;
# retain the established replicated global-top-k oracle instead.
DCP_TOPK_OWNER_MERGE: "0"
VLLM_DCP_TOPK_OWNER_MERGE: "0"
DCP_INDEXER_SHARDS: "0"
DCP_CKV_PREFETCH_DEPTH: "0"
PCIE_CALIBRATION: "off"
PCIE_DMA_MIN_BYTES: "25165824"
# Bound long-prefill sparse-indexer scratch independently of page-table
# capacity by selecting its planner-owned streaming carry fold.
SPARKINFER_PAGED_INDEX_MAX_FOLD_SLICES: "8"
SPARKINFER_PAGED_INDEX_TWO_LEVEL_FOLD: "0"
# Both the 184-shard target and same-checkpoint layer-78 MTP draft serve
# absorbed projections directly from their online-MXFP8 packs.
VLLM_B12X_ABSORB_BMM: "1"
volumes:
- ./apply-v20-capacity-fixes.sh:/release/apply-v20-capacity-fixes.sh:ro
- ./serve-glm52-v16.context-cap.sh:/release/serve-glm52-v16.context-cap.sh:ro
- ./patches:/release/patches:ro