参数说明 · vLLM Ascend 可调参数详解

基线:origin/main 26f1363f7(9-13 nightly 同代)· 层4 参数全部带 ascend_config.py 行号与两路源码跳转 · 2026-09-14

五层参数体系:① vLLM 原生启动参数(上游标准,本页层1)② speculative-config(投机解码,15 种 proposer,层2) ③ compilation-config(图/编译模式,层3)④ additional-config = AscendConfig(昇腾私有 pydantic,15 个配置类 91 字段,层4) ⑤ 环境变量(层5,正逐步收编进层4)。日常调优 90% 落在层 4。

层 1 · vLLM 原生启动参数

--tensor-parallel-size

是什么:张量并行:把模型的注意力头与中间维切分到 N 张卡,每步做 allreduce。

深入:TP 组内的通信量与 head 数成正比;GLM-5.2 A5 双脚本均用 TP8(单机 8 卡跑满)。

调优:多机场景优先 DP/EP,TP 一般不超过单机卡数;TP>1 会激活 o_proj TP 切换等分支(GLM 案已证 TP1 下这些分支不触发)。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--data-parallel-size / -local / -address / -rpc-port

是什么:数据并行:每个 DP rank 持有完整模型副本、独立调度器,请求按负载分发。

深入:GLM-5.1-198k 双机部署为 DP8(local 4)×TP4 的 internal-DP 形态;DP 之间通过 rpc-port 组网。DP 下存在 dummy run/idle 同步问题(3e30d711 等)。

调优:增大 DP 提升吞吐但放大尾延迟不均衡;注意 DP rank 间负载不均会放大 prefix 差异。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--enable-expert-parallel

是什么:MoE 专家并行:专家按 EP 维分布在卡间,token 经 all-to-all 路由到所在专家。

深入:W8A8 大 MoE 部署标配(GLM/DSV/Kimi 案 yaml 均开)。EP 与 MC2/AllToAll 通信路径强相关。

调优:EP 下若见精度问题,先排查通信路径(mc2_comm_alg/flashcomm)而非量化本身。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--max-model-len

是什么:KV cache 能容纳的最大上下文长度。

深入:直接决定 KV block 总数与显存占用(133120/202752 这类值即按 128 对齐)。设小了长请求直接拒绝。

调优:不要为省显存设到刚好等于最长请求——预留给 MTP draft 与 hash 对齐余量(hybrid 命中取 LCM 对齐)。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--max-num-seqs

是什么:同时在跑的请求上限(decode batch 的请求维度)。

深入:16/20/32 这类取值直接影响 decode 每步 token 数:32 请求 × MTP4 ≈ 128 token/步(prefix 案中走 batch_matmul_transpose 分支的临界条件)。"Part A"已标注其与算子分支的关联。

调优:调大提升吞吐但推高每步 token 数,可能跨过 BMM_TRANS_MAX_SUPPORTED_TOKENS=1024 这类算子分支阈值。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--max-num-batched-tokens

是什么:单个调度步最多处理的 token 预算(chunked prefill 粒度)。

深入:16384 是 GLM 部署常用值。spec decode 下会被压到 4096 级别(max_num_scheduled_tokens 由 spec 设置,日志有提示)。

调优:与 spec decode 组合时留意日志里的 max_num_scheduled_tokens 提示行。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--gpu-memory-utilization

是什么:模型权重+KV 之外允许使用的显存占比。

深入:0.90/0.92/0.95 常见。PD 分离两端可以不同。

调优:留余量给 activations;调大直接增加 KV blocks(对长上下文命中率无影响)。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--enable-prefix-caching

是什么:前缀缓存:相同前缀的请求复用已算好的 KV blocks。

深入:开关打开≠命中:混合注意力模型走 HybridKVCacheCoordinator,命中是跨 KV 组取最小值。GLM-5.2 案:开关打印正常但实际命中 0%(详见 prefix RCA 报告)。

调优:验证口径用每请求 cached_tokens,不要只看启动日志。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--enforce-eager

是什么:禁用目标模型的 ACL 图捕获,全部 eager 执行。

深入:只影响目标模型;draft 是否走图由 speculative-config 的 enforce_eager 决定(参数 1/2 都给 draft 设了 enforce_eager=true)。参数 2 顶层也加了 enforce-eager → 全 eager。

调优:排障第一开关:任何疑似图/编译问题先加它复测。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--async-scheduling

