Files
xc-llm-ascend/docs/source/user_guide/configuration/additional_config.md
whx 16c879cdf7 [Triton][Config] Add muls_add triton kernel and refactor AscendCompilationConfig (#5518)
### What this PR does / why we need it?
Add muls_add triton kernel with related fusion pass. What's more, this
PR refactors `AscendCompilationConfig` and delete `NpugraphExConfig`.

### Does this PR introduce _any_ user-facing change?
None

### How was this patch tested?
CI passed with new added test.


- vLLM version: v0.13.0
- vLLM main:
45c1ca1ca1

---------

Signed-off-by: whx-sjtu <2952154980@qq.com>
2026-03-02 17:54:25 +08:00

7.9 KiB

Additional Configuration

Additional configuration is a mechanism provided by vLLM to allow plugins to control internal behavior by themselves. VLLM Ascend uses this mechanism to make the project more flexible.

How to use

With either online mode or offline mode, users can use additional configuration. Take Qwen3 as an example:

Online mode:

vllm serve Qwen/Qwen3-8B --additional-config='{"config_key":"config_value"}'

Offline mode:

from vllm import LLM

LLM(model="Qwen/Qwen3-8B", additional_config={"config_key":"config_value"})

Configuration options

The following table lists additional configuration options available in vLLM Ascend:

Name Type Default Description
xlite_graph_config dict {} Configuration options for Xlite graph mode
weight_prefetch_config dict {} Configuration options for weight prefetch
finegrained_tp_config dict {} Configuration options for module tensor parallelism
ascend_compilation_config dict {} Configuration options for ascend compilation
eplb_config dict {} Configuration options for ascend compilation
refresh bool false Whether to refresh global Ascend configuration content. This is usually used by rlhf or ut/e2e test case.
dump_config_path str None Configuration file path for msprobe dump(eager mode).
enable_async_exponential bool False Whether to enable asynchronous exponential overlap. To enable asynchronous exponential, set this config to True.
enable_shared_expert_dp bool False When the expert is shared in DP, it delivers better performance but consumes more memory. Currently only DeepSeek series models are supported.
multistream_overlap_shared_expert bool False Whether to enable multi-stream shared expert. This option only takes effect on MoE models with shared experts.
multistream_overlap_gate bool False Whether to enable multi-stream overlap gate. This option only takes effect on MoE models with shared experts.
recompute_scheduler_enable bool False Whether to enable recompute scheduler.
enable_cpu_binding bool True Whether to enable CPU binding. Only takes effect on ARM CPUs; when enabled, A3 uses NUMA-balanced binding strategy and other device types use NUMA-affinity's.
SLO_limits_for_dynamic_batch int -1 SLO limits for dynamic batch. This is new scheduler to support dynamic batch feature
enable_npugraph_ex bool False Whether to enable npugraph_ex graph mode.
pa_shape_list list [] The custom shape list of page attention ops.
enable_kv_nz bool False Whether to enable KV cache NZ layout. This option only takes effects on models using MLA (e.g., DeepSeek).
layer_sharding dict {} Configuration options for Layer Sharding Linear
sp_threshold int 1000 For dense models, only num_tokens > threshold will enable sequence parallelism.

The details of each configuration option are as follows:

xlite_graph_config

Name Type Default Description
enabled bool False Whether to enable Xlite graph mode. Currently only Llama, Qwen dense series models, and Qwen3-VL are supported.
full_mode bool False Whether to enable Xlite for both the prefill and decode stages. By default, Xlite is only enabled for the decode stage.

weight_prefetch_config

Name Type Default Description
enabled bool False Whether to enable weight prefetch.
prefetch_ratio dict {"attn": {"qkv": 1.0, "o": 1.0}, "moe": {"gate_up": 0.8}, "mlp": { "gate_up": 1.0, "down": 1.0}} Prefetch ratio of each weight.

finegrained_tp_config

Name Type Default Description
lmhead_tensor_parallel_size int 0 The custom tensor parallel size of lm_head.
oproj_tensor_parallel_size int 0 The custom tensor parallel size of o_proj.
embedding_tensor_parallel_size int 0 The custom tensor parallel size of embedding.
mlp_tensor_parallel_size int 0 The custom tensor parallel size of mlp.

ascend_compilation_config

Name Type Default Description
enable_npugraph_ex bool True Whether to enable npugraph_ex backend.
enable_static_kernel bool False Whether to enable static kernel. Suitable for scenarios where shape changes are minimal and some time is available for static kernel compilation.
fuse_norm_quant bool True Whether to enable fuse_norm_quant pass.
fuse_qknorm_rope bool True Whether to enable fuse_qknorm_rope pass. If Triton is not in the environment, set it to False.
fuse_allreduce_rms bool False Whether to enable fuse_allreduce_rms pass. It's set to False because of conflict with SP.
fuse_muls_add bool True Whether to enable fuse_muls_add pass.

eplb_config

Name Type Default Description
dynamic_eplb bool False Whether to enable dynamic EPLB.
expert_map_path str None When using expert load balancing for an MoE model, an expert map path needs to be passed in.
expert_heat_collection_interval int 400 Forward iterations when EPLB begins.
algorithm_execution_interval int 30 The forward iterations when the EPLB worker will finish CPU tasks.
expert_map_record_path str None Save the expert load calculation results to a new expert table in the specified directory.
num_redundant_experts int 0 Specify redundant experts during initialization.

Example

An example of additional configuration is as follows:

{
    "weight_prefetch_config": {
        "enabled": True,
        "prefetch_ratio": {
            "attn": {
                "qkv": 1.0,
                "o": 1.0,
            },
            "moe": {
                "gate_up": 0.8
            },
            "mlp": {
                "gate_up": 1.0,
                "down": 1.0
            }
        },
    },
    "finegrained_tp_config": {
        "lmhead_tensor_parallel_size": 8,
        "oproj_tensor_parallel_size": 8,
        "embedding_tensor_parallel_size": 8,
        "mlp_tensor_parallel_size": 8,
    },
    "enable_kv_nz": False,
    "multistream_overlap_shared_expert": True,
    "refresh": False
}