昇腾社区首页
中文
注册

数据并行特性介绍

数据并行将推理请求划分为多个批次,并将每个批次分配给不同的设备进行并行处理,每张计算卡都并行处理不同批次的数据,然后将结果合并。

限制与约束

  • Atlas 800I A2 推理服务器支持此特性。
  • 仅DeepSeek V2模型的Attention模块支持数据并行。
  • 数据并行不支持同张量并行在同一模块上叠加使用。
  • 数据并行不支持和PD分离、并行解码、SplitFuse以及Prefix Cache特性同时开启。

    开启数据并行特性,需要配置的补充参数如表1所示。

    表1 数据并行特性补充参数:ModelDeployConfig中的ModelConfig参数

    配置项

    取值类型

    取值范围

    配置说明

    tp

    int32_t

    • 未配置dp或dp值为-1时:取值为worldSize参数值。
    • 与dp配合使用时:tp*dp的值必须等于worldSize参数值。

      例:若worldSize为8,dp配置为2,则tp的值只能配置为4。

    整网张量并行数。

    选填,默认值为设置的worldSize参数值。

    dp

    int32_t

    • 不执行该并行方式时:-1
    • 与tp配合使用时:dp*tp的值必须等于worldSize参数值。

      例:若worldSize为8,tp配置为4,则dp的值只能配置为2。

    Attention模块中的数据并行数。

    选填,默认值:-1,表示不执行数据并行。

    moe_tp

    int32_t

    • 未配置moe_ep或moe_ep值为-1时:取值为worldSize参数值。
    • 与moe_ep配合使用时:moe_tp*moe_ep的值必须等于worldSize参数值。

      例:若worldSize为8,moe_ep配置为2,则moe_tp的值只能配置为4。

    稀疏模型MoE模块中的张量并行数。

    选填,默认值为设置的worldSize值。

    若同时配置"tp"参数和"moe_tp"参数,则"moe_tp"参数优先级高于"tp"参数。

    moe_ep

    int32_t

    • 不执行该并行方式时:-1
    • 与moe_tp配合使用时:moe_ep*moe_tp的值必须等于worldSize参数值。

      例:若worldSize为8,moe_tp配置为4,则moe_ep的值只能配置为2。

    稀疏模型MoE模块中的专家并行数。

    选填,默认值:-1,默认不执行专家并行。

    不配置以上补充参数时,推理过程中默认使用tp和moe_tp并行方式。

执行推理

已在环境上安装CANN和MindIE详情请参见MindIE安装指南

  1. 设置优化显存分配的环境变量
    export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True
    export ATB_WORKSPACE_MEM_ALLOC_ALG_TYPE=3
  2. 配置服务化参数。该特性需配合MindIE Service使用,按照表1在服务化的config.json文件中添加相应参数,config.json文件路径的详细说明请参考《MindIE安装指南》中的“配置MindIE > 配置MindIE Server > 单机推理”章节中的软件包文件清单。
    配置服务化参数示例如下:
    vi ${MIES_INSTALL_PATH}/conf/config.json
    "ModelConfig" : [
        {
            "modelInstanceType" : "Standard",
            "modelName" : "deepseekv2",
            "modelWeightPath" : "/home/data/DeepSeek-V2-Chat-W8A8-BF16/",
            "worldSize" : 8,
            "cpuMemSize" : 5,
            "npuMemSize" : 1,
            "backendType" : "atb",
            "trustRemoteCode" : false,
            "dp": 8,
            "tp": 1,
            "moe_tp": 8
        }
    ]

    以上参数设置表明使用8卡进行推理,Attention模块使用数据并行,MoE模型使用张量并行。

  3. 启动服务。具体请参考《MindIE Service开发指南》中的“快速开始 > 启动服务”章节
  4. 发送推理请求。具体请参考《MindIE Service开发指南》中的“MindIE Service组件 > MindIE MS > 调度器(Coordinator) > RESTful接口API > 用户侧接口 > OpenAI推理接口”章节