是什么:异步调度:调度与执行重叠。

深入:与投机解码组合时 cascade attention 会被自动禁用(198k 日志可见 Disabling cascade attention 警告)。

调优:按需开启;排障时先关。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--enable-chunked-prefill

是什么:长 prompt 分块 prefill,避免单次巨长计算。

深入:与 max-num-batched-tokens 配合。

调优:长上下文部署建议开。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--quantization ascend

是什么:启用 vllm-ascend 量化方案(w8a8_dynamic/w4a8/w4a16/mxfp4 等按 checkpoint 自动选择)。

深入:quant method 决定走哪套 quantization/methods 子目录;MoE 重构后文件已按子目录组织(73acadef6)。

调优:checkpoint 与 quant 参数必须匹配。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--tool-call-parser glm47 / --reasoning-parser glm45

是什么:GLM 系输出的工具调用与思考段解析。

深入:aisbench 的 extract_non_reasoning_content 依赖 parser 产出的结构;若精度/格式异常,先核对该参数与 checkpoint 模板匹配。

调优:GLM 部署必配。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

--seed

是什么:采样随机种子。

深入:精度评估固定 1024 保证两次运行可比(GLM 案两版脚本一致)。

调优:对比实验必须同 seed。

源码(vLLM 上游):vllm/config.py(SchedulerConfig / CacheConfig)· vllm-ascend 侧适配见 platform.py

层 2 · speculative-config(投机解码)

method —— proposer 选择(15 种)

是什么:选择投机解码的起草器。vllm-ascend/spec_decode/ 下有 15 个 proposer 实现: mtp.py(deepseek_mtp,DeepSeek/GlmMoeDsa 专用)、step3p5.py(mtp,Step3.5 式通用 MTP,每个 MTP 层独立 KV 组)、 eagle_proposer.py(eagle3)、dflash/dflash2_proposer.py、dspark_proposer.py、medusa_proposer.py、ngram_proposer.py(NPU 版)、suffix_proposer.py、 draft_proposer.py、extract_hidden_states_proposer.py。

深入:method 决定 KV cache 组结构——deepseek_mtp 是单 draft KV 组(在协调器支持形态内); mtp 是每 MTP 层独立组(可能超出 AscendHybridKVCacheCoordinator 声明支持的“两类型组合”)。 这是 GLM-5.2 A5 prefix 案的头号嫌疑(详见 pr_learn/prefix_cache_rca_report.html)。

调优:方法一旦变更,务必重测精度 + prefix 命中 + 接受率三项。

源码:vllm_ascend/spec_decode/(15 个 proposer)· GitHub

num_speculative_tokens —— draft token 数

是什么:每步起草的 token 数。GLM-5.1-198k 用 3、DSV32-MTP2 用 2、A5 GLM-5.2 两份脚本都用 5。

深入:越大潜在加速越多,但 draft 变差时浪费越多;同时 max_num_scheduled_tokens 会被压(日志有提示行)。

调优:3 是常用值;AIME 精度评估下接受率可在日志/spec_decode_metrics 中观察。

源码:deepseek_mtp.py · GitHub

enforce_eager(speculative-config 内)—— draft 强制 eager

是什么:draft 模型禁用 ACL 图。注意它只管 draft:目标模型是否走图由顶层 enforce-eager / compilation-config 决定。

深入:target eager + draft eager 是最保守组合(GLM-5.1-198k 即此形态);target FULL_DECODE_ONLY + draft eager 也常见。 若 draft 走图且行为异常,先改这里做二分。

调优:保持 true;draft 图化的收益通常被捕获开销抵消。

源码:llm_base_proposer.py(_create_draft_vllm_config 的 runner_type 处理见 748acedf)

层 3 · compilation-config

cudagraph_mode —— ACL 图模式选择

是什么:目标模型的图捕获策略。FULL_DECODE_ONLY(decode 整图 + prefill eager,最常用)、 FULL_AND_PIECEWISE(全图/分段混合)、false(无图)。

深入:图 replay 时注意力块表经 update_graph_params 刷新——窗口内该路径有大变更(827a11d3 PA workspace 复用、 4c9cdea56 input_batch 修复、b0a0aa59c breakable capture)。GLM-5.2 prefix 案的候选 C:图 replay 下新命中的前缀块 若未进入块表 → 等效于没命中。draft 侧另有 aclgraph 捕获(日志 Replaying aclgraph)。

