基于MindSpore Serving部署分布式的理论推理

本文详细介绍了如何使用MindSpore Serving部署分布式推理服务。从理解分布式推理架构到导出分布式模型,再到启动服务和执行推理,提供了一步步的操作流程。涉及的限制包括仅支持Ascend 910推理,以及对模型输入和输出的特定要求。
摘要由CSDN通过智能技术生成

本篇文章意在为大家介绍部署分布式推理服务的完整流程复现操作。有很多实验由于缺少实验环境都无法实践,但是我们对于理论的探究是不能停止的。本文就是基于MindSpore Serving部署分布式的理论推理。

首先,我们一起看看分布式推理服务的架构,如图所示:

Main进程提供客户端访问的接口,管理Distributed Worker并进行任务管理与分发;Distributed Worker进程根据模型配置自动调度Agent完成分布式推理;每一个Agent进程包含一个分布式模型的切片,占用一个device,加载模型执行推理。

上图展示了rank_size为16,stage_size为2的场景,每个stage包含8个Agent,占用8个device。rank_size表示推理使用的device的个数,stage表示流水线的一段,stage_size表示流水线的段数。Distributed Worker向Agent发送推理请求并从Agent获取推理结果。Agent之间使用HCCL通信。

当前对分布式模型有以下限制:

  1. 第一个stage的模型接收相同的输入数据
  2. 其他的stage的模型不接收数据。
  3. 最后一个stage的所有模型都返回相同的数据。
  4. 仅支持Ascend 910推理。

下面以一个简单的分布式网络MatMul为例,演示部署流程。

 

导出分布式模型需要如下文件列表:

export_model

├── distributed_inference.py

├── export_model.sh

├── net.py

└── rank_table_8pcs.json

  • py为MatMul网络定义。
  • py配置分布式相关的参数。
  • sh在当前机器上创建device目录并且导出每个device对应的模型文件。
  • json为配置当前多卡环境的组网信息的json文件,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值