# Pull serving image
docker pull verdictai/glm52-nvfp4-dcpmtp:v3.3
# Download model (294 GB)
huggingface-cli download brandonmusic/GLM-5.2-NVFP4-REAP-Recall-N172 \
--local-dir $HOME/models/GLM-5.2-NVFP4-REAP-Recall-N172
# Serve on 4x RTX PRO 6000 96GB (sm120)
docker run -d --name glm52-reap-recall \
--gpus all --runtime nvidia --ipc host --shm-size 32g --network host \
--ulimit memlock=-1 --ulimit stack=67108864 \
-v "$HOME/models":/models-archive:ro -v "$HOME/.cache/glm52-b12x":/cache \
-e CUDA_VISIBLE_DEVICES=0,1,2,3 -e CUDA_DEVICE_ORDER=PCI_BUS_ID -e CUTE_DSL_ARCH=sm_120a \
-e HF_HUB_OFFLINE=1 -e NCCL_IB_DISABLE=1 -e NCCL_P2P_LEVEL=SYS -e NCCL_PROTO=LL,LL128,Simple \
-e PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True \
-e VLLM_USE_AOT_COMPILE=1 -e VLLM_USE_BREAKABLE_CUDAGRAPH=0 -e VLLM_USE_FLASHINFER_SAMPLER=1 \
-e B12X_MHC_MAX_TOKENS=16384 -e VLLM_USE_B12X_WO_PROJECTION=1 -e VLLM_USE_B12X_MHC=1 \
-e VLLM_USE_B12X_FP8_GEMM=1 -e VLLM_USE_B12X_MOE=1 -e VLLM_USE_B12X_SPARSE_INDEXER=1 \
-e VLLM_USE_V2_MODEL_RUNNER=1 -e VLLM_USE_FUSED_MOE_GROUPED_TOPK=1 \
-e VLLM_PCIE_ALLREDUCE_BACKEND=b12x -e VLLM_ENABLE_PCIE_ALLREDUCE=1 \
-e B12X_MLA_SM120_UNIFIED=1 -e USES_B12X=True -e B12X_DENSE_SPLITK_TURBO=1 -e B12X_W4A16_TC_DECODE=1 \
-e B12X_MOE_FORCE_A16=1 -e VLLM_DCP_GLOBAL_TOPK=1 -e VLLM_DCP_SHARD_DRAFT=1 \
verdictai/glm52-nvfp4-dcpmtp:v3.3 \
python -m vllm.entrypoints.cli.main serve /models-archive/GLM-5.2-NVFP4-REAP-Recall-N172 \
--served-model-name glm-5.2-nvfp4 --host 0.0.0.0 --port 9405 \
--kv-cache-dtype fp8 --block-size 256 --load-format safetensors \
--tensor-parallel-size 4 --decode-context-parallel-size 4 --moe-backend b12x --linear-backend auto \
--gpu-memory-utilization 0.92 --max-model-len 200000 --max-num-seqs 16 \
--enable-chunked-prefill --enable-prefix-caching --max-num-batched-tokens 8192 \
--max-cudagraph-capture-size 64 --attention-backend B12X_MLA_SPARSE \
--compilation-config '{"custom_ops":["all"],"cudagraph_mode":"PIECEWISE"}' \
--enable-flashinfer-autotune \
--hf-overrides '{"use_index_cache":true,"index_topk_pattern":"FFFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSSFSSS"}' \
--reasoning-parser glm45 --tool-call-parser glm47 --enable-auto-tool-choice \
--speculative-config '{"method":"mtp","num_speculative_tokens":5,"draft_sample_method":"probabilistic","moe_backend":"b12x","use_local_argmax_reduction":true}'
# Sanity check
curl -s http://127.0.0.1:9405/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"glm-5.2-nvfp4","messages":[{"role":"user","content":"what is the capital of kentucky?"}]}'