调优:排障第一步通常是加顶层 --enforce-eager 二分;确认性能后可尝试 FULL_DECODE_ONLY 提吞吐。

源码:attention_v1.py(update_graph_params)· compilation/acl_graph.py

层 4 · additional-config = AscendConfig(逐参数讲解)

数据源:ascend_config.py(pydantic,15 个配置类 91 字段)· 每个参数卡片含行号与两路源码跳转 · ★ = 本站案例涉及的参数

稀疏注意力 / DSA 路径(本案核心开关)

enable_sparse_sfa_c8

类型/默认:False · 属于 additional-config.AscendConfig

是什么:SFA 主注意力的 KV cache 打包量化:把 k_nope+k_pe 合并为单个 int8(A3)或 float8_e4m3fn(FP8 平台)张量 packed_kv,配合 scale(fp16/fp32)供 NPU 算子 npu_kv_quant_sparse_flash_attention 做稀疏反量化注意力计算。KV cache 槽位从 [k_nope, k_pe, indexer_k, scale] 变为 [packed_kv, indexer_k, scale, unused]。

深入:生效前提:model_uses_sfa_sparse()(hf config 含 index_topk 且无 compress_ratios,即 GLM-5.1/5.2、DeepSeek-V3.2+ 等 DSA 模型);同时伴随 q/k Hadamard 变换(L625-629 类级共享静态张量)。【GLM 案实证】0.26.0 得 100 分、0.27.1 起 0 分×3——精度回归的头号定位开关。

调优:精度异常时第一个对照的开关;与 sparse_kv_offload_config 互斥(ascend_config L845-849 校验会 raise)。

源码:ascend_config.py L446 · 本地源码 · GitHub#L446

enable_sparse_li_c8

类型/默认:False · 属于 additional-config.AscendConfig

是什么:Lightning Indexer 的索引缓存量化(与 sfa_c8 是两个独立开关,sfa_v1.py L507 注释明示)。

深入:只对拥有 indexer cache 的层生效;128k_90_50 的 93.33 基线即在 li_c8=true + sfa_c8=false 环境测得。

调优:GLM 案 09-04 dual-nodes 同配置得 93.33 分 → li_c8 单独开不影响精度,说明劣化在 SFA 主路径而非 indexer。

源码:ascend_config.py L447 · 本地源码 · GitHub#L447

enable_dsa_cp

类型/默认:False · 属于 additional-config.AscendConfig

是什么:DSA 跨机上下文并行(DeepSeek V3.2+ / GLM 系 DSA 模型的序列维跨机分片)。

深入:联动:ascend_config L602 自动启用 FlashComm;L650-654 要求 has_indexer + use_sequence_parallel_moe,否则静默关闭;L638-641 警告 PCP 就绪后将废弃 enable_dsa_cp(迁移提示按 TP/PCP 分三档)。GLM 案已实证:dcp_size=1 时 DCP 融合路径(5c59cfba9)不激活。

调优:多机稀疏长上下文部署标配;排查时确认 use_sequence_parallel_moe 是否为 true。

源码:ascend_config.py L394 · 本地源码 · GitHub#L394

通信 / 重叠(MC2 / FlashComm / 共享专家)

enable_fused_mc2

类型/默认:0 · 属于 additional-config.AscendConfig

是什么:融合 MC2 通信:把 MoE 的 dispatch/combine 通信融合进计算。int 枚举(0=关)。

深入:互斥:MiniMax M3 不支持 =1(L688);mc2_comm_alg='hierarchy' 也与它互斥(L838-842)。GLM-5.1/DSV32 两案 yaml 均为 0 → e24e09ca(MC2 profiling 跳编译)对这些部署无效。

调优:MC2 专用部署才考虑非零值。

源码:ascend_config.py L415 · 本地源码 · GitHub#L415

mc2_comm_alg

类型/默认:未设 · 属于 additional-config.AscendConfig

是什么:MC2 通信算法选择(32d9a3138 新增)。可选值含 fullmesh_v2 / hierarchy。

深入:校验:fullmesh_v2 需硬件 MC2_FULLMESH_V2_COMM 支持(L816-819);hierarchy 需硬件支持 + 专家总数 ≤512 + 与 fused_mc2 互斥(L821-842)。

调优:hierarchy 模式大 EP 部署时收益明显。

