已关闭
【RFC】通信域相关的基础接口支持 #8
fengyixing创建于  1月24日关闭于  2月3日
fengyixing
fengyixing成员
1月24日 创建

背景

大模型训练的数据信息、模型信息、参数信息等各种信息数据量大,一般都分布在不同的卡上或者不同的服务器上。在训练过程中,不仅需要获取到当前执行环境上的各种信息,经常还需要获取到其他执行环境上的信息,甚至进行信息的传递。因此,通信域的概念在大模型训练中必不可少。项目中当前关于通信域的接口亟需完善。

方案

目前业界中对于通信域的接口使用场景是类似的,但由于不同框架中的数据类型定义不一致,接口的参数列表以及实现方式不尽相同,主流的实现方式有PyTorch。
为了既能兼顾多种框架,又尽量降低用户的使用门槛,我们将在platform模块提供统一的接口,接口列表尽可能向主流靠拢,针对不同的框架创建不同的platform继承类。使用户可以选择使用常用框架,也可以通过继承platform模块进行定制化设计。

对外接口

platform中关于通信域的对外接口如下:

接口名 功能 应用场景
init_process_group 初始化进程组 创建全局进程组,分布式训练开始
destroy_process_group 销毁进程组 进程执行完成,销毁进程组,清理资源
get_process_group_ranks 获取进程组中所有rank的列表 检查rank分配情况
get_backend 获取进程组使用的通信后端 针对不同的通信后端选择不同的优化策略
split_group 拆分子进程组 混合并行执行任务
likedislike
fengyixingfengyixing成员
1月24日 关联了pull request:add process group interfaces in platform
fengyixingfengyixing成员
1月28日 issue类型由 RFC 改变为 需求
fengyixingfengyixing成员
1月28日 issue类型由 需求 改变为 RFC
fengyixingfengyixing成员
1月28日 关联分支 由 [] 改变为 [master]
fengyixingfengyixing成员
1月28日 issue状态由 TODO 改变为 WIP
fengyixingfengyixing成员
1月28日 修改标题为 “通信域相关的基础接口支持”,原标题为“添加通信域相关的基础接口”
fengyixingfengyixing成员
1月28日 修改了issue 的描述
fengyixingfengyixing成员
1月28日 修改标题为 “【RFC】通信域相关的基础接口支持”,原标题为“通信域相关的基础接口支持”
fengyixingfengyixing成员
1月30日 关联了pull request:device mesh
MindSpore-BotMindSpore-Bot成员
2月3日 关闭了 issue
MindSpore-BotMindSpore-Bot成员
2月3日 issue状态由 WIP 改变为 DONE
fengyixingfengyixing成员
2月3日 issue状态由 DONE 改变为 TODO
fengyixingfengyixing成员
2月3日 重新打开了 issue
fengyixingfengyixing成员
2月3日 issue状态由 TODO 改变为 DONE
fengyixingfengyixing成员
2月3日 关闭了 issue