【技术实现步骤摘要】
一种基于昇腾AI处理器的批量矩阵乘算子的优化方法
[0001]本专利技术涉及数据优化领域,具体涉及一种基于昇腾AI处理器的 批量矩阵乘算子的优化方法。
技术介绍
[0002]昇腾处理器是达芬奇架构的AI处理器,旨在为深度学习研究、 开发、部署提供具有更高算力、更低能耗的芯片,是目前首屈一指的 AI处理器,达芬奇架构本质上是为了适应某个特定领域中的常见应 用和算法的“特定域架构”(Domain Specific Architecture,DSA) 芯片,而现有的昇腾处理器在运算过程中运用的是常规的批量矩阵乘 算子,没有利用到昇腾处理器的双缓冲机制,从而导致实际运行效率 比较低。
[0003]因此,现有技术还有待于改进和发展。
技术实现思路
[0004]本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供 了一种基于昇腾AI处理器的批量矩阵乘算子的优化方法,旨在通过 提供一种基于昇腾AI处理器的批量矩阵乘算子的优化方法,通过利 用到双缓冲区等加速运算机制提高数据处理的效率。
[0005]本 ...
【技术保护点】
【技术特征摘要】
1.一种基于昇腾AI处理器的批量矩阵乘算子的优化方法,其特征在于,所述方法包括:获取第一输入数据与第二输入数据,并将所述第一输入数据与所述第二输入数据搬运到AI Core;获取所述第二输入数据的加载行数,并根据所述加载行数以及预设的缓冲区的双缓存机制对所述第一输入数据和第二输入数据进行划分;将划分后的所述第一输入数据和第二输入数据加载到所述缓冲区中进行计算,得到输出数据;将所述输出数据搬运到外部存储中进行输出。2.根据权利要求1所述的一种基于昇腾AI处理器的批量矩阵乘算子的优化方法,其特征在于,所述获取第一输入数据与第二输入数据,并将所述第一输入数据与所述第二输入数据搬运到AI Core,包括:获取所述第一输入数据与所述第二输入数据的数据类型;当所述数据类型为float16、float32或int32时,对所述第一输入数据与第二输入数据进行转置;调用数据移动指令将转置后的所述第一输入数据与所述第二输入数据搬运到AI Core。3.根据权利要求2所述的一种基于昇腾AI处理器的批量矩阵乘算子的优化方法,其特征在于,所述当所述数据类型为float16、float32或int32时,对所述第一输入数据与第二输入数据进行转置,包括:获取与所述第一输入数据相对应的第一转置标志以及与所述第二输入数据相对应的第二转置标志;获取所述第一转置标志和第二转置标志的取值状态;根据所述取值状态对所述第一输入数据与第二输入数据进行转置。4.根据权利要求1所述的一种基于昇腾AI处理器的批量矩阵乘算子的优化方法,其特征在于,所述获取所述第二输入数据的加载行数,并根据所述加载行数以及预设的缓冲区的双缓存机制对所述第一输入数据和第二输入数据进行划分,包括:当所述加载行数大于1时;根据所述双缓存机制将所述第二输入数据划分为两个部分。5.根据权利要求4所述的一种基于昇腾AI处理器的批量矩阵乘算子的优化方法,其特征在于,所述将划分后的所述第一输入数据和第二输入数据加载到所述缓冲区中进行计算,得到输出数据,包括:将每一部分的第二输入数据分别载入一个缓冲区中;将所述第一输入数据载入一个缓冲区中,并将所述第一输入数据与所述一个部分的第二输入数据相乘,得到中间结果;将两个缓冲区的中间结果相加得到输出数据。6.根据权利要求5所述的一种基于昇腾AI处理器的批量矩阵乘算子的优化方法,其特征在于,所述将所述第一输入数据载入一个缓冲区中,并将所述第一输入数据与所述一个部分的第二输入数据相乘,得到中间结果,包括:将所述第一输入数据中的一行载入一个所述缓冲区中;
根据所述加载行数将所述第一输入数据中的一行进行复制,得到复制数据;将所述复制数据与所述一个部分的第二输入数据相乘,得到中间结果。7.根据权利要求1所述的一种基于昇腾AI处理器的批量矩阵乘算...
【专利技术属性】
技术研发人员:马银萍,李若淼,董昊森,樊春,杨宏辉,龙汀汀,
申请(专利权)人:鹏城实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。