源码:ascend_config.py L407 · 本地源码 · GitHub#L407

multistream_overlap_shared_expert

类型/默认:False · 属于 additional-config.AscendConfig

是什么:共享专家计算与路由专家通信多流重叠。

深入:实际生效有前置条件:需要 EP + TP>1(L590-594 联动,否则静默降级)。GLM/DSV 大 MoE 部署普遍开(两案 yaml 均 true)。纯性能开关,与精度无直接关系。

调优:MoE+EP 部署建议开;排障时保持默认。

源码:ascend_config.py L390 · 本地源码 · GitHub#L390

enable_prefill_mc2

类型/默认:False · 属于 additional-config.AscendConfig

是什么:Prefill 阶段启用 MC2 通信。

深入:默认关。

调优:PD/大 EP 按部署指导。

源码:ascend_config.py L389 · 本地源码 · GitHub#L389

enable_mc2_hierarchy_comm

类型/默认:False · 属于 additional-config.AscendConfig

是什么:MC2 层级通信(L453 注释 deprecated,被 mc2_comm_alg='hierarchy' 替代)。

深入:旧开关。

调优:保持 False,新配置用 mc2_comm_alg。

源码:ascend_config.py L392 · 本地源码 · GitHub#L392

调度器(scheduler_config 子配置)

enable_balance_scheduling

类型/默认:False · 属于 additional-config.SchedulerConfig

是什么:均衡调度:把长短请求混合编排减少 decode 气泡。

深入:GLM/DSV 大 MoE 部署普遍开(GLM-5.1 案 yaml scheduler_config 显式开)。互斥:profiling_chunk_config 启用时与其冲突会 raise(L581-585)。env 版 VLLM_ASCEND_BALANCE_SCHEDULING 已删除(9bef60ad5)。

调优:在线混合负载可开;精度排障时先关(prefix 案候选 D)。

源码:ascend_config.py L1203 · 本地源码 · GitHub#L1203

recompute_scheduler_enable

类型/默认:False · 属于 additional-config.SchedulerConfig

是什么:重计算调度器:KV 放不下时对请求做重计算而非拒绝。

深入:07482eb32 main2main 0.27.1 引入;PD 分离场景尤为重要。

调优:超长上下文/资源紧张场景按需。

源码:ascend_config.py L1204 · 本地源码 · GitHub#L1204

动态负载均衡(DyntraLB / 批量作业 / 短请求优先)

dyntra_lb_config

类型/默认:enabled=False 等 8 字段 · 属于 additional-config.DyntraLBConfig

是什么:动态 DP 内负载均衡(ffa55704 DyntraLB)。

深入:字段:enabled/mode(dynamic)/start_step 250/end_step -1/bubble_threshold 5.0/long_req_block_threshold 700/dynamic_max_step 256/enable_diagnostics。

调优:多 DP 负载不均场景(GLM-5.1-198k 案的 DP4 17/9/2/3 请求分布就是不均的实例)。

源码:ascend_config.py L1156 · 本地源码 · GitHub#L1156

batch_job_sched_config

类型/默认:enabled=False 等 6 字段 · 属于 additional-config.BatchJobSchedConfig

是什么:批量离线作业调度。

深入:enabled/max_jobs 20/reserve_margin_blocks 2/reserve_max_blocks 8/low_available_tokens_threshold 4096/short_decode_token_threshold 32。

调优:离线批量场景。

源码:ascend_config.py L1098 · 本地源码 · GitHub#L1098

short_request_first_config

类型/默认:enabled=False 等 3 字段 · 属于 additional-config.ShortRequestFirstConfig

是什么:短请求优先。

深入:enabled/threshold 256/long_max_wait_ms 0.0。

调优:在线混合负载 P99 优化。

源码:ascend_config.py L1139 · 本地源码 · GitHub#L1139

专家负载均衡(EPLB)

eplb_config

类型/默认:9 字段 · 属于 additional-config.EplbConfig

是什么:dynamic_eplb(False)/expert_map_path(None)/expert_heat_collection_interval 600/algorithm_execution_interval 50/expert_map_record_path(None)/num_redundant_experts 0/eplb_policy_type 2/eplb_heat_collection_stage(all)/load_collection_phase(all)。

深入:EPLB 全家桶:静态映射、热度采集、均衡策略。0703581 集成上游 EPLB + d37529f 异步 EPLB 为窗口内同族提交。

