[发明专利]基于加速芯片的模型迭代实现方法和装置有效
申请号: | 202010937393.4 | 申请日: | 2020-09-08 |
公开(公告)号: | CN112101565B | 公开(公告)日: | 2023-07-11 |
发明(设计)人: | 赵军平 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06N20/00 | 分类号: | G06N20/00;G06N5/04 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 周嗣勇 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 加速 芯片 模型 实现 方法 装置 | ||
1.一种基于加速芯片的模型迭代实现方法,包括:
确定在机器学习模型训练或推理的一次迭代中执行的所有计算函数、计算函数的执行顺序、以及计算函数的输入参数和输出参数;所述执行顺序用来由加速芯片依次执行计算函数;
将所有计算函数划分为N个并行队列,每个并行队列中的计算函数按照执行顺序排列;N为不小于2的自然数;
采用计算函数的输入参数和输出参数,发现所有并行队列之间相互的队列依赖关系;第一并行队列对第二并行队列的队列依赖关系包括所有满足以下条件的第一并行队列中某个第一计算函数对第二并行队列中某个第二计算函数的函数依赖:不存在执行顺序先于所述第一计算函数的第一并行队列中其他计算函数对所述第二计算函数的函数依赖,也不存在第一并行队列中执行顺序先于所述第一计算函数的其他计算函数对第二并行队列中执行顺序后于所述第二计算函数的其他计算函数的函数依赖;当所述第二计算函数是第二并行队列中输出参数包括所述第一计算函数的输入参数的计算函数中执行顺序最后的一个时,所述第一计算函数对所述第二计算函数具有函数依赖;
对具有队列依赖关系的两个计算函数,在被依赖的计算函数上添加执行完毕的通知事件,在具有函数依赖的计算函数上添加对所述通知事件的依赖;
并行执行所述N个并行队列。
2.根据权利要求1所述的方法,所述方法还包括:将按照执行顺序排列的所有计算函数截断为M个基础队列,第i个基础队列的最后一个计算函数的输出参数不包括第(i+1)个基础队列的第一个计算函数的输入参数;M为不小于2的自然数,i为从1到M-1的自然数;
所述将所有计算函数划分为N个并行队列,每个并行队列中的计算函数按照执行顺序排列,包括:将(M-N)个基础队列中的计算函数添加到其他N个基础队列中,生成N个并行队列,每个并行队列中的计算函数按照执行顺序排列;N为不大于M的自然数。
3.根据权利要求2所述的方法,所述将(M-N)个基础队列中的计算函数添加到其他N个基础队列中,包括:将第(N+1)到第M个基础队列的计算函数添加到第1到第N个基础队列中。
4.根据权利要求2所述的方法,所述方法还包括:将N依次设置为从2到M范围内的若干个值,统计N为各个设置值时并行执行N个队列的耗时,将耗时最少的设置值作为后续训练或推理中使用的N值。
5.根据权利要求1所述的方法,所述方法还包括:在并行执行N个并行队列时,在资源需求表中记录每个计算函数的输入参数、并行队列数目、所使用加速芯片的硬件资源、以及该计算函数的执行时长;
所述方法还包括:在将所有计算函数划分为N个并行队列前,按照各个计算函数的输入参数、所使用加速芯片的硬件资源,在资源需求表中查找对应的并行队列数目和执行时长,将使得所有计算函数的执行时长更短的并行队列数目作为N。
6.根据权利要求1所述的方法,所述确定在机器学习模型训练或推理的一次迭代中执行的所有计算函数、计算函数的执行顺序、以及计算函数的输入参数和输出参数,包括:在缓冲区中缓冲最近接收的L个计算函数、执行顺序以及计算函数的输入参数和输出参数,从中提取按照相同的执行顺序重复执行的若干个计算函数,作为一次迭代中执行的所有计算函数;L为不小于2倍计算函数总数目的自然数。
7.根据权利要求1所述的方法,所述加速芯片虚拟化为客户端和服务器端;
所述确定在机器学习模型训练或推理的一次迭代中执行的所有计算函数、计算函数的执行顺序、以及计算函数的输入参数和输出参数的步骤,由客户端执行,后续步骤由服务器端执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010937393.4/1.html,转载请声明来源钻瓜专利网。