- scripts: 11 个服务器原样脚本入库(md5 对照表更新至 README);D=60.1 生产原样配方、 E=v5 DFlash 底稿、F=PD 链四角色部署+launch+双场景压测驱动 - profiles: 新增 6 个 .env(D/E 单机 + F 四角色,均带镜像 digest sha256:28e0d260…,对齐 kimi3 PD 多角色先例) - deploy/PD_CHAIN.md: 方案 F 编排手册(启动顺序 mc-master→prefill→decode→router、 基础设施依赖表、质量门口径、拆链恢复、÷2 单机等效判决) - platforms/patches/pro6000/glm53_pd_chain/: sglang 补丁树 vs 镜像原版 11 文件 unified diff 快照——宿主树无 .git,此为唯一版本记录(DFlash+PP+PD 解锁全集) - deploy/manifests/: GLM-5.3-NVFP4(47分片)/GLM-5.3-DFlash2(单分片) 权重 md5 清单 - deploy/CURRENT.md: 全集群现役状态页(2026-09-08 八机实测) - deploy/verify_profile.sh: 防漂移核验工具(digest+参数 token 比对+端口/health, 已在 60.1 生产容器实测 PASS)
53 lines
3.6 KiB
Bash
53 lines
3.6 KiB
Bash
# GLM-5.3-NVFP4 PD 分离链 - 角色3: decode 节点(方案F,跑在 6000D-2 = 174.1.60.2,8 卡)。
|
||
# 四角色链之一,启动顺序强制: mc-master -> prefill -> [本角色] -> router。
|
||
# 完整链编排见 deploy/PD_CHAIN.md。
|
||
# 可执行部署脚本: experiments/pro6000/glm53_nvfp4_pro6000d_sglang_dual_scenario_bench/scripts/deploy_s1_decode.sh
|
||
# (launch 脚本同目录 s1_decode_launch.sh)
|
||
#
|
||
# 关键点(实测踩坑,勿随意改):
|
||
# - 配方 = 方案 E v5(TP8 + DFLASH + MRR12 + fa4 + window2048)+ PD decode flags;
|
||
# KV 池 214,336 token(比单机 E 的 243,584 少,PD 传输缓冲占显存)
|
||
# - 容量属性(实测判决的核心): 池按 16k 场景定容 → 128k 仅容 1 个驻留(cc4 时 TTFT
|
||
# 堆到 31.0s)、64k 容 3、16k 容 12(MRR12 上限)。长上下文负载该池就是瓶颈
|
||
# - 必须挂补丁树 /data/sglang_patch_glm53:/sgl-workspace/sglang(唯一改动
|
||
# python/sglang/srt/speculative/spec_info.py 接 build_dflash_family_disagg_draft_input,
|
||
# DFlash PD 冷启动接线)+ 装 mooncake wheel(--no-deps,launch 脚本自装)
|
||
# - --network host + --device /dev/infiniband + --ulimit memlock=-1,IB 设备 mlx5_0-3
|
||
# - DFlash accept 在 12-batch verify 下掉到 1.8(单机 EAGLE 2.84)——decode 侧并发
|
||
# verify 是 DFlash 的弱势区,场景二吞吐上限由此而来
|
||
# - 60.2 平时空闲但 GPU7 常有外部裸金属任务(main_v2.py):动卡前核实归属,勿清
|
||
#
|
||
# 实测成绩: 飞书《GLM-5.3-NVFP4 双场景压测报告》方案 F 行(文档 SZUSdEqY1oRVxGxgILBcHqPJnEc)。
|
||
# 场景二判决: "两机买 TTFT、不买吞吐"(÷2 单机等效 74-85 tok/s = A 的 75-96%,TTFT 减半)。
|
||
|
||
PLATFORM=pro6000
|
||
EXPERIMENT=glm53_nvfp4_pro6000_pd_decode
|
||
MODEL_NAME=GLM-5.3-NVFP4
|
||
ENGINE=sglang
|
||
RUNTIME=docker
|
||
ROLE=pd-decode
|
||
NODE=174.1.60.2
|
||
DOCKER_IMAGE=lmsysorg/sglang:nightly-dev-20260828-daf63171
|
||
DOCKER_IMAGE_DIGEST=sha256:28e0d26073161e49ca56eba808d264a4223804a212020f1dfe1b2405b9f8a399
|
||
CONTAINER_NAME=glm53-s1-decode
|
||
MODEL_PATH=/data/hf_models/GLM-5.3-NVFP4
|
||
DRAFT_MODEL_PATH=/data/hf_models/GLM-5.3-DFlash2
|
||
PORT=30000
|
||
HEALTH_PATH=/health
|
||
HEALTH_WAIT_S=1200
|
||
|
||
TP=8
|
||
MEM_FRACTION_STATIC=0.85
|
||
MAX_RUNNING_REQUESTS=12
|
||
CHUNKED_PREFILL_SIZE=8192
|
||
|
||
DEVICE_VARS="CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7"
|
||
ENGINE_ENV="MOONCAKE_MASTER=174.1.60.1:50051 MOONCAKE_PROTOCOL=rdma PYTHONUNBUFFERED=1"
|
||
|
||
DOCKER_FLAGS="--gpus all --network host --ipc=host --shm-size 64g --ulimit memlock=-1 --device /dev/infiniband --restart unless-stopped"
|
||
VOLUMES="/data/hf_models:/data/hf_models /data/flashkda_deploy/wheels:/mc_wheels:ro /data/sglang_patch_glm53:/sgl-workspace/sglang"
|
||
|
||
BOOTSTRAP="pip install /mc_wheels/mooncake_transfer_engine_cuda13-0.3.12.post1-cp312-cp312-manylinux_2_28_x86_64.whl --no-deps -q && python3 -m sglang.launch_server ${LAUNCH_ARGS}"
|
||
|
||
LAUNCH_ARGS="--model-path ${MODEL_PATH} --tp-size ${TP} --mem-fraction-static ${MEM_FRACTION_STATIC} --max-running-requests ${MAX_RUNNING_REQUESTS} --disable-radix-cache --disable-shared-experts-fusion --moe-runner-backend flashinfer_cutlass --disable-flashinfer-autotune --disable-custom-all-reduce --chunked-prefill-size ${CHUNKED_PREFILL_SIZE} --speculative-algorithm DFLASH --speculative-draft-model-path ${DRAFT_MODEL_PATH} --speculative-draft-attention-backend fa4 --speculative-draft-window-size 2048 --disaggregation-mode decode --disaggregation-transfer-backend mooncake --disaggregation-bootstrap-port 28800 --disaggregation-ib-device mlx5_0,mlx5_1,mlx5_2,mlx5_3 --host 0.0.0.0 --port ${PORT} --json-model-override-args {\"index_topk_freq\": 4}"
|