调优:MoE 负载严重不均时再开。

源码:ascend_config.py L116 · 本地源码 · GitHub#L116

enable_force_eplb

类型/默认:False · 属于 additional-config.AscendConfig

是什么:强制启用 EPLB。

深入:互斥:与 dynamic_eplb 同时开启会 raise(L552-557)。

调优:默认关。

源码:ascend_config.py L395 · 本地源码 · GitHub#L395

量化 / 布局

weight_nz_mode

类型/默认:1 · 属于 additional-config.AscendConfig

是什么:权重 NZ 分形布局模式。

深入:0c4d84e7 从 env 收编进 pydantic。

调优:随 checkpoint 量化方案走。

源码:ascend_config.py L425 · 本地源码 · GitHub#L425

enable_kv_nz

类型/默认:False · 属于 additional-config.AscendConfig

是什么:KV cache NZ 分形布局。

深入:与 weight NZ 同族(128ecf890/035b8d407 同窗口 SFA 变更)。

调优:保持默认。

源码:ascend_config.py L391 · 本地源码 · GitHub#L391

enable_transpose_kv_cache_by_block

类型/默认:True · 属于 additional-config.AscendConfig

是什么:按块转置 KV cache。

深入:251334c8 从 env 收编进 pydantic。

调优:默认 True。

源码:ascend_config.py L424 · 本地源码 · GitHub#L424

combine_quant_mode

类型/默认:0 · 属于 additional-config.AscendConfig

是什么:组合量化模式(0/2/3/4)。

深入:2627f62 移除 mxfp shim 后内联。

调优:随量化方案自动。

源码:ascend_config.py L407 · 本地源码 · GitHub#L407

mega_moe_max_tokens

类型/默认:65536 · 属于 additional-config.AscendConfig

是什么:MegaMoE 单批 token 上限。

深入:L406 注释:同一值传给 dispatch_ffn_combine 的 max_output_size 和 CANN MegaMoe buffer 的 max_recv_token_num。实际每 rank 接收 token 数超过此值时 token 可能被截断导致精度劣化(注释原文'causing precision degradation')——这是一个有明确精度风险的容量参数。设太大会线性增加 workspace 显存。

调优:MoE 并行规模变化时需要重新评估此值。

源码:ascend_config.py L406 · 本地源码 · GitHub#L406

MLAPO(MLA 预处理优化)

enable_mlapo

类型/默认:True · 属于 additional-config.AscendConfig

是什么:MLAPO:MLA prefill 优化路径。

深入:draft 模型强制关闭(748acedf runner_type 检测);target 才生效。GLM-5.1/DSV 部署 yaml 均为 true;895ca078b 移除其 env 版。

调优:精度异常排障时可对照关。

源码:ascend_config.py L416 · 本地源码 · GitHub#L416

mlapo_keep_prefill_weights

类型/默认:False · 属于 additional-config.AscendConfig

是什么:prefill 权重常驻 NPU。

