当前位置: 首页 > 专利查询>之江实验室专利>正文

深度学习框架与AI加速卡片内分布式训练适配方法和装置制造方法及图纸

技术编号:31847245 阅读:18 留言:0更新日期:2022-01-12 13:28
本发明专利技术公开了一种深度学习框架与AI加速卡片内分布式训练适配方法和装置,包括如下步骤:S1:深度学习框架支持新增AI加速卡片内单卡配置,其子步骤如下:S11:深度学习框架支持新硬件;S12:深度学习框架支持新硬件的设备线程;S13:深度学习框架支持新硬件的内存操作;S14:深度学习框架支持新硬件的算子核函数;S2:深度学习框架支持新增AI加速卡片内多卡配置;S3:深度学习框架支持张量切分和多卡分布;S4:深度学习框架支持新增AI加速卡片内多卡集合通信,本发明专利技术打通了深度学习框架与新增AI加速卡,并将深度学习框架源码与芯片底层软件全面对接,最大限度释放芯片的硬件能力,为端侧AI提供最强劲的算力。AI提供最强劲的算力。AI提供最强劲的算力。

【技术实现步骤摘要】
深度学习框架与AI加速卡片内分布式训练适配方法和装置


[0001]本专利技术涉及人工智能和国产化AI芯片
,特别涉及一种深度学习框架与AI加速卡片内分布式训练适配方法和装置。

技术介绍

[0002]随着国家对集成电路的重视,主流深度学习框架搭建国产芯片推动智能计算的发展成为当前人工智能领域的一个重要使命。主流深度学习框架适配国产芯片的基本流程是,主流深度学习框架集成国产芯片的高性能机器学习库,支持主流神经网络算子,并能支持在各类应用场景下的模型部署,如分类、检测、分割、风格转化等模型。但是,当前深度框架适配国产芯片的方法对大规模分布式训练的技术仍不成熟。所以,提供深度学习框架和国产芯片多卡集合通信的适配方法与流程是推进新一代超大模型训练解决方案的关键环节。而实现上述目的,本领域面临一个现实性的技术难题:如何解决商用AI框架与加速卡片内多卡集合通信的兼容性问题。

技术实现思路

