当前位置: 首页 > 专利查询>北京大学专利>正文

一种适用于华为昇腾芯片的高性能算子生成方法技术

技术编号:33048821 阅读:21 留言:0更新日期:2022-04-15 09:33
本发明专利技术公开了一种适用于华为昇腾芯片的高性能算子生成方法。其中,该方法包括:在目标开发方式下,生成多个候选操作函数,其中,目标开发方式是基于昇腾人工智能处理器的张量加速引擎算子开发框架确定的张量迭代器内核开发方式;从多个候选操作函数选取待使用的目标操作函数;利用目标操作函数和目标操作数据执行目标操作,得到目标操作结果。本发明专利技术解决了相关技术中对于高性能算子的开发效率低下的技术问题。技术问题。技术问题。

【技术实现步骤摘要】
一种适用于华为昇腾芯片的高性能算子生成方法


[0001]本申请涉及人工智能领域,具体而言,涉及一种适用于华为昇腾芯片的高性能算子生成方法。

技术介绍

[0002]高性能算子是深度学习模型中涉及到的计算函数,常见的算子包括卷积、矩阵乘、修正线性单元(Rectified Linear Unit,ReLU)等。作为人工智能(Artificial Intelligence, AI)计算框架的基本组成部分,高性能算子向下调用中央处理器(Central ProcessingUnit,CPU)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器 (Neural

network Processing Unit,NPU)等AI芯片,向上为多种计算框架提供操作接口。高性能算子是充分发挥芯片计算潜力、提升训练和推理效率的重要基础。
[0003]相关技术中,昇腾技术栈提供了张量加速引擎(Tensor Boost Engine,TBE)算子开发框架,开发者可以选择使用领域特定语言(Domain

Specific Language,DSL)或张量迭代器内核(Tensor Iterator Kernel,TIK)开发方式进行算子开发。其中,DSL的灵活性差、性能差,但开发效率高;TIK的灵活性和性能高,但开发效率低并且开发工作量大,要求开发者熟悉底层硬件架构,并手动规划算子的调度。利用现有技术进行算子开发时,难以同时获得良好的算子性能和开发效率。
[0004]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0005]本申请实施例提供了一种适用于华为昇腾芯片的高性能算子生成方法,以至少解决相关技术中对于高性能算子的开发效率低下的技术问题。
[0006]根据本申请其中一实施例,提供了一种适用于华为昇腾芯片的高性能算子生成方法,包括:在目标开发方式下,生成多个候选操作函数,其中,目标开发方式是基于昇腾人工智能处理器的张量加速引擎算子开发框架确定的张量迭代器内核开发方式;从多个候选操作函数选取待使用的目标操作函数;利用目标操作函数和目标操作数据执行目标操作,得到目标操作结果。
[0007]可选地,从多个候选操作函数选取目标操作函数包括:从多个候选操作函数选取数据搬运函数。
[0008]可选地,利用目标操作函数和目标操作数据执行目标操作,得到目标操作结果包括:获取目标操作数据,其中,目标操作数据包括:第一源操作数、第一目的操作数和数据长度;利用数据搬运函数、第一源操作数、第一目的操作数和数据长度执行数据搬运操作,得到数据搬运结果。
[0009]可选地,利用数据搬运函数、第一源操作数、第一目的操作数和数据长度执行数据搬运操作,得到数据搬运结果包括:利用数据长度对第一源操作数进行分块处理,得到分块结果;当基于分块结果确定不存在尾块时,通过数据搬运函数和分块结果将第一源操作数
搬运至第一目的操作数,得到数据搬运结果;当基于分块结果确定存在尾块时,按照第一源操作数与第一目的操作数的存储位置确定目标搬运方式,并通过数据搬运函数和目标搬运方式将第一源操作数搬运至第一目的操作数,得到数据搬运结果。
[0010]可选地,从多个候选操作函数选取目标操作函数包括:从多个候选操作函数选取精度向量计算函数。
[0011]可选地,利用目标操作函数和目标操作数据执行目标操作,得到目标操作结果包括:获取目标操作数据,其中,目标操作数据包括:第二源操作数、第二目的操作数和第一指令名称;利用精度向量计算函数、第二源操作数、第二目的操作数和第一指令名称执行精度向量计算操作,得到精度向量计算结果。
[0012]可选地,利用精度向量计算函数、第二源操作数、第二目的操作数和第一指令名称执行精度向量计算操作,得到精度向量计算结果包括:当第二源操作数未位于全局内存时,确定精度向量计算次数,利用精度向量计算函数和第一指令名称对第二源操作数进行精度向量计算操作以得到精度向量计算结果,并将精度向量计算结果搬运至第二目的操作数;当第二源操作数位于全局内存时,对第二源操作数进行多核优化处理以得到优化处理结果,确定精度向量计算次数,利用精度向量计算函数和第一指令名称对优化处理结果进行精度向量计算操作以得到精度向量计算结果,并将精度向量计算结果搬运至第二目的操作数。
[0013]可选地,从多个候选操作函数选取目标操作函数包括:从多个候选操作函数选取规约向量计算函数。
[0014]可选地,利用目标操作函数和目标操作数据执行目标操作,得到目标操作结果包括:获取目标操作数据,其中,目标操作数据包括:第三源操作数、第三目的操作数和第一数据量;利用规约向量计算函数、第三源操作数、第三目的操作数和第一数据量执行多轮迭代处理,得到规约向量计算结果。
[0015]可选地,从多个候选操作函数选取目标操作函数包括:从多个候选操作函数选取数据填充函数。
[0016]可选地,利用目标操作函数和目标操作数据执行目标操作,得到目标操作结果包括:获取目标操作数据,其中,目标操作数据包括:第四源操作数、第四目的操作数和第二指令名称;利用数据填充函数、第四源操作数、第四目的操作数和第二指令名称执行数据填充操作,得到数据填充结果。
[0017]可选地,从多个候选操作函数选取目标操作函数包括:从多个候选操作函数选取浮点数标量比较函数。
[0018]可选地,利用目标操作函数和目标操作数据执行目标操作,得到目标操作结果包括:获取目标操作数据,其中,目标操作数据包括:第一浮点数标量和第二浮点数标量;利用浮点数标量比较函数、第一浮点数标量和第二浮点数标量执行浮点数标量比较操作,得到浮点数标量比较结果。
[0019]可选地,利用浮点数标量比较函数、第一浮点数标量和第二浮点数标量执行浮点数标量比较操作,得到浮点数标量比较结果包括:将第一浮点数标量写入第一张量,以及将第二浮点数标量写入第二张量;使用向量减法指令获取第一张量与第二张量的差值运算结果,并将差值运算结果转换为整数标量;基于整数标量执行浮点数标量比较操作,得到浮点
数标量比较结果。
[0020]可选地,从多个候选操作函数选取目标操作函数包括:从多个候选操作函数选取除法计算函数。
[0021]可选地,利用目标操作函数和目标操作数据执行目标操作,得到目标操作结果包括:获取目标操作数据,其中,目标操作数据包括:第五源操作数、第五目的操作数和第二数据量;利用除法计算函数、第五源操作数、第五目的操作数和第二数据量执行除法计算操作,得到除法计算结果。
[0022]根据本申请其中一实施例,还提供了一种适用于华为昇腾芯片的高性能算子生成装置,包括:生成模块,用于在目标开发方式下,生成多个候选操作函数,其中,目标开发方式是基于昇腾人工智能处理器的张量加速引擎算子开发框架确定的张量迭代器内核开发方式;选取模块,用于从多个候选操作函数选取待使用的目标操作函数;处理模块,用于利用目标操作函数和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种适用于华为昇腾芯片的高性能算子生成方法,其特征在于,包括:在目标开发方式下,生成多个候选操作函数,其中,所述目标开发方式是基于昇腾人工智能处理器的张量加速引擎算子开发框架确定的张量迭代器内核开发方式;从所述多个候选操作函数选取待使用的目标操作函数;利用所述目标操作函数和目标操作数据执行目标操作,得到目标操作结果。2.根据权利要求1所述的适用于华为昇腾芯片的高性能算子生成方法,其特征在于,从所述多个候选操作函数选取所述目标操作函数包括:从所述多个候选操作函数选取数据搬运函数。3.根据权利要求2所述的适用于华为昇腾芯片的高性能算子生成方法,其特征在于,利用所述目标操作函数和所述目标操作数据执行目标操作,得到所述目标操作结果包括:获取所述目标操作数据,其中,所述目标操作数据包括:第一源操作数、第一目的操作数和数据长度;利用所述数据搬运函数、所述第一源操作数、所述第一目的操作数和所述数据长度执行数据搬运操作,得到数据搬运结果。4.根据权利要求3所述的适用于华为昇腾芯片的高性能算子生成方法,其特征在于,利用所述数据搬运函数、所述第一源操作数、所述第一目的操作数和所述数据长度执行数据搬运操作,得到所述数据搬运结果包括:利用所述数据长度对所述第一源操作数进行分块处理,得到分块结果;当基于所述分块结果确定不存在尾块时,通过所述数据搬运函数和所述分块结果将所述第一源操作数搬运至所述第一目的操作数,得到所述数据搬运结果;当基于所述分块结果确定存在所述尾块时,按照所述第一源操作数与所述第一目的操作数的存储位置确定目标搬运方式,并通过所述数据搬运函数和所述目标搬运方式将所述第一源操作数搬运至所述第一目的操作数,得到所述数据搬运结果。5.根据权利要求1所述的适用于华为昇腾芯片的高性能算子生成方法,其特征在于,从所述多个候选操作函数选取所述目标操作函数包括:从所述多个候选操作函数选取精度向量计算函数。6.根据权利要求5所述的适用于华为昇腾芯片的高性能算子生成方法,其特征在于,利用所述目标操作函数和所述目标操作数据执行目标操作,得到所述目标操作结果包括:获取所述目标操作数据,其中,所述目标操作数据包括:第二源操作数、第二目的操作数和第一指令名称;利用所述精度向量计算函数、所述第二源操作数、所述第二目的操作数和所述第一指令名称执行精度向量计算操作,得到精度向量计算结果。7.根据权利要求6所述的适用于华为昇腾芯片的高性能算子生成方法,其特征在于,利用所述精度向量计算函数、所述第二源操作数、所述第二目的操作数和所述第一指令名称执行精度向量计算操作,得到所述精度向量计算结果包括:当所述第二源操作数未位于全局内存时,确定精度向量计算次数,利用所述精度向量计算函数和所述第一指令名称对所述第二源操作数进行精度向量计算操作以得到所述精度向量计算结果,并将所述精度向量计算结果搬运至所述第二目的操作数;当所述第二源操作数位于全局内存时,对所述第二源操作数进行多核优化处理以得到
优化处理结果,确定精度向量计算次数,利用所述精度向量计算函数和所述第一指令名称对所述优化处理结果进行精度向量计算操作以得到所述精度向量计算结果,并将所述精度向量计算结果搬运至所述第二目的操作数。8.根据权利要求1所述的适用于华为昇腾芯片的高性能算子生成方法,其特征在于,从所述多个候选操作函数选取所述目标操作函数包括:从所述多个候选操作函数选取规约向量计算函数。9.根据权利要求8所述的适用于华为昇腾芯片的高性能算子生成方法,其特征在于,利用所述目标操作函数和所述目标操作数据执行目标操作,得到所述目标操作结果包括:获取所述目标操作数据,其中,所述目标操作数据包括:第三源操作数、第三目的操作数和...

【专利技术属性】
技术研发人员:龙汀汀樊春马银萍董昊森李若淼杨宏辉
申请(专利权)人:北京大学
类型:发明
国别省市:

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

1