深入:L422 注释(ca5603874 新增):设 True 避免 PD 分离 kv_consumer D 节点上权重释放后本地 prefill 路径(recompute/fallback/preempt)崩溃(issue #11882)。用 NPU 显存换稳定性。

调优:PD 分离 D 节点部署时建议开。

源码:ascend_config.py L422 · 本地源码 · GitHub#L422

采样 / 投机(附加)

enable_reduce_sample

类型/默认:False · 属于 additional-config.AscendConfig

是什么:reduce 采样优化(实验特性)。

深入:ascend_config L789 打 experimental 警告;L793-802 两道互斥校验:①与 finegrained_tp_config.lmhead_tensor_parallel_size 互斥(raise)②PD 分离 kv_producer 场景不支持(raise)。运行时投机采样可能回退 non-reduce 路径(994765d7 sort-based top-k 为该路径的性能改造)。GLM-5.2 A5 参数 1 脚本里开着——prefix 案候选 B。

调优:排障先去;与 lmhead TP 不可同开。

源码:ascend_config.py L393 · 本地源码 · GitHub#L393

rejection_sampler_config

类型/默认:4 字段 · 属于 additional-config.RejectionSamplerConfig

是什么:enable_block_verify(False)/enable_entropy_verify(False)/posterior_threshold 0.95/posterior_alpha 0.4。

深入:rejection sampler 的验证配置(27a94764 概率化 rejection sampling、637417db synthetic RS on MRV2)。fallback 路径下 sort-based top-k(994765d7)会接管采样排序。

调优:RL/一致性场景。

源码:ascend_config.py L175 · 本地源码 · GitHub#L175

draft_window_size

类型/默认:None · 属于 additional-config.AscendConfig

是什么:draft 窗口大小。

深入:676e91b 支持 thinking budget 的投机解码相关。

调优:默认 None。

源码:ascend_config.py L396 · 本地源码 · GitHub#L396

精细并行(finegrained_tp_config)

finegrained_tp_config

类型/默认:5 字段 · 属于 additional-config.FinegrainedTPConfig

是什么:oproj TP / lmhead TP / embedding TP / mlp TP / olora TP,各自独立设置(默认 0 跟随主 TP)。

深入:lmhead TP 与 enable_reduce_sample 互斥(ascend_config 校验 raise,L793-797)。

调优:分层 TP/PP 组合场景。

源码:ascend_config.py L934 · 本地源码 · GitHub#L934

RL(rl_config)

rl_config

类型/默认:4 字段 · 属于 additional-config.RlConfig

是什么:enabled/sleep_mode_extra_cleanup/enable_training_consistency/enable_batch_invariant。

深入:RL rollout 与训练-推理一致性(2c72a26 统一 RL 配置)。

调优:RL 场景。

源码:ascend_config.py L199 · 本地源码 · GitHub#L199

KV 卸载(sparse_kv_offload_config)

sparse_kv_offload_config

类型/默认:5 字段 · 属于 additional-config.SparseKVOffloadConfig

是什么:enabled/topk_buffer_size 4096/dram_size_per_dp_GB 128/keep_device_kv_cache False/topk。

深入:稀疏 KV 卸载(528276dc9 引入、6b52b112 限内存、d6d93c9 恢复同步写)。互斥:与 enable_sparse_sfa_c8 同时启用会 raise(L845-849)——SFA 主 cache 不支持卸载。

调优:显存受限的长上下文。

源码:ascend_config.py L441 · 本地源码 · GitHub#L441

KVPP / xlite / 杂项

kvpp_config

类型/默认:— · 属于 additional-config.KVPPConfig

是什么:KV 并行 prefill 配置。

深入:ascend_config L89-90 校验:KVPP 仅支持 speculative method='mtp'(Step3.5 MTP)。

调优:KVPP 专用部署。

源码:ascend_config.py L0 · 本地源码 · GitHub#L0

xlite_graph_config

类型/默认:2 字段 · 属于 additional-config.XliteGraphConfig

是什么:xlite 后端图模式(enabled/full_mode)。

深入:xlite 为轻量适配层(3757271 支持 GLM/DSV3 系)。

调优:xlite 部署。

源码:ascend_config.py L1030 · 本地源码 · GitHub#L1030

ascend_log_path / dump_config_path / msmonitor_use_daemon

类型/默认:— · 属于 additional-config.AscendConfig

是什么:日志路径 / 配置 dump(L918-940:支持直接传 dict 自动物化到 .vllm_ascend/msprobe/)/ msMonitor 守护。

深入:排障与监控。dump_config 与 dump_config_path 互斥。

调优:按需。

源码:ascend_config.py L407 · 本地源码 · GitHub#L407

enable_cpu_binding

类型/默认:True · 属于 additional-config.AscendConfig

是什么:CPU 绑核。

深入:A5 参数 2 脚本显式开启。

调优:默认即可。

源码:ascend_config.py L387 · 本地源码 · GitHub#L387

enable_shared_expert_dp / enable_sp_by_pass

类型/默认:False · 属于 additional-config.AscendConfig

是什么:共享专家 DP(需 EP+TP>1,L590-594)/ SP 序列并行旁路(625823bf 临时开关)。

深入:默认关。

调优:按拓扑。

源码:ascend_config.py L444 · 本地源码 · GitHub#L444

pd_tp_ratio / pd_head_ratio / num_head_replica

类型/默认:1 · 属于 additional-config.AscendConfig

是什么:PD 分离 TP 比 / head 比 / head 副本数。

深入:PD 分离部署拓扑参数。

调优:按 PD 拓扑。

源码:ascend_config.py L448 · 本地源码 · GitHub#L448

pa_shape_list / mix_placement

类型/默认:[]/False · 属于 additional-config.AscendConfig

是什么:PA 形状预注册 / 混合放置(互斥:mix_placement 与 shared_expert_dp 或 multistream_overlap 冲突会 raise,L878-881)。

深入:按需。

调优:

源码:ascend_config.py L407 · 本地源码 · GitHub#L407

层 5 · 环境变量

VLLM_ASCEND_ENABLE_FLASHCOMM1

状态:已废弃(92616f3a6 移除 FlashComm v1)。设置只产生 deprecate 警告——GLM/DSV 老 yaml 里的常见残留,可直接删除。

VLLM_ASCEND_BALANCE_SCHEDULING

状态:已迁移至 scheduler_config.enable_balance_scheduling(9bef60ad5),env 版删除。

VLLM_ASCEND_ROPE_UB_SIZE_KB / VLLM_ASCEND_ENABLE_BATCH_MEMCPY

内核微调:RoPE UB 空间、批量拷贝开关。默认即可。

VLLM_EXECUTE_MODEL_TIMEOUT_SECONDS

execute_model RPC 超时。需 ≥ HCCL 算子时限(1836 秒,platform.py 会校验并提示)。198k 部署脚本设 18000/30000。

HCCL 族:HCCL_BUFFSIZE / HCCL_OP_EXPANSION_MODE=AIV / HCCL_INTRA_PCIE_ENABLE / HCCL_INTRA_ROCE_ENABLE / HCCL_ALGO / HCCL_IF_IP / GLOO_SOCKET_IFNAME / TP_SOCKET_IFNAME / HCCL_SOCKET_IFNAME

HCCL 通信族调优:buffer 大小(1024/300)、算子展开模式、卡间 PCIe/ROCE 选择、算法与网卡指定。PD/多机部署按拓扑配置。

PYTORCH_NPU_ALLOC_CONF=expandable_segments / TASK_QUEUE_ENABLE / ASCEND_LAUNCH_BLOCKING / ASCEND_RT_VISIBLE_DEVICES

内存分配器(可扩展段)/ 算子下发队列 / 同步调试(置 1 拖性能仅排障)/ 可见 NPU 序列。

编译体系 · 三条编译链与毕昇编译器

链 1 · C++ torch 扩展:csrc/torch_binding.cpp 等(C++17,CMake + gcc/clang)在 pip 构建时编译为 vllm_ascend_C,注册 torch.ops._C_ascend.*(host 侧算子封装,如 batch_matmul_transpose 调用入口)。

链 2 · AscendC 算子:csrc/**/op_kernel/*.cpp(device kernel)经 csrc/build_aclnn.sh 用 毕昇编译器 bisheng(随 CANN 包发布,build.sh 里 which bisheng 检查, 报错原文"bisheng compilation tool not found, Please check whether the cann package")编译成 ACLNN 算子,依赖 catlass(子模块)。 只有源码构建算子时才需要;pip 官方 wheel 已预编译。头号嫌疑算子 batch_matmul_transpose 的实现即在此链 (csrc/batch_matmul_transpose/op_kernel + op_host/tiling),08-19 的 11921514a 曾整体移除该算子。

链 3 · Triton kernel:triton-ascend==3.2.2(requirements 固定)运行时 JIT 编译 vllm_ascend/ops/triton/*.py(dsa_cp、lightning_indexer、slot_mapping、eplb、compute_slot_mapping 等)。

链编译器触发产物与本案关系
1gcc/clang(CMake)pip 构建vllm_ascend_C—
2bisheng(CANN 内)csrc/build_aclnn.shACLNN 算子二进制★头号嫌疑算子的宿主链
3triton-ascend JIT运行时Triton kernel算子融合开关(fuse_norm_quant 等)作用层

版本错配提醒:Python 侧分支(sfa_v1.py 调用)与 C++ 产物(.so)由不同时间点构建时,可能出现“Python 以为算子在、C++ 已删”的静默回退(GLM 案 prefix 0% 的背景之一)。自编译部署务必保证 Python 与 csrc 同一 commit。

使用建议:调优顺序 = 层4(业务开关)→ 层2(投机策略)→ 层1(并行/批参数)→ 层5(通信/内存微调)→ 层3(图模式)。 任何一次只改一个变量;精度对照必须同 seed、同数据集、同判分规则。

code-docs/parameters.html · 2026-09-14 · 数据:ascend_config_fields.json · 关联:glm51 案件 / dsv32 案件 / pr_learn/prefix_cache_rca_report.html

首页