Оптимизация пропускной способности Qwen3-30B-A3B на ASCEND 910B NPU Вывод
Рекомендуемая конфигурация для оптимизации пропускной способности Qwen3-30B-A3B на ASCEND 910B NPU:
Команда обслуживания модели # This is a simplified vLLM-like command. GPUStack maps arguments to the
# corresponding MindIE JSON configuration and runs with mindieservice_daemon.
mindie serve Qwen/Qwen3-30B-A3B
Сравнение результатов бенчмарков до и после оптимизации:
Сценарий бенчмарка базовая конфигурация (vLLM без оптимизации) После оптимизации ShareGPT Общий TPS: 1227.19 Среднее TPOT(ms): 318.03 Общий TPS: 4712.47 (+284.0%) Среднее TPOT(ms): 964.45 Короткий запрос Общий TPS: 5340.68 Среднее TPOT(ms): 312.49 Общий TPS: 15040.15 (+181.6%) Среднее TPOT(ms): 1249.72 Запрос средней длины Общий TPS: 7843.85 Среднее TPOT(ms): 344.86 Общий TPS: 15591.71 (+98.8%) Среднее TPOT(ms): 194.54 Длинный запрос Общий TPS: 5881.36 Среднее TPOT(ms): 277.5 Общий TPS: 13362.49 (+127.2%) Среднее TPOT(ms): 130.97 Очень длинный запрос Общий TPS: 3704.57 Среднее TPOT(ms): 503.84 Общий TPS: 10830.52 (+192.4%) Среднее TPOT(ms): 242.08
Примечание
Наши бенчмарки не охватывают все возможные сочетания оптимизаций. Например, отправной точкой дальнейшей настройки становится движок инференса с лучшей производительностью при настройках по умолчанию. Такое отсечение вариантов даёт локальный оптимум, который может не совпадать с глобальным. Есть и другие методы оптимизации, зависящие от сценария использования: максимальный размер батча, настройки планировщика, расширенный KV-кэш, CUDA graph, Torch Compile и т. д. Выводы этого документа могут служить отправной точкой для более целенаправленной оптимизации. Тесты проводились на определённых аппаратных и программных конфигурациях. Развитие движков инференса может привести к новым выводам. Если что-то упущено или требуется обновление с учётом новых изменений, сообщите нам .
Цель оптимизации Высокая пропускная способность при высокой конкурентности запросов.
Условия эксперимента Модель Qwen/Qwen3-30B-A3B
Оборудование Один Ascend 910B NPU.
Версия движка vLLM-Ascend: v0.9.1 MindIE: 2.1RC1 Набор данных бенчмарка ShareGPT Случайный набор данных с различной длиной последовательностей: Очень длинный запрос: 32000 входных токенов, 100 выходных токенов Длинный запрос: 4000 входных токенов, 200 выходных токенов Запрос средней длины: 2000 входных токенов, 100 выходных токенов Короткий запрос: 128 входных токенов, 4 выходных токенов Скрипт бенчмарка Для оценки производительности модели используется vLLM bench CLI . Бенчмарк запускается следующей командой:
# Prepare the ShareGPT dataset
wget https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json
# Benchmark on ShareGPT dataset
vllm bench serve --model Qwen/Qwen3-30B-A3B --backend openai-chat --endpoint /v1/chat/completions --dataset-name sharegpt --dataset-path ShareGPT_V3_unfiltered_cleaned_split.json --num-prompts 1000
# Benchmark on random dataset (fixed seed for reproducibility)
vllm bench serve --model Qwen/Qwen3-30B-A3B --backend openai-chat --endpoint /v1/chat/completions --dataset-name random --random-input-len 4000 --random-output-len 200 --num-prompts 500 --seed 42
Результаты эксперимента 1. Выбор движка инференса vLLM
Скрипт обслуживания модели vllm serve Qwen/Qwen3-30B-A3B -tp 2
Результат бенчмарка ============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 341.49
Total input tokens: 217393
Total generated tokens: 201675
Request throughput (req/s): 2.93
Output token throughput (tok/s): 590.58
Peak output token throughput (tok/s): 1283.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 1227.19
---------------Time to First Token----------------
Mean TTFT (ms): 91791.47
Median TTFT (ms): 85430.73
P99 TTFT (ms): 217017.19
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 318.03
Median TPOT (ms): 326.12
P99 TPOT (ms): 376.59
---------------Inter-token Latency----------------
Mean ITL (ms): 302.02
Median ITL (ms): 245.14
P99 ITL (ms): 557.35
==================================================
MindIE
Скрипт обслуживания модели # This is a simplified vLLM-like command. GPUStack maps arguments to the
# corresponding MindIE JSON configuration and runs with mindieservice_daemon.
mindie serve Qwen3-30B-A3B
Результат бенчмарка ============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 88.95
Total input tokens: 217393
Total generated tokens: 201779
Request throughput (req/s): 11.24
Output token throughput (tok/s): 2268.46
Peak output token throughput (tok/s): 3394.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 4712.47
---------------Time to First Token----------------
Mean TTFT (ms): 6315.01
Median TTFT (ms): 6421.94
P99 TTFT (ms): 11305.60
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 964.45
Median TPOT (ms): 242.38
P99 TPOT (ms): 8546.71
---------------Inter-token Latency----------------
Mean ITL (ms): 183.79
Median ITL (ms): 60.42
P99 ITL (ms): 74.07
==================================================
Результат: MineIE (4712.47 tok/s) > vLLM (1227.19 tok/s)
2. Включение кэша префиксов в MindIE Скрипт обслуживания модели # This is a simplified vLLM-like command. GPUStack maps arguments to the
# corresponding MindIE JSON configuration and runs with mindieservice_daemon.
mindie serve Qwen3-30B-A3B --enable-prefix-caching
Результат бенчмарка # Crash, not supported for the model
3. Quantization в MindIE Скрипт обслуживания модели # This is a simplified vLLM-like command. GPUStack maps arguments to the
# corresponding MindIE JSON configuration and runs with mindieservice_daemon.
mindie serve vllm-ascend/Qwen3-8B-W8A8
Результат бенчмарка ============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration (s): 92.29
Total input tokens: 217393
Total generated tokens: 201586
Request throughput (req/s): 10.84
Output token throughput (tok/s): 2184.30
Peak output token throughput (tok/s): 3392.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 4539.88
---------------Time to First Token----------------
Mean TTFT (ms): 5588.80
Median TTFT (ms): 4708.65
P99 TTFT (ms): 18446.14
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 988.22
Median TPOT (ms): 240.48
P99 TPOT (ms): 11241.85
---------------Inter-token Latency----------------
Mean ITL (ms): 195.17
Median ITL (ms): 62.16
P99 ITL (ms): 226.37
==================================================
Сводка методов оптимизации Метод оптимизации Прирост пропускной способности Выбор движка +284.0% Кэширование префиксов - Quantization -
Другие сценарии бенчмарка Мы дополнительно проверили оптимизированную конфигурацию на разных нагрузках, чтобы оценить её обобщаемость.
Базовый скрипт обслуживания модели vllm serve Qwen/Qwen3-30B-A3B -tp 2
Результаты базового бенчмарка # random 32K input
============ Serving Benchmark Result ============
Successful requests: 100
Benchmark duration ( s) : 866 .50
Total input tokens: 3200000
Total generated tokens: 10000
Request throughput ( req/s) : 0 .12
Output token throughput ( tok/s) : 11 .54
Peak output token throughput ( tok/s) : 117 .00
Peak concurrent requests: 100 .00
Total Token throughput ( tok/s) : 3704 .57
---------------Time to First Token----------------
Mean TTFT ( ms) : 442404 .81
Median TTFT ( ms) : 440136 .40
P99 TTFT ( ms) : 853640 .24
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 503 .84
Median TPOT ( ms) : 498 .47
P99 TPOT ( ms) : 998 .84
---------------Inter-token Latency----------------
Mean ITL ( ms) : 498 .80
Median ITL ( ms) : 125 .10
P99 ITL ( ms) : 177 .10
==================================================
# random 4K input
============ Serving Benchmark Result ============
Successful requests: 500
Benchmark duration ( s) : 357 .03
Total input tokens: 2000000
Total generated tokens: 99842
Request throughput ( req/s) : 1 .40
Output token throughput ( tok/s) : 279 .64
Peak output token throughput ( tok/s) : 864 .00
Peak concurrent requests: 500 .00
Total Token throughput ( tok/s) : 5881 .36
---------------Time to First Token----------------
Mean TTFT ( ms) : 156755 .15
Median TTFT ( ms) : 163311 .37
P99 TTFT ( ms) : 314736 .64
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 277 .51
Median TPOT ( ms) : 273 .18
P99 TPOT ( ms) : 452 .09
---------------Inter-token Latency----------------
Mean ITL ( ms) : 276 .20
Median ITL ( ms) : 243 .71
P99 ITL ( ms) : 499 .20
==================================================
# random 2K input
============ Serving Benchmark Result ============
Successful requests: 500
Benchmark duration ( s) : 133 .86
Total input tokens: 1000000
Total generated tokens: 50000
Request throughput ( req/s) : 3 .74
Output token throughput ( tok/s) : 373 .52
Peak output token throughput ( tok/s) : 1080 .00
Peak concurrent requests: 500 .00
Total Token throughput ( tok/s) : 7843 .85
---------------Time to First Token----------------
Mean TTFT ( ms) : 56434 .48
Median TTFT ( ms) : 62622 .42
P99 TTFT ( ms) : 117368 .72
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 344 .86
Median TPOT ( ms) : 350 .15
P99 TPOT ( ms) : 667 .15
---------------Inter-token Latency----------------
Mean ITL ( ms) : 341 .55
Median ITL ( ms) : 240 .26
P99 ITL ( ms) : 1189 .67
==================================================
# random 128 input
============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration ( s) : 24 .72
Total input tokens: 128000
Total generated tokens: 4000
Request throughput ( req/s) : 40 .46
Output token throughput ( tok/s) : 161 .84
Peak output token throughput ( tok/s) : 768 .00
Peak concurrent requests: 1000 .00
Total Token throughput ( tok/s) : 5340 .68
---------------Time to First Token----------------
Mean TTFT ( ms) : 19130 .06
Median TTFT ( ms) : 17860 .56
P99 TTFT ( ms) : 23751 .62
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 312 .49
Median TPOT ( ms) : 308 .02
P99 TPOT ( ms) : 338 .42
---------------Inter-token Latency----------------
Mean ITL ( ms) : 234 .36
Median ITL ( ms) : 269 .04
P99 ITL ( ms) : 465 .28
==================================================
# ShareGPT batch size 4
============ Serving Benchmark Result ============
Successful requests: 1000
Maximum request concurrency: 4
Benchmark duration ( s) : 6271 .85
Total input tokens: 217393
Total generated tokens: 201847
Request throughput ( req/s) : 0 .16
Output token throughput ( tok/s) : 32 .18
Peak output token throughput ( tok/s) : 40 .00
Peak concurrent requests: 7 .00
Total Token throughput ( tok/s) : 66 .84
---------------Time to First Token----------------
Mean TTFT ( ms) : 359 .99
Median TTFT ( ms) : 357 .20
P99 TTFT ( ms) : 445 .74
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 122 .71
Median TPOT ( ms) : 122 .70
P99 TPOT ( ms) : 134 .22
---------------Inter-token Latency----------------
Mean ITL ( ms) : 122 .00
Median ITL ( ms) : 120 .56
P99 ITL ( ms) : 236 .94
==================================================
Скрипт обслуживания после оптимизации # This is a simplified vLLM-like command. GPUStack maps arguments to the
# corresponding MindIE JSON configuration and runs with mindieservice_daemon.
mindie serve Qwen3-30B-A3B
Результаты бенчмарка после оптимизации # random 32K input
============ Serving Benchmark Result ============
Successful requests: 100
Benchmark duration ( s) : 296 .36
Total input tokens: 3200000
Total generated tokens: 9693
Request throughput ( req/s) : 0 .34
Output token throughput ( tok/s) : 32 .71
Peak output token throughput ( tok/s) : 330 .00
Peak concurrent requests: 100 .00
Total Token throughput ( tok/s) : 10830 .52
---------------Time to First Token----------------
Mean TTFT ( ms) : 147133 .58
Median TTFT ( ms) : 147851 .57
P99 TTFT ( ms) : 289974 .37
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 242 .08
Median TPOT ( ms) : 232 .74
P99 TPOT ( ms) : 741 .49
---------------Inter-token Latency----------------
Mean ITL ( ms) : 225 .71
Median ITL ( ms) : 46 .46
P99 ITL ( ms) : 56 .81
==================================================
# random 4K input
============ Serving Benchmark Result ============
Successful requests: 500
Benchmark duration ( s) : 157 .15
Total input tokens: 2000000
Total generated tokens: 99961
Request throughput ( req/s) : 3 .18
Output token throughput ( tok/s) : 636 .07
Peak output token throughput ( tok/s) : 2142 .00
Peak concurrent requests: 500 .00
Total Token throughput ( tok/s) : 13362 .49
---------------Time to First Token----------------
Mean TTFT ( ms) : 70716 .71
Median TTFT ( ms) : 74982 .88
P99 TTFT ( ms) : 148427 .09
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 130 .97
Median TPOT ( ms) : 134 .98
P99 TPOT ( ms) : 208 .16
---------------Inter-token Latency----------------
Mean ITL ( ms) : 130 .95
Median ITL ( ms) : 63 .84
P99 ITL ( ms) : 489 .52
==================================================
# random 2K input
============ Serving Benchmark Result ============
Successful requests: 500
Benchmark duration ( s) : 67 .34
Total input tokens: 1000000
Total generated tokens: 49975
Request throughput ( req/s) : 7 .42
Output token throughput ( tok/s) : 742 .11
Peak output token throughput ( tok/s) : 3000 .00
Peak concurrent requests: 500 .00
Total Token throughput ( tok/s) : 15591 .71
---------------Time to First Token----------------
Mean TTFT ( ms) : 29078 .68
Median TTFT ( ms) : 32203 .66
P99 TTFT ( ms) : 62077 .78
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 194 .54
Median TPOT ( ms) : 192 .07
P99 TPOT ( ms) : 358 .38
---------------Inter-token Latency----------------
Mean ITL ( ms) : 194 .46
Median ITL ( ms) : 68 .54
P99 ITL ( ms) : 4496 .71
==================================================
# random 128 input
============ Serving Benchmark Result ============
Successful requests: 1000
Benchmark duration ( s) : 8 .78
Total input tokens: 128000
Total generated tokens: 4000
Request throughput ( req/s) : 113 .94
Output token throughput ( tok/s) : 455 .76
Peak output token throughput ( tok/s) : 2511 .00
Peak concurrent requests: 1000 .00
Total Token throughput ( tok/s) : 15040 .15
---------------Time to First Token----------------
Mean TTFT ( ms) : 4491 .88
Median TTFT ( ms) : 4467 .47
P99 TTFT ( ms) : 7693 .24
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 1249 .72
Median TPOT ( ms) : 1258 .92
P99 TPOT ( ms) : 2252 .88
---------------Inter-token Latency----------------
Mean ITL ( ms) : 1249 .72
Median ITL ( ms) : 54 .67
P99 ITL ( ms) : 6378 .56
==================================================
# ShareGPT batch size 4
============ Serving Benchmark Result ============
Successful requests: 1000
Maximum request concurrency: 4
Benchmark duration ( s) : 1292 .33
Total input tokens: 217393
Total generated tokens: 201773
Request throughput ( req/s) : 0 .77
Output token throughput ( tok/s) : 156 .13
Peak output token throughput ( tok/s) : 200 .00
Peak concurrent requests: 9 .00
Total Token throughput ( tok/s) : 324 .35
---------------Time to First Token----------------
Mean TTFT ( ms) : 112 .38
Median TTFT ( ms) : 111 .05
P99 TTFT ( ms) : 154 .06
-----Time per Output Token ( excl. 1st token) ------
Mean TPOT ( ms) : 25 .42
Median TPOT ( ms) : 24 .47
P99 TPOT ( ms) : 35 .05
---------------Inter-token Latency----------------
Mean ITL ( ms) : 25 .08
Median ITL ( ms) : 23 .05
P99 ITL ( ms) : 79 .54
==================================================