[0003]本专利技术的目的在于提供一种深度学习框架与AI加速卡片内分布式训练适配方法和装置,以克服现有技术中的不足。
[0004]为实现上述目的,本专利技术提供如下技术方案:本专利技术公开了一种深度学习框架与AI加速卡片内分布式训练适配方法,包括如下步骤:S1:深度学习框架支持新增AI加速卡片内单卡配置,其子步骤如下:S11:深度学习框架支持新硬件;S12:深度学习框架支持新硬件的设备线程;S13:深度学习框架支持新硬件的内存操作;S14:深度学习框架支持新硬件的算子核函数;S2:深度学习框架支持新增AI加速卡片内多卡配置;S3:深度学习框架支持张量切分和多卡分布;S4:深度学习框架支持新增AI加速卡片内多卡集合通信。
[0005]作为优选的,所述步骤S11深度学习框架支持新硬件,其子步骤如下:S111:深度学习框架添加新硬件设备字段:向深度学习框架里添加新的设备类型,创建一个设备类型的枚举类,往设备类型中增加一个新硬件对应的设备字段;S112:深度学习框架注册新硬件:将所述步骤S111中添加的新硬件设备字段注册到框架中;S113:深度学习框架添加新硬件基础软件库的上下文信息:新增一个新硬件基础软件库上下文信息的类,添加一个用于保存新硬件的基础软件库上下文信息结构的句柄成员变量和一个获取新硬件基础软件库上下文信息句柄的成员函数,但并不指定所述上下文
信息所管理的具体加速卡的设备ID;S114:深度学习框架添加新硬件基础软件库的程序流,包括新增一个获取执行新硬件程序流的句柄和新增一个新硬件程序流索引生成器。
[0006]作为优选的,所述步骤S113中,添加一个获取新硬件基础软件库上下文信息句柄的成员函数,所述函数的功能是初始化新硬件的基础软件库,在主机上分配硬件资源,并且在任何其他新硬件的基础软件库函数调用之前必须先调用该函数。
[0007]作为优选的,所述步骤S114中,新增一个获取执行新硬件程序流的句柄的具体方法为:根据步骤S113中获取的新硬件基础软件库上下文信息结构的句柄,创建一个执行程序流的句柄;所述新增的新硬件程序流索引生成器的功能包括生成计算程序流索引和生成集合通信程序流索引,集合通信程序流包括将主机内存拷贝到新硬件和将新硬件内存拷贝到主机两种程序流,并且利用上述新硬件程序流索引生成器为当前程序流分配程序流ID。
[0008]作为优选的,所述步骤S12深度学习框架支持新硬件的设备线程,其子步骤如下:S121:添加新硬件设备的线程结构体:创建硬件设备类型线程结构体,包含如下成员变量:任务执行体轮询线程、当前任务队列、召回事件、事件召回的队列、事件召回队列的轮询线程;S122:注册新硬件设备的线程结构体:将所述步骤S121中添加的硬件设备线程结构体注册到深度学习框架中,具体子步骤为:S1221:根据新硬件程序流ID和新硬件设备ID创建新硬件设备线程结构体对象;S1222:根据新硬件设备线程结构体对象和新硬件设备字段将新硬件设备线程结构体注册到深度学习框架中。
[0009]作为优选的,所述步骤S121中所述线程结构体的构造函数完成如下功能:(1)算子核函数的运行模式:首先将不同任务依次加入当前核函数任务队列,创建任务执行体轮询线程,该线程负责根据不同核函数任务信息创建对应的执行体,并使用该执行体运行任务队列中的当前核函数任务,其次,当核函数任务队列中任务全部运行完以后,创建事件召回队列的轮询线程,将已处理完的任务返回;(2)获取任务:任务执行体轮询线程负责从当前任务队列中依次获取当前待处理任务;(3)构造核函数的执行体:根据当前任务的目标执行体ID和当前线程的上下文信息构造处理当前任务的目标执行体对象;(4)返回已处理任务:当处理完上述任务队列中的全部任务时,启动事件召回队列的轮询线程,事件召回队列的轮询线程负责将事件召回的队列中已处理的任务依次取出并返回。
[0010]作为优选的,所述步骤S13深度学习框架支持新硬件的内存操作,其子步骤如下:S131:添加新硬件设备内存类型字段;S132:申请新硬件设备类型的内存;S133:添加新硬件设备类型的内存拷贝接口;S134:添加新硬件设备的内存分配接口。
[0011]作为优选的,所述步骤S132中,申请新硬件设备类型的内存包括两部分内存:第一、为新硬件设备中的计算图的张量边申请新硬件设备类型的内存;
第二、为跨设备集合通信的计算图的张量边申请内存,该内存包括两种情形:当需要从主机向新硬件设备拷贝内存时,申请新硬件设备类型的内存;当需要从新硬件设备向主机拷贝内存时,申请主机类型的内存。
[0012]作为优选的,所述步骤S133中,新硬件设备类型的内存拷贝接口包括如下三种情形:第一、从主机向新硬件设备拷贝内存情形,当判断内存满足源内存属于主机类型内存且目标内存属于新硬件设备类型内存时,调用从主机向新硬件设备拷贝内存的 API 接口;第二、从新硬件设备向主机拷贝内存情形,当判断内存满足源内存属于新硬件设备类型内存且目标内存属于主机类型内存时,调用从新硬件设备向主机拷贝内存的 API 接口;第三、从新硬件设备向新硬件设备拷贝内存情形,当判断内存满足源内存属于新硬件设备类型内存且目标内存属于新硬件设备类型内存时,调用从新硬件设备向新硬件设备拷贝内存的 API 接口。
[0013]作为优选的,所述步骤S134中,添加新硬件设备的内存分配接口具有如下子步骤:S1341:添加新硬件设备的内存分配函数:当判断待申请的内存是新硬件设备类型的内存时,调用新硬件设备的内存分配的 API 接口,分配指定大小的内存;S1342:添加新硬件设备的内存析构函数:当判断待回收的内存是新硬件设备类型的内存时,调用新硬件设备的内存析构的 API 接口,回收指定大小的内存;S1343:初始化分配的新硬件设备类型内存:首先,利用上述新硬件设备的内存分配函数分配指定大小的新硬件设备类型内存;其次,在当前主机上分配临时指定大小的内存;最后,将该临时内存从主机拷贝到上述分配的新硬件设备类型的内存中。
[0014]作为优选的,所述步骤S14深度学习框架支持新硬件的算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:包括如下步骤:S1:深度学习框架支持新增AI加速卡片内单卡配置,其子步骤如下:S11:深度学习框架支持新硬件;S12:深度学习框架支持新硬件的设备线程;S13:深度学习框架支持新硬件的内存操作;S14:深度学习框架支持新硬件的算子核函数;S2:深度学习框架支持新增AI加速卡片内多卡配置;S3:深度学习框架支持张量切分和多卡分布;S4:深度学习框架支持新增AI加速卡片内多卡集合通信。2.根据权利要求 1 所述的深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:所述步骤S11深度学习框架支持新硬件,其子步骤如下:S111:深度学习框架添加新硬件设备字段:向深度学习框架里添加新的设备类型,创建一个设备类型的枚举类,往设备类型中增加一个新硬件对应的设备字段;S112:深度学习框架注册新硬件:将所述步骤S111中添加的新硬件设备字段注册到框架中;S113:深度学习框架添加新硬件基础软件库的上下文信息:新增一个新硬件基础软件库上下文信息的类,添加一个用于保存新硬件的基础软件库上下文信息结构的句柄成员变量和一个获取新硬件基础软件库上下文信息句柄的成员函数,但并不指定所述上下文信息所管理的具体加速卡的设备ID;S114:深度学习框架添加新硬件基础软件库的程序流,包括新增一个获取执行新硬件程序流的句柄和新增一个新硬件程序流索引生成器。3.根据权利要求 2 所述的深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:所述步骤S113中,添加一个获取新硬件基础软件库上下文信息句柄的成员函数,所述函数的功能是初始化新硬件的基础软件库,在主机上分配硬件资源,并且在任何其他新硬件的基础软件库函数调用之前必须先调用该函数。4.根据权利要求 2 所述的深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:所述步骤S114中,新增一个获取执行新硬件程序流的句柄的具体方法为:根据步骤S113中获取的新硬件基础软件库上下文信息结构的句柄,创建一个执行程序流的句柄;所述新增的新硬件程序流索引生成器的功能包括生成计算程序流索引和生成集合通信程序流索引,集合通信程序流包括将主机内存拷贝到新硬件和将新硬件内存拷贝到主机两种程序流,并且利用上述新硬件程序流索引生成器为当前程序流分配程序流ID。5.根据权利要求 1 所述的深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:所述步骤S12深度学习框架支持新硬件的设备线程,其子步骤如下:S121:添加新硬件设备的线程结构体:创建硬件设备类型线程结构体,包含如下成员变量:任务执行体轮询线程、当前任务队列、召回事件、事件召回的队列、事件召回队列的轮询线程;S122:注册新硬件设备的线程结构体:将所述步骤S121中添加的硬件设备线程结构体注册到深度学习框架中,具体子步骤为:
S1221:根据新硬件程序流ID和新硬件设备ID创建新硬件设备线程结构体对象;S1222:根据新硬件设备线程结构体对象和新硬件设备字段将新硬件设备线程结构体注册到深度学习框架中。6.根据权利要求 5 所述的深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:所述步骤S121中所述线程结构体的构造函数完成如下功能:算子核函数的运行模式:首先将不同任务依次加入当前核函数任务队列,创建任务执行体轮询线程,该线程负责根据不同核函数任务信息创建对应的执行体,并使用该执行体运行任务队列中的当前核函数任务,其次,当核函数任务队列中任务全部运行完以后,创建事件召回队列的轮询线程,将已处理完的任务返回;获取任务:任务执行体轮询线程负责从当前任务队列中依次获取当前待处理任务;构造核函数的执行体:根据当前任务的目标执行体ID和当前线程的上下文信息构造处理当前任务的目标执行体对象;返回已处理任务:当处理完上述任务队列中的全部任务时,启动事件召回队列的轮询线程,事件召回队列的轮询线程负责将事件召回的队列中已处理的任务依次取出并返回。7.根据权利要求 1 所述的深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:所述步骤S13深度学习框架支持新硬件的内存操作,其子步骤如下:S131:添加新硬件设备内存类型字段;S132:申请新硬件设备类型的内存;S133:添加新硬件设备类型的内存拷贝接口;S134:添加新硬件设备的内存分配接口。8.根据权利要求 7 所述的深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:所述步骤S132中,申请新硬件设备类型的内存包括两部分内存:为新硬件设备中的计算图的张量边申请新硬件设备类型的内存;第二、为跨设备集合通信的计算图的张量边申请内存,该内存包括两种情形:当需要从主机向新硬件设备拷贝内存时,申请新硬件设备类型的内存;当需要从新硬件设备向主机拷贝内存时,申请主机类型的内存。9.根据权利要求 7 所述的深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:所述步骤S133中,新硬件设备类型的内存拷贝接口包括如下三种情形:从主机向新硬件设备拷贝内存情形,当判断内存满足源内存属于主机类型内存且目标内存属于新硬件设备类型内存时,调用从主机向新硬件设备拷贝内存的 API 接口;从新硬件设备向主机拷贝内存情形,当判断内存满足源内存属于新硬件设备类型内存且目标内存属于主机类型内存时,调用从新硬件设备向主机拷贝内存的 API 接口;从新硬件设备向新硬件设备拷贝内存情形,当判断内存满足源内存属于新硬件设备类型内存且目标内存属于新硬件设备类型内存时,调用从新硬件设备向新硬件设备拷贝内存的 API 接口。10.根据权利要求 7 所述的深度学习框架与AI加速卡片内分布式训练适配方法,其特征在于:所述步骤S134中,添加新硬件设备的内存分配接口具有如下子步骤:S1341:添加新硬件设备的内存分配函数:当判断待申请的内存是新硬件设备类型的内存时,调用新硬件设备的内存分配的 API 接口,分配指定大小的内存;
S1342:添加新硬件设备的内存析构函数:当判断待回收的内存是新硬件设备类型的内存时,调用新硬件设备的内存析构的 API 接口,回收指定大小的内存;S1343:初始化分配的新硬件设备类型内存:首先,利用上述新硬件设备的内存分配函数分配指定大小的新硬件设备类型内存;其次,在当前主机上分配临时指定大小的内存;最后,将该临时内存从主机拷贝到...

【专利技术属性】
技术研发人员:王宏升华炜颊维强杨非王拓鲍虎军
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1