CN113469350A - 一种适于npu的深度卷积神经网络加速方法和系统 - Google Patents

一种适于npu的深度卷积神经网络加速方法和系统 Download PDF

Info

Publication number
CN113469350A
CN113469350A CN202110771218.7A CN202110771218A CN113469350A CN 113469350 A CN113469350 A CN 113469350A CN 202110771218 A CN202110771218 A CN 202110771218A CN 113469350 A CN113469350 A CN 113469350A
Authority
CN
China
Prior art keywords
data
calculation
npu
convolution
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110771218.7A
Other languages
English (en)
Other versions
CN113469350B (zh
Inventor
李开
邹复好
郭虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Meitong Technology Co ltd
Original Assignee
Wuhan Meitong Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Meitong Technology Co ltd filed Critical Wuhan Meitong Technology Co ltd
Priority to CN202110771218.7A priority Critical patent/CN113469350B/zh
Publication of CN113469350A publication Critical patent/CN113469350A/zh
Application granted granted Critical
Publication of CN113469350B publication Critical patent/CN113469350B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明实施例提供一种适于NPU的深度卷积神经网络加速方法和系统,根据NPU计算单元结构,预先调整卷积层输入参数的数据排布格式,解决卷积计算过程中计算单元利用不充分的问题,充分利用矩阵计算单元的吞吐量,重新排布NPU中计算指令的执行流水线,挖掘NPU的卷积计算能力,增大深度卷积神经网络中的计算并行性。按照本发明提出的加速方法修改深度卷积神经网络网络中数据流与指令的排布方式,更有利于在NPU上是实现高效快速的卷积神经网络。

Description

一种适于NPU的深度卷积神经网络加速方法和系统
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种适于NPU的深度卷积神经网络加速方法和系统。
背景技术
随着深度学习领域研究的深入,卷积神经网络被应用到了计算机视觉的各个领域中。在近几年的研究与实验中表明,卷积神经网络在目标检测、人脸识别、图像分类和语义分割等诸多图像处理任务上相较于传统计算机视觉算法表现出绝对的统治力。
卷积神经网络在分类、检测等任务上性能不断提升的同时,神经网络模型的参数量与计算量也在大幅增加,在神经网络算法落地应用时,将面临许多问题。使用高性能GPU(Graphics Processing Unit,图形处理器)集群服务虽然能满足计算速度的要求,但也有一些缺点:高延迟,需要将道路视频传输到计算中心进行处理,传输的延迟大大限制了对道路的实时监测能力;高成本,需要购买或租赁大量昂贵的高性能服务器;稳定性低,网络波动直接影响系统稳定性。
使用NPU(Neural-network Processing Unit,嵌入式神经网络处理器)作为嵌入式AI(Artificial Intelligence,人工智能)计算节点,在获取图像信息时实时进行处理并将结果进行反馈,则能保证系统的快速响应,在增加系统稳定性的同时,降低系统搭建的硬件成本。但NPU嵌入式AI计算节点在满足低功耗与低成本得同时,必然也有算力小的缺点。因此利用硬件加速技术,在NPU嵌入式AI计算节点上实现快速的卷积神经网络计算过程至关重要。但如何结合NPU芯片硬件特点充分挖掘出深度卷积神经网络计算模型的并行性以及流水性,合理高效地充分利用有限硬件资源来完成设计仍是亟待解决的问题。
发明内容
本发明实施例提供一种适于NPU的深度卷积神经网络加速方法和系统,充分挖掘出深度卷积神经网络计算模型的并行性以及流水性,合理高效地充分利用有限硬件资源。
第一方面,本发明实施例提供一种适于NPU的深度卷积神经网络加速方法,包括:
步骤S1、将深度卷积神经网络中卷积层的卷积维度信息按嵌入式神经网络处理器NPU上的计算核心数分解,确定每个计算核心负责的卷积核数;
步骤S2、基于输入特征图的维度信息,对输入特征图进行多线程计算分解;
步骤S3、读取每个输入特征图与卷积核权重参数的起始地址,以确定每个计算核心负责的输入特征图数据和卷积核位置;
步骤S4、将卷积层输入数据按通道维度作为最低维度,将维度划分为对齐长度大小,并将卷积层输入数据存入到NPU上缓存;
步骤S5、根据卷积层在卷积计算过程中数据的依赖关系,将卷积层输入数据进行平铺得到二维矩阵,并根据NPU中矩阵计算单元对二维矩阵进行分块计算,将计算后的结果汇总结合,得到卷积计算结果。
作为优选的,所述卷积维度信息包括卷积核权重参数、卷积核尺寸、卷积核填充、卷积核步长与空洞卷积参数;所述输入特征图的维度信息包括特征图尺寸参数。
作为优选的,对输入特征图进行多线程计算分解,具体包括:
将输入特征图进行多线程计算分解,构建多级流水线计算过程:通过配置命令队列的方式控制指令执行的过程,使用三个线程构造一个三级的流水线,利用存储转换指令队列与向量计算队列的独立性与可并行性,通过将指令流中的数据加载,计算过程与结果输出三部分并行执行来隐藏指令计算周期中的等待时间。
作为优选的,所述步骤S4具体包括:
将输入特征图与卷积核数据存储格式由[N,C,H,W]转换为[N,C1,H,W,C0];将卷积层输入数据按通道数分为N/16份,其中N为通道数,向上取整;
以通道数为最低维度排列数据,以使线性存储空间中存取操作数连续。
作为优选的,所述步骤S5中,根据卷积层在卷积计算过程中数据的依赖关系,将卷积层输入数据进行平铺得到二维矩阵,具体包括:
根据数据平铺算法将输入特征图与卷积核数据进行平铺,将空间卷积运算转化为二维矩阵计算;
基于NPU的一个AI CORE中,矩阵计算单元1MB存储空间的输入缓存区,使矩阵计算单元在一个指令周期完成4096对半精度浮点数的乘加运算。
作为优选的,并根据NPU中矩阵计算单元对二维矩阵进行分块计算,具体包括:
基于矩阵分片计算的方法,将二维矩阵按列分片,一次计算出结果对应的一片,在进行完输出的整片结果后,更换缓存区L0B中的数据,开始下一片结果的计算。
第二方面,本发明实施例提供一种适于NPU的深度卷积神经网络加速系统,包括:
多核并行分解模块,用于将深度卷积神经网络中卷积层的卷积维度信息按嵌入式神经网络处理器NPU上的计算核心数分解,确定每个计算核心负责的卷积核数;
基于输入特征图的维度信息,对输入特征图进行多线程计算分解;
输入数据控制模块,用于读取每个输入特征图与卷积核权重参数的起始地址,以确定每个计算核心负责的输入特征图数据和卷积核位置;
数据格式转换模块,用于将卷积层输入数据按通道维度作为最低维度,将维度划分为对齐长度大小,并将卷积层输入数据存入到NPU上缓存;
数据展开模块,用于根据卷积层在卷积计算过程中数据的依赖关系,将卷积层输入数据进行平铺得到二维矩阵;
卷积分块计算模块,用于根据NPU中矩阵计算单元对二维矩阵进行分块计算,将计算后的结果汇总结合,得到卷积计算结果。
作为优选的,还包括:
数据输出控制矩阵,用于根据多核并行分解模块提供的数据分解信息,计算不同计算核心的结果输出地址与偏移量。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明第一方面实施例所述适于NPU的深度卷积神经网络加速方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明第一方面实施例所述适于NPU的深度卷积神经网络加速方法的步骤。
本发明实施例提供的一种适于NPU的深度卷积神经网络加速方法和系统,根据NPU计算单元结构,预先调整卷积层输入参数的数据排布格式,解决卷积计算过程中计算单元利用不充分的问题,充分利用矩阵计算单元的吞吐量,重新排布NPU中计算指令的执行流水线,挖掘NPU的卷积计算能力,增大深度卷积神经网络中的计算并行性。按照本发明提出的加速方法修改深度卷积神经网络网络中数据流与指令的排布方式,更有利于在NPU上是实现高效快速的卷积神经网络。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提出的适于NPU的深度卷积神经网络加速方法流程框图;
图2为本发明实施例提出的适于NPU的深度卷积神经网络加速系统结构框图;
图3为本发明实施例提出的卷积层输入数据排列方式转换示意图;
图4为本发明实施例提出的卷积层数据平铺过程示意图;
图5为本发明实施例的NPU上的矩阵分块计算原理示意图;
图6为本发明实施例的多核并行分解模块构建多级流水线原理示意图;
图7为本发明实施例的多核并行计算数据传输中防止数据踩踏数据偏移计算方式示意图;
图8为本发明实施例提出的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1为本发明实施例提供一种适于NPU的深度卷积神经网络加速方法,包括:
步骤S1、将深度卷积神经网络中卷积层的卷积维度信息按嵌入式神经网络处理器NPU上的计算核心数分解,确定每个计算核心负责的卷积核数;
具体的,例如应用到昇腾NPU中,将卷积层的卷积核权重参数、输入特征图参数存放到NPU存储中,并将卷积层计算相关的卷积核尺寸、填充、步长与空洞卷积参数,与输入特征图相关的特征图尺寸参数传入NPU中;根据外部CPU传入的卷积层计算相关参数,根据输入卷积核维度信息,将输入卷积核按NPU上计算核心数分解;
步骤S2、基于输入特征图的维度信息,对输入特征图进行多线程计算分解;
对卷积层参数进行分析,分解卷积层输入特征图与卷积核权重参数,将分解后的数据分分别传输给不同的计算核,提升卷积计算过程并行度,加快卷积计算过程。除此之外,在分析输入数据格式的根据数据分割方式计算出输入数据与输出数据在NPU外部存储的数据存取偏移。
步骤S3、读取每个输入特征图与卷积核权重参数的起始地址,以确定每个计算核心负责的输入特征图数据和卷积核位置;
分析卷积层计算相关参数,读取输入特征图与卷积核权重数据的起始地址,并根据多核并行分解模块对数据输入分解的情况,计算每个计算核心各自负责的输入数据与卷积核位置;
具体的,通过监控NPU外部存储系统发送数据传输请求,从NPU外部存储系统中获取数据并将数据传入。监控NPU片上缓存使用情况,实时的从外部存储中获取数据,存入空闲的片上缓存中。除此之外,需要根据并行数据的划分来控制NPU外部存储系统中数据的读取顺序,与数据在NPU片上缓存的存放顺序。
步骤S4、将卷积层输入数据按通道维度作为最低维度,将维度划分为对齐长度大小,并将卷积层输入数据存入到NPU上缓存;
根据NPU片上缓存的硬件特点,对输入数据存储格式进行处理,将普通的特征图数据格式转化为适于NPU上片上缓存的排布方式,同时根据NPU的数据传输总线特点,改变数据通路方式,加速数据存取与数据传输速度。除此之外,数据格式转换模块还实时响应步骤S3中的数据传输指令,动态的完成数据格式转换过程。
步骤S5、根据卷积层在卷积计算过程中数据的依赖关系,将卷积层输入数据进行平铺得到二维矩阵,并根据NPU中矩阵计算单元对二维矩阵进行分块计算,将计算后的结果汇总结合,得到卷积计算结果。
步骤S51、获取固定格式的数据,并根据NPU中矩阵计算单元的计算特点与通用卷积计算的流程,将卷积过程中的数据重叠部分展开,存储在片上缓存中,加快矩阵计算单元的数据存取。将展开后的卷积层输入特征图数据与卷积层权重数据转存入所述步骤S52的输入缓存中,做进一步操作。
步骤S52、组织NPU片上缓存中的数据,将输入特征图与卷积核权重分块组织,将卷积计算转换为通用矩阵计算,并将特征图与卷积核权重数据传入矩阵计算单元中,最后将卷积结果重新组织,传入步骤S6中,将数据传输到NPU片外存储中,完成一个卷积层的计算过程。
步骤S6、接收步骤S5计算的结果,并负责将NPU片上缓存上的计算结果数据传输到NPU片外存储空间中。除此之外,根据步骤S1、步骤S2中对输入数据的划分规则,计算出计算结果数据在NPU外部存储中的存储位置,依次存放输出数据。
综上所述,通过改变卷积计算过程中输入特征图与权重数据排布,使NPU中矩阵计算单元数据填充高效快速,利用NPU上多个计算核心,构造并行的神经网络计算过程,使卷积计算过程与NPU计算特点更加匹配,进一步加速NPU上运行的卷积神经网络计算速度。
在上述实施例的基础上,作为一种优选的实施方式,所述卷积维度信息包括卷积核权重参数、卷积核尺寸、卷积核填充、卷积核步长与空洞卷积参数;所述输入特征图的维度信息包括特征图尺寸参数。
在上述实施例的基础上,作为一种优选的实施方式,步骤S2中,对输入特征图进行多线程计算分解,具体包括:
将输入特征图进行多线程计算分解,构建多级流水线计算过程:通过配置命令队列的方式控制指令执行的过程,使用三个线程构造一个三级的流水线,利用存储转换指令队列与向量计算队列的独立性与可并行性,通过将指令流中的数据加载,计算过程与结果输出三部分并行执行来隐藏指令计算周期中的等待时间。
本发明实施例还提供一种适于NPU的深度卷积神经网络加速系统,基于上述各实施例中的适于NPU的深度卷积神经网络加速方法,如图2中所示,包括数据格式转换模块,数据展开模块,卷积计算矩阵分块模块与多核并行数据分解模块,还包括控制NPU数据传输的输入数据控制模块与输出数据控制模块;其中:
所述输入数据控制模块同时与所述数据格式转换模块、多核并行分解模块以及NPU外部存储相连;所述输出数据控制模块同时与所述多核并行分解模块、卷积分块计算模块以及NPU外部存储相连;所述数据展开模块同时与所述数据格式转换模块与卷积分块计算模块相连;
所述输入数据控制模块同时与所述数据格式转换模块、多核并行分解模块以及NPU外部存储相连;所述输出数据控制模块同时与所述多核并行分解模块、卷积分块计算模块以及NPU外部存储相连;所述数据展开模块同时与所述数据格式转换模块与卷积分块计算模块相连;
所述输入数据控制模块监控NPU外部存储系统发送数据传输请求,从NPU外部存储系统中获取数据并将数据传入多核并行分解模块与数据格式转换模块中。输入数据控制模块监控NPU片上缓存使用情况,实时的从外部存储中获取数据,存入空闲的片上缓存中。除此之外,输入数据控制模块需要根据多核并行模块对并行数据的划分来控制NPU外部存储系统中数据的读取顺序,与数据在NPU片上缓存的存放顺序;
所述输出数据控制模块接受卷积分块计算模块计算的结果,并负责将NPU片上缓存上的计算结果数据传输到NPU片外存储空间中。除此之外,所述输出数据控制模块根据多核并行分解模块中对输入数据的划分规则,计算出计算结果数据在NPU外部存储中的存储位置,依次存放输出数据。
所述数据格式转换模块得到所述数据输入控制模块送入的数据后,根据NPU片上缓存的硬件特点,对输入数据存储格式进行处理,将普通的特征图数据格式转化为适于NPU上片上缓存的排布方式,同时根据NPU的数据传输总线特点,改变数据通路方式,加速数据存取与数据传输速度。除此之外,数据格式转换模块还实时响应数据输入控制模块的数据传输指令,动态的完成数据格式转换过程。
所述数据展开模块从所述数据格式转换模块中获取固定格式的数据,并更具NPU中矩阵计算单元的计算特点与通用卷积计算的流程,将卷积过程中的数据重叠部分展开,存储在片上缓存中,加快矩阵计算单元的数据存取。所述数据展开模块将展开后的卷积层输入特征图数据与卷积层权重数据转存入所述卷积分块计算模块的输入缓存中,做进一步操作。
所述卷积分块计算模块组织NPU片上缓存中的数据,将输入特征图与卷积核权重分块组织,将卷积计算转换为通用矩阵计算,并将特征图与卷积核权重数据传入矩阵计算单元中,最后将卷积结果重新组织,传入输出数据控制模块中,由输出数据控制模块将数据传输到NPU片外存储中,完成一个卷积层的计算过程。
所述多核并行分解模块对卷积层参数进行分析,分解卷积层输入特征图与卷积核权重参数,将分解后的数据分分别传输给不同的计算核,提升卷积计算过程并行度,加快卷积计算过程。除此之外,多核并行分解模块在分析输入数据格式的根据数据分割方式计算出输入数据与输出数据在NPU外部存储的数据存取偏移,为输入数据控制模块与输出数据控制模块提供必要的数据传输参数,保证计算结果的正确存储。
进一步地,所述数据格式转换模块根据NPU中缓存区的存储空间大小与反问粒度要求,同时考虑到NPU中矩阵计算单元一次取16个半精度浮点操作数,因此当卷积输入数据与卷积核权重在AI CORE中传输时,应当保证最低维度的数据是以16整数倍的连续存储的,这样对于数据在缓存区间的传输与访问更加高效。鉴于数据访存效率的考虑,所述数据格式转换模块将输入特征图与卷积核数据存储格式由[N,C,H,W]转换为[N,C1,H,W,C0]。将卷积层输入数据按通道数分为N/16份,向上取整,然后以通道数为最低维度排列数据,以保证线性存储空间中存取操作数的连续性。
进一步地,所述数据展开模块为了充分利用NPU片上缓存,将输入特征图与卷积核数据进行平铺,将空间卷积运算转化为二维矩阵计算。将卷积核大小为3x3,步长为1,边缘填充为1的卷积层计算过程,将输入特征图每个通道中卷积重叠的区域进行复制,生成的中间特征图大小为[C,3*H,3*W],最后将中间特征图中每个卷积计算对应区域按列拉伸,存放在矩阵计算单元的输入缓存区中,最后生成的二维矩阵大小为[9*C,H*W]。所述数据展开模块将卷积核参数的二维化,则直接将每个卷积核拉伸为一行,最后得到的权重二维矩阵[N,9*C],其中N为一个卷积层中卷积核的数量,C为一个卷积核的通道数。
进一步地,所述卷积分块计算模块将所述数据展开模块处理结束后的数据,按NPU中的矩阵计算单元计算特点,同时根据矩阵计算中的数据局部性特点,将输入特征图与卷积权重矩阵按16x16的尺寸分块,将对应分块的数据送入矩阵计算单元完成计算,卷积计算的后偏置的计算由矩阵计算单元后紧连的累加器完成。
进一步地,所述多核并行数据分解模块,鉴于普通卷积计算的流程特点,将卷积层计算按卷积核的个数,并结合NPU上的多核计算核心个数划分计算过程。另外,多核并行数据分解模块内部还对一个计算核心上的卷积计算过程按输入特征图的个数,利用NPU内部的命令队列独立性与可并行性,创建多线程流水线并行的方式屏蔽指令的数据读取、计算与结果转存之间的等待时间,进一步加速卷积计算过程。除此之外,多核并行数据分解模块在对池化与激活层的计算过程中,负责计算NPU外部存储与片上缓冲之间数据的传入偏移量计算,与计算结果的传出的保存数据位置偏移量,以防止结果数据的踩踏,保证计算结果正确。
如图3所示,昇腾NPU中不同的缓存区的存储空间大小与反问粒度要求不同,在这些缓存区上传输数据的格式与数量与有所区别,AI CORE中各缓存区参数如表1所示。同时AI CORE中矩阵计算单元一次取16个半精度浮点操作数即32字节对齐,因此当卷积输入数据与卷积核权重在AI CORE中传输时,应当保证最低维度的数据是以16整数倍的连续存储的,这样对于数据在缓存区间的传输与访问更加高效。鉴于数据访存效率的考虑,我们将输入特征图与卷积核数据存储格式由[N,C,H,W]转换为[N,C1,H,W,C0]。将卷积层输入数据按通道数分为N/16份,向上取整,然后以通道数为最低维度排列数据,以保证线性存储空间中存取操作数的连续性。
表1AI CORE中各缓存区参数
Figure BDA0003152632450000121
如图4所示,普通的卷积过程需要进行复杂的存取操作数过程,而昇腾NPU的一个AI CORE中,矩阵计算单元的输入缓存区具有1MB的存储空间大小,同时一个指令周期可完成4096对半精度浮点数的乘加运算,为了充分利用片上缓存,与计算资源,我们使用数据平铺算法将输入特征图与卷积核数据进行平铺,将空间卷积运算转化为二维矩阵计算。我们以卷积核大小为3x3,步长为1,边缘填充为1的卷积计算为例,假设输入特征图尺寸为[C,H,W],其中C为特征图通道数,H和W分别为特征图的高与宽。我们先根据卷积计算步骤,将输入特征图每个通道中卷积重叠的区域进行复制,生成的中间特征图大小为[C,3*H,3*W],最后将中间特征图中每个卷积计算对应区域按列拉伸,存放在矩阵计算单元的输入缓存区中,最后生成的二维矩阵大小为[9*C,H*W]。对于卷积核参数的二维化,则直接将每个卷积核拉伸为一行,最后得到的权重二维矩阵[N,9*C],其中N为一个卷积层中卷积核的数量,C为一个卷积核的通道数。至此一个卷积计算三维的输入特征图与卷积核被我们转换为二维矩阵,最后直接将两个矩阵送入矩阵运算单元中,即可得到该卷积层的计算结果。
如图5所示,将卷积层中输入特征图与卷积核平铺为二维矩阵后,虽然加快了计算速度,但是也增大参数量,当卷积层输入特征图较大时,由于各个片上缓存区存储空间有限,矩阵计算单元的输入缓冲区L0B不能存放完整特征图数据。这时,我们采用矩阵分片计算的方法,利用矩阵运算中的数据局部性特点,将特征图矩阵按列分片,一次计算出结果对于的一片,在进行完输出的整片结果后,在更换缓存区L0B中的数据,开始下一片结果的计算。
AI CORE中的矩阵运算单元提供了特殊的矩阵计算电路,一个指令周期可以完成一对16x16的矩阵乘法运算,但在卷积神经网络的卷积计算中,经过上面的存储格式变换与平铺之后,特征图与卷积核权重矩阵的长是16的整数倍,但是比一般的卷积核计算尺寸都是远超16的,因此我们在矩阵分片计算的基础上需要进行矩阵的分块计算。我们将输入特征图与卷积权重矩阵按16x16的尺寸分块,剩余矩阵高度不足16的块用0填充,输出结果中C1子块的值等于A1子块与B1子块的乘积加上A2子块与B2子块乘积。同理,输出结果中C2子块的值等于A1子块与B3子块的乘积加上A2与B4子块的乘积。其他结果子块的计算以此内推。至此,则可得出卷积层计算的结果。
如图6所示,AI CORE中的单指令多数据流指令一般一次可操作32Byte的数据,一条指令在每个时钟周期内分别完成数据加载,计算与输出存储三个任务。当执行指令队列中有多个指令时,则依次完成各自的任务。我们通过配置命令队列的方式控制指令执行的过程,我们使用三个线程构造一个三级的流水线,利用存储转换指令队列与向量计算队列的独立性与可并行性,通过将指令流中的数据加载,计算过程与结果输出三部分并行执行来隐藏指令计算周期中的等待时间。
如图7所示,在昇腾310NPU中,提供了两个AI CORE,这提供了核级并行计算的能力。我们按卷积层输出特征图的通道数切分计算过程,将卷积层切分为两个部分,分别向每个AI CORE传入一半卷积核与相同的输入特征图,然后计算出的结果在片外存储中结合。如果将计算的粒度拆分过小,超过了AI CORE的个数,则会由CPU调度,依次在AI CORE上运行,由于频繁的数据传入与传出,反倒会让卷积层计算速度减慢。由于AI CORE的数据传输中必须满足32字节对齐,当我们拆分后的卷积输出结果不满足32位对齐,则需要对片外存储中的填充部分进行覆盖,但是由于两个AI CORE计算时间的不确定性,会出现输出结果错误覆盖的情况。以每个AI CORE输出结果不足32字节的情况为例,总的输出为96字节,每个AICORE负责48字节数据结果的计算。当第一个AI CORE计算结束后,将数据存放到全局内存中,不足32字节的用0填充,然后第二个AI CORE计算结束后将结果搬运至外部存储的第48个字节处,并将AI CORE中结果填充的16字节覆盖,这时可以得出正确的结果。但是当AICORE2先计算结束时,先将计算结果数据存放到外部存储的48字节处,这是AI CORE1计算完成,从外部存储的0字节开始存放,则填充的部分字节会将正确的结果覆盖,最后导致结果错误。
为了保证多核计算结果的正确性,我们采用手动地址回退的方法解决数据覆盖的问题。我们在向AI CORE传输操作数时,对于不满足32字节对齐的数据,我们将输入操作数地址回退,示例中AI CORE1的32-63字节用输入数据的16-47字节填充,AI CORE2的32-63字节用输入数据的64-95字节填充,这样结果计算完成后,每个AI CORE结果的第16-31字节的数据与32-47字节的数据相同,因此仅需将AI CORE1输出数据的0-31字节填入外部存储的0-31字节,32-63字节填入外部存储的16-47字节,AI CORE2输出数的0-31字节填入外部存储的48-71字节,32-63字节填入外部存储的64-95字节中,这样两个AI CORE的计算结果互不影响,避免了数据覆盖的问题。
综上所述,本发明实施例结合NPU的硬件特点,设计的深度卷积神经网络加速系统提出在多个方面提升卷积神经网络在NPU下的计算速度,一种适于NPU的深度卷积神经网络加速系统的重要创新点如下:
(1)本发明实施例使用五维数据排布方式来传输卷积层输入特征图与卷积核数据,同时保证最低维度的32字节对齐。并根据深度卷积神经网络中的数据分布特点,将数量较大的通道维度分割,将字节对齐中的填充空白参数比例将到最小,有效的增加数据在NPU上的传输速度,同时增加矩阵计算单元的计算效率。
(2)本发明实施例根据数据排布方式转换后的卷积层输入特征图与卷积层计算特征,在卷积层的卷积核的N维度上使用多计算核心的并行计算方式划分计算过程。在输入特征图N维度上使用多线程划分多卷积核计算过程,构造多级流水线并行计算方式,屏蔽数据传输、计算与结果转出间的等待时间,进一步加速卷积计算过程。
(3)本发明实施例将卷积核数据的[C,H,W]三个维度进行平铺,并组织为行优先的二维矩阵数据排列方式。利用卷积层计算的卷积核尺寸、填充与步长等参数,按卷积核对应的计算过程,将重复的输入特征图数据复制并平铺,解除卷积过程中特征图数据的相互依赖性,增强卷积计算过程的可并行性,将卷积计算过程转换为通用矩阵计算,充分利用NPU上的矩阵计算单元的计算性能,使得NPU上的深度神经网络计算过程得到深层次的加速。
(4)本发明实施例利用矩阵计算过程的数据局部性特点,将卷积特征图与卷积核数据平铺后的矩阵分块。根据NPU上的矩阵计算单元的硬件特点,将二维矩阵分为16x16尺寸的区域,将大片的二维矩阵计算过程拆分为矩阵块之间的计算,再将对应的矩阵块乘法计算结果结合,算出最终的卷积计算结果。
基于相同的构思,本发明实施例还提供了一种电子设备的结构示意图,如图8所示,该服务器可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如上述各实施例所述适于NPU的深度卷积神经网络加速方法的步骤。例如包括:
步骤S1、将深度卷积神经网络中卷积层的卷积维度信息按嵌入式神经网络处理器NPU上的计算核心数分解,确定每个计算核心负责的卷积核数;
步骤S2、基于输入特征图的维度信息,对输入特征图进行多线程计算分解;
步骤S3、读取每个输入特征图与卷积核权重参数的起始地址,以确定每个计算核心负责的输入特征图数据和卷积核位置;
步骤S4、将卷积层输入数据按通道维度作为最低维度,将维度划分为对齐长度大小,并将卷积层输入数据存入到NPU上缓存;
步骤S5、根据卷积层在卷积计算过程中数据的依赖关系,将卷积层输入数据进行平铺得到二维矩阵,并根据NPU中矩阵计算单元对二维矩阵进行分块计算,将计算后的结果汇总结合,得到卷积计算结果。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
基于相同的构思,本发明实施例还提供一种非暂态计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包含至少一段代码,该至少一段代码可由主控设备执行,以控制主控设备用以实现如上述各实施例所述适于NPU的深度卷积神经网络加速方法的步骤。例如包括:
步骤S1、将深度卷积神经网络中卷积层的卷积维度信息按嵌入式神经网络处理器NPU上的计算核心数分解,确定每个计算核心负责的卷积核数;
步骤S2、基于输入特征图的维度信息,对输入特征图进行多线程计算分解;
步骤S3、读取每个输入特征图与卷积核权重参数的起始地址,以确定每个计算核心负责的输入特征图数据和卷积核位置;
步骤S4、将卷积层输入数据按通道维度作为最低维度,将维度划分为对齐长度大小,并将卷积层输入数据存入到NPU上缓存;
步骤S5、根据卷积层在卷积计算过程中数据的依赖关系,将卷积层输入数据进行平铺得到二维矩阵,并根据NPU中矩阵计算单元对二维矩阵进行分块计算,将计算后的结果汇总结合,得到卷积计算结果。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

Claims (10)

1.一种适于NPU的深度卷积神经网络加速方法,其特征在于,包括:
步骤S1、将深度卷积神经网络中卷积层的卷积维度信息按嵌入式神经网络处理器NPU上的计算核心数分解,确定每个计算核心负责的卷积核数;
步骤S2、基于输入特征图的维度信息,对输入特征图进行多线程计算分解;
步骤S3、读取每个输入特征图与卷积核权重参数的起始地址,以确定每个计算核心负责的输入特征图数据和卷积核位置;
步骤S4、将卷积层输入数据按通道维度作为最低维度,将维度划分为对齐长度大小,并将卷积层输入数据存入到NPU上缓存;
步骤S5、根据卷积层在卷积计算过程中数据的依赖关系,将卷积层输入数据进行平铺得到二维矩阵,并根据NPU中矩阵计算单元对二维矩阵进行分块计算,将计算后的结果汇总结合,得到卷积计算结果。
2.根据权利要求1所述的适于NPU的深度卷积神经网络加速方法,其特征在于,所述卷积维度信息包括卷积核权重参数、卷积核尺寸、卷积核填充、卷积核步长与空洞卷积参数;所述输入特征图的维度信息包括特征图尺寸参数。
3.根据权利要求1所述的适于NPU的深度卷积神经网络加速方法,其特征在于,对输入特征图进行多线程计算分解,具体包括:
将输入特征图进行多线程计算分解,构建多级流水线计算过程:通过配置命令队列的方式控制指令执行的过程,使用三个线程构造一个三级的流水线,利用存储转换指令队列与向量计算队列的独立性与可并行性,通过将指令流中的数据加载,计算过程与结果输出三部分并行执行来隐藏指令计算周期中的等待时间。
4.根据权利要求1所述的适于NPU的深度卷积神经网络加速方法,其特征在于,所述步骤S4具体包括:
将输入特征图与卷积核数据存储格式由[N,C,H,W]转换为[N,C1,H,W,C0];将卷积层输入数据按通道数分为N/16份,其中N为通道数,向上取整;
以通道数为最低维度排列数据,以使线性存储空间中存取操作数连续。
5.根据权利要求1所述的适于NPU的深度卷积神经网络加速方法,其特征在于,所述步骤S5中,根据卷积层在卷积计算过程中数据的依赖关系,将卷积层输入数据进行平铺得到二维矩阵,具体包括:
根据数据平铺算法将输入特征图与卷积核数据进行平铺,将空间卷积运算转化为二维矩阵计算;
基于NPU的一个AI CORE中,矩阵计算单元1MB存储空间的输入缓存区,使矩阵计算单元在一个指令周期完成4096对半精度浮点数的乘加运算。
6.根据权利要求1所述的适于NPU的深度卷积神经网络加速方法,其特征在于,并根据NPU中矩阵计算单元对二维矩阵进行分块计算,具体包括:
基于矩阵分片计算的方法,将二维矩阵按列分片,一次计算出结果对应的一片,在进行完输出的整片结果后,更换缓存区L0B中的数据,开始下一片结果的计算。
7.一种适于NPU的深度卷积神经网络加速系统,其特征在于,包括:
多核并行分解模块,用于将深度卷积神经网络中卷积层的卷积维度信息按嵌入式神经网络处理器NPU上的计算核心数分解,确定每个计算核心负责的卷积核数;
基于输入特征图的维度信息,对输入特征图进行多线程计算分解;
输入数据控制模块,用于读取每个输入特征图与卷积核权重参数的起始地址,以确定每个计算核心负责的输入特征图数据和卷积核位置;
数据格式转换模块,用于将卷积层输入数据按通道维度作为最低维度,将维度划分为对齐长度大小,并将卷积层输入数据存入到NPU上缓存;
数据展开模块,用于根据卷积层在卷积计算过程中数据的依赖关系,将卷积层输入数据进行平铺得到二维矩阵;
卷积分块计算模块,用于根据NPU中矩阵计算单元对二维矩阵进行分块计算,将计算后的结果汇总结合,得到卷积计算结果。
8.根据权利要求7所述的适于NPU的深度卷积神经网络加速系统,其特征在于,还包括:
数据输出控制矩阵,用于根据多核并行分解模块提供的数据分解信息,计算不同计算核心的结果输出地址与偏移量。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述适于NPU的深度卷积神经网络加速方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述适于NPU的深度卷积神经网络加速方法的步骤。
CN202110771218.7A 2021-07-07 2021-07-07 一种适于npu的深度卷积神经网络加速方法和系统 Active CN113469350B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110771218.7A CN113469350B (zh) 2021-07-07 2021-07-07 一种适于npu的深度卷积神经网络加速方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110771218.7A CN113469350B (zh) 2021-07-07 2021-07-07 一种适于npu的深度卷积神经网络加速方法和系统

Publications (2)

Publication Number Publication Date
CN113469350A true CN113469350A (zh) 2021-10-01
CN113469350B CN113469350B (zh) 2023-03-24

Family

ID=77879031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110771218.7A Active CN113469350B (zh) 2021-07-07 2021-07-07 一种适于npu的深度卷积神经网络加速方法和系统

Country Status (1)

Country Link
CN (1) CN113469350B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115278360A (zh) * 2022-07-18 2022-11-01 天翼云科技有限公司 一种视频数据处理方法及电子设备
CN116029332A (zh) * 2023-02-22 2023-04-28 南京大学 一种基于lstm网络的片上微调方法及装置
CN116126548A (zh) * 2023-04-20 2023-05-16 广东赛昉科技有限公司 一种在npu中减少资源占用的方法、系统、设备及存储介质
WO2023122896A1 (zh) * 2021-12-27 2023-07-06 华为技术有限公司 一种数据处理方法和装置
WO2024036809A1 (zh) * 2022-08-16 2024-02-22 中国银联股份有限公司 一种生物特征提取方法及装置

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110138157A1 (en) * 2009-12-04 2011-06-09 Synopsys, Inc. Convolution computation for many-core processor architectures
CN107577990A (zh) * 2017-08-09 2018-01-12 武汉世纪金桥安全技术有限公司 一种基于gpu加速检索的大规模人脸识别方法
CN107885700A (zh) * 2017-12-29 2018-04-06 中国人民解放军国防科技大学 一种大规模矩阵卷积的多核实现方法
CN108197075A (zh) * 2017-12-29 2018-06-22 中国人民解放军国防科技大学 一种Inception结构的多核实现方法
CN108920413A (zh) * 2018-06-28 2018-11-30 中国人民解放军国防科技大学 面向gpdsp的卷积神经网络多核并行计算方法
CN109086244A (zh) * 2018-07-11 2018-12-25 中国人民解放军国防科技大学 一种基于向量处理器的矩阵卷积向量化实现方法
US20190005375A1 (en) * 2017-05-25 2019-01-03 Texas Instruments Incorporated Secure convolutional neural networks (cnn) accelerator
US20190102671A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Inner product convolutional neural network accelerator
CN110222818A (zh) * 2019-05-13 2019-09-10 西安交通大学 一种用于卷积神经网络数据存储的多bank行列交织读写方法
CN110458279A (zh) * 2019-07-15 2019-11-15 武汉魅瞳科技有限公司 一种基于fpga的二值神经网络加速方法及系统
CN110633153A (zh) * 2019-09-24 2019-12-31 上海寒武纪信息科技有限公司 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN110674936A (zh) * 2019-09-24 2020-01-10 上海寒武纪信息科技有限公司 一种神经网络处理方法、装置、计算机设备及存储介质
CN110737473A (zh) * 2019-09-24 2020-01-31 北京小米移动软件有限公司 数据处理方法及装置、终端、存储介质
CN110807170A (zh) * 2019-10-21 2020-02-18 中国人民解放军国防科技大学 多样本多通道卷积神经网络Same卷积向量化实现方法
US20200265106A1 (en) * 2019-02-15 2020-08-20 Apple Inc. Two-dimensional multi-layer convolution for deep learning
CN112668708A (zh) * 2020-12-28 2021-04-16 中国电子科技集团公司第五十二研究所 一种提高数据利用率的卷积运算装置
CN113032007A (zh) * 2019-12-24 2021-06-25 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN113222101A (zh) * 2020-02-05 2021-08-06 北京百度网讯科技有限公司 深度学习处理装置、方法、设备和存储介质

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110138157A1 (en) * 2009-12-04 2011-06-09 Synopsys, Inc. Convolution computation for many-core processor architectures
US20190005375A1 (en) * 2017-05-25 2019-01-03 Texas Instruments Incorporated Secure convolutional neural networks (cnn) accelerator
CN107577990A (zh) * 2017-08-09 2018-01-12 武汉世纪金桥安全技术有限公司 一种基于gpu加速检索的大规模人脸识别方法
US20190102671A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Inner product convolutional neural network accelerator
CN107885700A (zh) * 2017-12-29 2018-04-06 中国人民解放军国防科技大学 一种大规模矩阵卷积的多核实现方法
CN108197075A (zh) * 2017-12-29 2018-06-22 中国人民解放军国防科技大学 一种Inception结构的多核实现方法
CN108920413A (zh) * 2018-06-28 2018-11-30 中国人民解放军国防科技大学 面向gpdsp的卷积神经网络多核并行计算方法
CN109086244A (zh) * 2018-07-11 2018-12-25 中国人民解放军国防科技大学 一种基于向量处理器的矩阵卷积向量化实现方法
US20200265106A1 (en) * 2019-02-15 2020-08-20 Apple Inc. Two-dimensional multi-layer convolution for deep learning
CN110222818A (zh) * 2019-05-13 2019-09-10 西安交通大学 一种用于卷积神经网络数据存储的多bank行列交织读写方法
CN110458279A (zh) * 2019-07-15 2019-11-15 武汉魅瞳科技有限公司 一种基于fpga的二值神经网络加速方法及系统
CN110633153A (zh) * 2019-09-24 2019-12-31 上海寒武纪信息科技有限公司 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN110674936A (zh) * 2019-09-24 2020-01-10 上海寒武纪信息科技有限公司 一种神经网络处理方法、装置、计算机设备及存储介质
CN110737473A (zh) * 2019-09-24 2020-01-31 北京小米移动软件有限公司 数据处理方法及装置、终端、存储介质
CN110807170A (zh) * 2019-10-21 2020-02-18 中国人民解放军国防科技大学 多样本多通道卷积神经网络Same卷积向量化实现方法
CN113032007A (zh) * 2019-12-24 2021-06-25 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN113222101A (zh) * 2020-02-05 2021-08-06 北京百度网讯科技有限公司 深度学习处理装置、方法、设备和存储介质
CN112668708A (zh) * 2020-12-28 2021-04-16 中国电子科技集团公司第五十二研究所 一种提高数据利用率的卷积运算装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KOTA ANDO 等: "A Multithreaded CGRA for Convolutional Neural Network Processing", 《CIRCUITS AND SYSTEMS》 *
王得光 等: "基于cpu-FPGA异构多核平台的卷积神经网络并行加速研究", 《第二十二届计算机工程与工艺年会暨第八届微处理器技术论坛论文集》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023122896A1 (zh) * 2021-12-27 2023-07-06 华为技术有限公司 一种数据处理方法和装置
CN115278360A (zh) * 2022-07-18 2022-11-01 天翼云科技有限公司 一种视频数据处理方法及电子设备
CN115278360B (zh) * 2022-07-18 2023-11-07 天翼云科技有限公司 一种视频数据处理方法及电子设备
WO2024036809A1 (zh) * 2022-08-16 2024-02-22 中国银联股份有限公司 一种生物特征提取方法及装置
CN116029332A (zh) * 2023-02-22 2023-04-28 南京大学 一种基于lstm网络的片上微调方法及装置
CN116029332B (zh) * 2023-02-22 2023-08-22 南京大学 一种基于lstm网络的片上微调方法及装置
CN116126548A (zh) * 2023-04-20 2023-05-16 广东赛昉科技有限公司 一种在npu中减少资源占用的方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN113469350B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
CN113469350B (zh) 一种适于npu的深度卷积神经网络加速方法和系统
Wang et al. Sparse-YOLO: Hardware/software co-design of an FPGA accelerator for YOLOv2
US11720800B2 (en) Efficient data layouts for convolutional neural networks
US10394929B2 (en) Adaptive execution engine for convolution computing systems
KR102316670B1 (ko) 연산 가속기
Guo et al. Software-hardware codesign for efficient neural network acceleration
CN112840356B (zh) 运算加速器、处理方法及相关设备
US20180260710A1 (en) Calculating device and method for a sparsely connected artificial neural network
EP4036810A1 (en) Neural network processing method and apparatus, computer device and storage medium
US20130243329A1 (en) Parallel object detection method for heterogeneous multithreaded microarchitectures
Mittal A survey of accelerator architectures for 3D convolution neural networks
US20230026006A1 (en) Convolution computation engine, artificial intelligence chip, and data processing method
CN112162854A (zh) 一种cpu-gpu间计算任务调度方法、系统及介质
Wu et al. Compute-efficient neural-network acceleration
CN111898733A (zh) 一种深度可分离卷积神经网络加速器架构
CN114995782B (zh) 数据处理方法、装置、设备和可读存储介质
CN114503125A (zh) 结构化剪枝方法、系统和计算机可读介质
WO2019184888A1 (zh) 一种基于卷积神经网络的图像处理的方法和装置
Huang et al. IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency
CN113837922A (zh) 计算装置、数据处理方法及相关产品
CN115130672A (zh) 一种软硬件协同优化卷积神经网络计算的方法及装置
CN113469337A (zh) 用于优化神经网络模型的编译方法及其相关产品
KR20220049325A (ko) 가속기 및 이를 포함한 전자 장치
CN116781484B (zh) 数据处理方法、装置、计算机设备及存储介质
CN113240570B (zh) 一种GEMM运算加速器及基于GoogLeNet的图像处理加速方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant