Files
xc-llm-ascend/docs/source/user_guide/configuration/additional_config.md
CaranLic 168ad600b5 [main] add pd transfer for ascend scheduler (#2753)
### What this PR does / why we need it?
For offline scenarios, adjust the scheduling process to prioritize the
prefill phase of all requests, then process the decode phase of all
requests.

### How was this patch tested?

```
max_num_seqs=24,
additional_config={
    "ascend_scheduler_config":{
        "enabled": True,
        "enable_pd_transfer": True,
        "decode_max_num_seqs": 24,
        "enable_chunked_prefill": False
    }
},
```
| input | output | num prompts | max_num_seqs | dp | tp | scheduler |
tps |
| ------ | ------ | ---------- | ---------------- | ---- | ---- |
---------------- | --------------- |
| dapo-math-17K | 2K | 384 | 24 | 2 | 1 | v1 | 234.06 |
| dapo-math-17K | 2K | 384 | 24 | 2 | 1 | pd transfer | 239.59(+2.4%) |
| dapo-math-17K| 2K | 384 | 24 | 4 | 1 | v1 | 222.85 |
| dapo-math-17K| 2K | 384 | 24 | 4 | 1 | pd transfer | 225.81(+1.3%) |


- vLLM version: v0.10.1.1
- vLLM main:
6fb2788163

---------

Signed-off-by: CaranLic <740821011@qq.com>
2025-09-10 08:46:39 +08:00

4.7 KiB

Additional Configuration

additional configuration is a mechanism provided by vLLM to allow plugins to control inner behavior by their own. 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 the additional configuration options available in vLLM Ascend:

Name Type Default Description
torchair_graph_config dict {} The config options for torchair graph mode
ascend_scheduler_config dict {} The config options for ascend scheduler
refresh bool false Whether to refresh global ascend config content. This value is usually used by rlhf or ut/e2e test case.
expert_map_path str None When using expert load balancing for the MOE model, an expert map path needs to be passed in.
chunked_prefill_for_mla bool False Whether to enable the fused operator-like chunked_prefill.
enable_prefetch bool False Whether to enable weight prefetch.
kv_cache_dtype str None When using the kv cache quantization method, kv cache dtype needs to be set, currently only int8 is supported.
enable_shared_expert_dp bool False When the shared expert in DP, it has better performance but consumes more memory. Currently only DeepSeek series models are supported to use.
lmhead_tensor_parallel_size int None The custom tensor parallel size of lmhead.
oproj_tensor_parallel_size int None The custom tensor parallel size of oproj.

The details of each config option are as follows:

torchair_graph_config

Name Type Default Description
enabled bool False Whether to enable torchair graph mode. Currently only DeepSeek series models and PanguProMoE are supported to use torchair graph mode
mode str None When using reduce-overhead mode for torchair, mode needs to be set
enable_multistream_mla bool False Whether to put vector ops of MLA to another stream. This option only takes effects on models using MLA (e.g., DeepSeek).
enable_multistream_moe bool False Whether to enable multistream shared expert. This option only takes effects on DeepSeek moe models.
enable_view_optimize bool True Whether to enable torchair view optimization
use_cached_graph bool False Whether to use cached graph
graph_batch_sizes list[int] [] The batch size for torchair graph cache
graph_batch_sizes_init bool False Init graph batch size dynamically if graph_batch_sizes is empty
enable_kv_nz bool False Whether to enable kvcache NZ layout. This option only takes effects on models using MLA (e.g., DeepSeek).

ascend_scheduler_config

Name Type Default Description
enabled bool False Whether to enable ascend scheduler for V1 engine
enable_pd_transfer bool False Whether to enable pd transfer. When using it, decode is started only when prefill of all requests is done. This option only takes effects on offline inference.
decode_max_num_seqs int 0 Whether to change max_num_seqs of decode phase when enable pd transfer. This option only takes effects when enable_pd_transfer is True.

ascend_scheduler_config also support the options from vllm scheduler config. For example, you can add enable_chunked_prefill: True to ascend_scheduler_config as well.

Example

An example of additional configuration is as follows:

{
    "torchair_graph_config": {
        "enabled": True,
        "use_cached_graph": True,
        "graph_batch_sizes": [1, 2, 4, 8],
        "graph_batch_sizes_init": False,
        "enable_multistream_moe": False,
        "enable_kv_nz": False
    },
    "ascend_scheduler_config": {
        "enabled": True,
        "enable_chunked_prefill": True,
    },
    "refresh": False,
}