diff --git a/experiments/910c/glm52_910c_vllm_tp_dp_matrix/run_adaptive_concurrency_add16.sh b/experiments/910c/glm52_910c_vllm_tp_dp_matrix/run_adaptive_concurrency_add16.sh index 3012a56..dcdaf22 100755 --- a/experiments/910c/glm52_910c_vllm_tp_dp_matrix/run_adaptive_concurrency_add16.sh +++ b/experiments/910c/glm52_910c_vllm_tp_dp_matrix/run_adaptive_concurrency_add16.sh @@ -92,6 +92,12 @@ engine_build_server_args() { ;; esac log "server args tp=${tp} dp=${dp} gpu_mem_util=${mem_util} max_model_len=${max_len} max_num_seqs=${max_seqs}" >&2 + # MoE / DSA-CP args required by GLM-5.2 on vllm-ascend (must match + # start_vllm_docker.sh). --enable-expert-parallel is mandatory for + # FlashComm v1 (VLLM_ASCEND_ENABLE_FLASHCOMM1=1); without it MoE + # MoeDistributeDispatchV2 tiling fails at engine init. + local compilation_config='{"cudagraph_mode": "FULL_DECODE_ONLY"}' + local additional_config='{"enable_dsa_cp": true,"enable_sparse_sfa_c8": false, "enable_sparse_li_c8": true,"enable_balance_scheduling": true,"multistream_overlap_shared_expert":true}' local -a args=( vllm serve "$MODEL_PATH" --served-model-name "$SERVED_MODEL_NAME" @@ -99,16 +105,26 @@ engine_build_server_args() { --kv-cache-dtype "$KV_CACHE_DTYPE" --block-size "$BLOCK_SIZE" --tensor-parallel-size "$tp" + --enable-expert-parallel --gpu-memory-utilization "$mem_util" --max-model-len "$max_len" --max-num-seqs "$max_seqs" + --compilation-config "$compilation_config" + --additional-config "$additional_config" --host 0.0.0.0 --port "$ENGINE_PORT" ) if (( dp > 1 )); then args+=(--data-parallel-size "$dp") fi - printf '%q ' "${args[@]}" + # Emit args space-separated. JSON config strings are single-quoted + # verbatim (not %q-escaped) so the recorded command stays re-runnable. + local out="" + local a + for a in "${args[@]}"; do + out+="'$a' " + done + printf '%s' "$out" } engine_start_server() { diff --git a/experiments/910c/glm52_910c_vllm_tp_dp_matrix/start_vllm_docker.sh b/experiments/910c/glm52_910c_vllm_tp_dp_matrix/start_vllm_docker.sh index 2539627..40ff488 100755 --- a/experiments/910c/glm52_910c_vllm_tp_dp_matrix/start_vllm_docker.sh +++ b/experiments/910c/glm52_910c_vllm_tp_dp_matrix/start_vllm_docker.sh @@ -31,6 +31,21 @@ docker rm -f "$NAME" >/dev/null 2>&1 || true # vLLM-Ascend launch args. Differences vs NVIDIA vLLM: #\n - no --no-enable-flashinfer-autotune (Ascend uses its own attention path) #\n - --kv-cache-dtype may need to be fp16 if the image rejects fp8 on 910C +# Per-TP overrides: TP=8 has tight KV cache on 64GB/die (cap context/seqs), +# TP=16 uses all 16 dies and can serve the full 128K context. +case "$TP" in + 8) + GPU_MEMORY_UTILIZATION="${TP8_GPU_MEMORY_UTILIZATION:-0.95}" + MAX_MODEL_LEN="${TP8_MAX_MODEL_LEN:-16384}" + MAX_NUM_SEQS="${TP8_MAX_NUM_SEQS:-64}" + ;; + 16) + GPU_MEMORY_UTILIZATION="${TP16_GPU_MEMORY_UTILIZATION:-0.92}" + MAX_MODEL_LEN="${TP16_MAX_MODEL_LEN:-131072}" + MAX_NUM_SEQS="${TP16_MAX_NUM_SEQS:-256}" + ;; +esac + SERVER_ARGS=( "$MODEL_PATH" --served-model-name "$SERVED_MODEL_NAME"