Data Parallel
DP(Data Parallel,数据并行)将推理请求划分为多个批次,并将每个批次分配给不同的设备进行并行处理,每部分设备都并行处理不同批次的数据,然后将结果合并。
限制与约束
- Atlas 800I A2 推理服务器和Atlas 800I A3 超节点服务器支持此特性。
- 所有模型的Attention模块、MLP模块,以及DeepSeek-V2模型的LM Head模块支持数据并行。
- 数据并行支持同张量并行在同一模块上叠加使用。
参数说明
开启数据并行特性,需要配置的补充参数如表1所示。
配置项 |
取值类型 |
取值范围 |
配置说明 |
|---|---|---|---|
tp |
int32_t |
整网张量并行数。 选填,默认值为设置的worldSize参数值。 |
|
dp |
int32_t |
Attention模块中的数据并行数。 选填,默认值:-1,表示不执行数据并行。 |
|
cp |
int32_t |
选填,默认值:1,表示不执行上下文并行。 Attention模块中的上下文并行数。 |
|
sp |
int32_t |
选填,默认值:1,表示不执行序列并行。 Attention模块中的序列并行数。 |
不配置以上补充参数时,推理过程中默认使用tp和moe_tp并行方式。
- 设置优化显存分配的环境变量
1 2
export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True export ATB_WORKSPACE_MEM_ALLOC_ALG_TYPE=3
- 打开Server的config.json文件。
1 2
cd {MindIE安装目录}/latest/mindie-service/ vi conf/config.json
- 配置服务化参数。在Server的config.json文件按照表1添加相应参数,服务化参数说明请参见配置参数说明(服务化)章节,参数配置示例如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
"ModelConfig" : [ { "modelInstanceType" : "Standard", "modelName" : "deepseekv2", "modelWeightPath" : "/home/data/DeepSeek-V2-Chat-W8A8-BF16/", "worldSize" : 8, "cpuMemSize" : 5, "npuMemSize" : 1, "backendType" : "atb", "trustRemoteCode" : false, "tp": 1, "dp": 8, "cp": 1, "sp": 1 } ]
以上参数设置表明使用8卡进行推理,Attention模块使用数据并行,MoE模型使用张量并行。
- 启动服务。
1./bin/mindieservice_daemon
- 发送推理请求。具体请参考《MindIE Motor开发指南》中的“集群管理组件 > 调度器(Coordinator) > RESTful接口API > 用户侧接口 > OpenAI推理接口”章节。
父主题: 并行策略