System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于进行卷积运算的方法、电子设备和存储介质技术_技高网

用于进行卷积运算的方法、电子设备和存储介质技术

技术编号:40158673 阅读:14 留言:0更新日期:2024-01-26 23:33
本公开涉及一种用于进行卷积运算的方法、电子设备和存储介质。其中方法包括对卷积核进行预处理,以便得到目标卷积核;经由向量核,将卷积算子转换为矩阵乘的数据,并将矩阵乘的数据存储至目标存储区;以及经由张量核,针对目标卷积核和从目标存储区中读取的矩阵乘的数据进行矩阵乘加操作,以便基于矩阵乘加结果生成卷积运算结果。本公开的方案能够显著提高卷积运算的性能。

【技术实现步骤摘要】

本公开的实施例总体涉及ai(人工智能)神经网络,并且更具体地涉及一种卷积运算方法、电子设备和存储介质。


技术介绍

1、ai深度学习领域涉及到大量的卷积运算。以gpgpu为例,其中所设置的张量计算核心可以大幅度提升卷积计算能力。但是,由于卷积算子参数多、参数范围大以及计算量大等特点,常规的卷积运算的性能有待提高。


技术实现思路

1、针对上述问题,本公开提供了一种用于进行卷积运算的、电子设备和存储介质,能够有效提高卷积运算的性能。

2、根据本公开的第一方面,提供一种用于进行卷积运算的方法。该方法包括:对卷积核进行预处理,以便得到目标卷积核;经由向量核(vectorcore),将卷积算子转换为矩阵乘的数据,并将矩阵乘的数据存储至目标存储区;以及经由张量核(tensorcore),针对目标卷积核和从目标存储区中读取的矩阵乘的数据进行矩阵乘加操作,以便基于矩阵乘加结果生成卷积运算结果。

3、在一些实施例中,基于矩阵乘加结果生成卷积结果包括:经由向量核,针对矩阵乘加结果进行排布调整,以便生成卷积运算结果。

4、在一些实施例中,经由向量核将卷积算子转换为矩阵乘的数据并将矩阵乘的数据存储至目标存储区包括:从高带宽存储器获取待卷积运算的卷积算子;经由向量核,针对卷积算子进行im2col操作,以便将操作结果确定为矩阵乘的数据;以及基于卷积参数,将矩阵乘的数据划分为多个子基本块以写入片上高速缓存单元。

5、在一些实施例中,将矩阵乘的数据划分为多个子基本块以写入片上高速缓存单元包括:经由向量核,将当前子基本块存储至片上高速缓存单元中的第一子存储区和第二子存储区中的其中一个;生成对应的数据就绪信号;以及在张量核读取当前子基本块时,经由向量核将下一子基本块存储至片上高速缓存单元中的第一子存储区和第二子存储区中的另一个。

6、在一些实施例中,该方法还包括:张量核在确定接收到对应的数据就绪信号后,读取存储在第一子存储区和第二子存储区中的其中一个的当前子基本块;以及张量核在完成当前子基本块的读取之后,生成对应的子存储区就绪信号。

7、在一些实施例中,将矩阵乘的数据划分为多个子基本块以写入片上高速缓存单元还包括:向量核在确定接收到对应的子存储区就绪信号后,将对应的子基本块存储至对应的子存储区就绪信号所对应的子存储区。

8、在一些实施例中,该方法还包括:将目标卷积核划分为分别与多个子基本块相对应的多个子卷积核;针对目标卷积核和从目标存储区中读取的矩阵乘的数据进行矩阵乘加操作包括:分别针对多个子卷积核中的每一个子卷积核和对应的子基本块进行矩阵乘加操作,以确定对应的子矩阵乘加结果;以及基于多个子基本块对应的子矩阵乘加结果确定矩阵乘加结果。

9、在一些实施例中,该方法还包括:将子基本块划分为多个分基本块;将子卷积核划分为分别与多个分基本块相对应的多个分卷积核;分别针对多个子卷积核中的每一个子卷积核和对应的子基本块进行矩阵乘加操作,以确定对应的子矩阵乘加结果包括:分别针对多个分卷积核中的每一个分卷积核和对应的分基本块进行矩阵乘加操作,以确定对应的分矩阵乘加结果;以及基于多个分基本块对应的分矩阵乘加结果确定子矩阵乘加结果。通过子基本块和分基本块的多级流水并行,得以充分大核计算能力优势。

10、在一些实施例中,针对目标卷积核和从目标存储区中读取的矩阵乘的数据进行矩阵乘加操作包括:如果卷积运算为conv1d fwd卷积运算,则以子目标卷积核作为左矩阵,以子基本块的转置作为右矩阵,进行矩阵乘加操作;如果卷积运算为conv1d bpa卷积运算,则以子目标卷积核作为左矩阵,以反向传播中输出的梯度数据的转置作为右矩阵,进行矩阵乘加操作;以及如果卷积运算为conv1d bpw卷积运算,则以反向传播中输出的梯度数据作为左矩阵,以子基本块作为右矩阵,进行矩阵乘加操作。

11、根据本公开的第二方面,提供一种电子设备。该电子设备包括:至少一个处理器;以及与该至少一个处理器通信连接的存储器;该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行根据本公开的第一方面的方法。

12、根据本公开的第三方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被机器执行时实现根据本公开的第一方面的方法。

13、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

本文档来自技高网...

【技术保护点】

1.一种用于进行卷积运算的方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,基于矩阵乘加结果生成卷积结果包括:

3.如权利要求1所述的方法,其特征在于,经由向量核将卷积算子转换为矩阵乘的数据并将矩阵乘的数据存储至目标存储区包括:

4.如权利要求3所述的方法,其特征在于,将矩阵乘的数据划分为多个子基本块以写入片上高速缓存单元包括:

5. 如权利要求4所述的方法,其特征在于,还包括:

6.如权利要求5所述的方法,其特征在于,将矩阵乘的数据划分为多个子基本块以写入片上高速缓存单元还包括:

7.如权利要求3所述的方法,其特征在于,还包括:

8.如权利要求7所述的方法,其特征在于,还包括:

9.如权利要求1所述的方法,其特征在于,针对目标卷积核和从目标存储区中读取的矩阵乘的数据进行矩阵乘加操作包括:

10. 一种电子设备,其特征在于,包括:

11.一种计算机可读存储介质,其特征在于,计算机可读存储介质上存储有计算机程序,所述计算机程序被机器执行时实现根据权利要求1至9中任一项所述的方法。

...

【技术特征摘要】

1.一种用于进行卷积运算的方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,基于矩阵乘加结果生成卷积结果包括:

3.如权利要求1所述的方法,其特征在于,经由向量核将卷积算子转换为矩阵乘的数据并将矩阵乘的数据存储至目标存储区包括:

4.如权利要求3所述的方法,其特征在于,将矩阵乘的数据划分为多个子基本块以写入片上高速缓存单元包括:

5. 如权利要求4所述的方法,其特征在于,还包括:

6.如权利要求5所述的方法,其特征在于,将矩阵乘的数据...

【专利技术属性】
技术研发人员:请求不公布姓名请求不公布姓名请求不公布姓名请求不公布姓名请求不公布姓名请求不公布姓名
申请(专利权)人:北京壁仞科技开发有限公司
类型:发明
国别省市:

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

1