Files
project_6/upstream_ref/xllm/docs/zh/features/multi_streams.md

29 lines
1.3 KiB
Markdown
Raw Permalink Normal View History

# 多流并行
## 背景
大模型分布式推理场景中需要引入额外的通信操作将不同设备上的计算结果聚合在一起。以Deepseek这类大规模的MoE模型为例分布式规模通常较大通信开销也会随之变大。计算和通信都采用同一个stream的话在通信的同时device计算资源会出现浪费一直等待通信完成才能开始后面的计算。
## 功能介绍
xLLM在模型图层支持了多流并行功能将输入的batch拆分成2个micro batches一个流执行一个micro batch的计算操作另一个流执行另一个micro batch的通信操作计算和通信同时执行从而掩盖通信开销。
![异步调度](../../assets/multi_streams_architecture.jpg)
## 使用方式
xLLM中提供了gflags参数`enable_multi_stream_parallel`默认false如需开启在xLLM的服务启动脚本中设置为true即可示例如下
```shell
--enable_multi_stream_parallel=true
```
## 性能效果
prefill双流并行开启后基本可掩盖75以上的通信开销在DeepSeek-R1模型上只输出1个token的情况下
- TTFT下降 **7%**
- 吞吐 **提升7%**
!!! warning "注意"
双流并行目前只支持prefill阶段请求输入越长收益越大。
目前仅支持DeepSeek、Qwen3 dense非MoE模型。