[发明专利]一种基于异构协同计算核心的融合算子设计与实现方法有效
申请号: | 202111158536.2 | 申请日: | 2021-09-30 |
公开(公告)号: | CN114943635B | 公开(公告)日: | 2023-08-22 |
发明(设计)人: | 叶楠;杨晋喆;王洪磊;高伟 | 申请(专利权)人: | 太初(无锡)电子科技有限公司 |
主分类号: | G06T1/20 | 分类号: | G06T1/20;G06N3/0464;G06N3/063 |
代理公司: | 中国商标专利事务所有限公司 11234 | 代理人: | 张立晶 |
地址: | 214000 江苏省无锡市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 协同 计算 核心 融合 算子 设计 实现 方法 | ||
本发明的一种基于异构协同计算核心的融合算子设计与实现方法,异构协同计算核心包括通用计算核心、卷积专用计算核心,通用计算核心将数据进行分块处理;通用计算核心对第一分块进行预处理计算;卷积专用计算核心依据S2中第一分块的预处理结果进行卷积计算;之后,通用计算核心对第二分块进行预处理;通用计算核心依据第一分块的卷积计算结果,对第一分块进行后处理运算获得第一结果块,并将第一结果块返回内存,之后,通用计算核心对第三分块进行预处理,并将第三分块的预处理结果映射到卷积专用计算核心;卷积专用计算核心依据第二分块的预处理结果卷积计算,至全部分块处理完成、结果块全部进行存储。该方法将计算进行并行流水分配,通过不同计算核心的并行执行,减少计算的时间。
技术领域
本发明涉及一种算子融合方法,特别涉及一种基于异构协同计算核心的融合算子设计与实现方法。
背景技术
在深度学习领域中,对于算力的要求很高、对计算精度的要求不高。目前,主流的算力芯片主要分为以下两类:少量复杂同构核心的中央处理器(CPU)和大量简单同构核心的图形处理器(GPU)。CPU虽然每个处理器计算精度比卷积专用计算核心更高,但是运算单元一般不多,做简单运算的速度上没什么优势;GPU则可以用一些工具让大量处理器做并行运算,在深度学习领域中,面对简单而又大量的运算时,GPU有设计上的优越性。
在深度学习领域中,卷积神经网络(CNN)模型由执行不同计算功能的算子组成,主要包含卷积(Convolution,Conv)、批归一化(BatchNormalization, BN)、激活(Acitivation,常见的主要有ReLU,tanh,sigmoid等)、池化(Pooling) 等算子。其中,非卷积算子的计算量和访存量低于卷积算子,将卷积算子融合其他非卷积算子,可以降低访存量,加速卷积神经网络的运算速度。
主流卷积神经网络模型(ResNet-50、InceptionV3、DenseNet等)中, Conv-BN-ReLU结构块占据了网络结构的80%以上,是一种经典结构。
如图1所示,为上述经典结构前向计算过程中各个算子的数据依赖关系图。运算过程中,Conv算子和ReLU算子各自的输入数据间不存在相互依赖关系;而在BN算子前向计算过程中,首先求输入数据的均值μ与方差δ2 (μ、δ2与输入特征图X存在依赖关系);接着使用均值μ、方差δ2对每个输入数据进行归一化及缩放操作。
依赖关系为:
1、均值μ及方差δ2计算依赖于输入数据X;
2、归一化及缩放计算的输入则依赖于输入数据X、均值μ、方差δ2以及参数γ、β;
3、两部分计算存在前后计算依赖关系,因此两部分计算串行。
如图2所示,为BN算子反向计算过程中各个算子的数据依赖关系图。 BN算子反向计算过程中,首先求参数误差Δγ,Δβ;然后使用参数误差Δγ、Δβ计算输入数据误差ΔX。
依赖关系为:
1、参数误差Δγ、Δβ依赖于输出结果误差ΔY以及输入数据X;
2、输入数据误差ΔX依赖于参数误差Δγ、Δβ及输入数据X、输出误差ΔY;
3、两部分操作存在前后计算依赖关系,因此两部分计算串行。
由于反向计算过程包括求参数误差以及输入数据误差两部分计算,因此 BN层反向计算的关键访存特征是两次使用输入特征数据X及输出误差ΔY,分别用于计算参数误差Δγ、Δβ及输入数据误差ΔX。网络模型训练时,需要保存每层前向计算时输出结果,用于反向计算过程参数误差、输入误差的计算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于太初(无锡)电子科技有限公司,未经太初(无锡)电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111158536.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种异构编程模型并行方法
- 下一篇:一种自动测试火灾探测器的无人机