CN112396072B - 基于asic与vgg16的图像分类加速方法及装置 - Google Patents
基于asic与vgg16的图像分类加速方法及装置 Download PDFInfo
- Publication number
- CN112396072B CN112396072B CN201910748316.1A CN201910748316A CN112396072B CN 112396072 B CN112396072 B CN 112396072B CN 201910748316 A CN201910748316 A CN 201910748316A CN 112396072 B CN112396072 B CN 112396072B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- image classification
- layer
- output
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
一种基于ASIC与VGG16的图像分类加速方法及装置,通过将待实现的卷积神经网络配置为相应的ASIC控制指令,然后通过读取预先存储在外部存储中的检测图片与网络权重,通过ASIC并行实现VGG16图像分类神经网络的运算并得到图像分类结果。本发明通过将检测图片与网络权重预先存储在外部存储中,加速模块读取外部存储的数据,以专用集成电路芯片或高性能现场可编程逻辑阵列为平台,利用专用集成电路芯片或高性能现场可编程逻辑阵列高效率的运算能力,对深度学习网络VGG16图像分类网络进行加速,从而实现小体积、低功耗的图像分类加速模块。
Description
技术领域
本发明涉及的是一种人工智能处理领域的技术,具体是一种基于ASIC与VGG16的图像分类加速方法及装置。
背景技术
现有的深度神经网络一般采用GPU进行加速运算,为了满足嵌入式系统中低功耗小体积的需求,则广泛使用专用于集成电路(ASIC)图像分类的卷积神经网络VGG16进行处理。
发明内容
本发明针对现有深度学习技术必须依赖功耗高、体积大的GPU的问题,提出一种基于ASIC与VGG16的图像分类加速方法及装置,通过将检测图片与网络权重预先存储在外部存储中,加速模块读取外部存储的数据,以专用集成电路芯片或高性能现场可编程逻辑阵列为平台,利用专用集成电路芯片或高性能现场可编程逻辑阵列高效率的运算能力,对深度学习网络VGG16图像分类网络进行加速,从而实现小体积、低功耗的图像分类加速模块。
本发明是通过以下技术方案实现的:
本发明涉及一种基于ASIC与VGG16的图像分类加速方法,通过将待实现的卷积神经网络配置为相应的ASIC控制指令,然后通过读取预先存储在外部存储中的检测图片与网络权重,通过ASIC并行实现VGG16图像分类神经网络的运算并得到图像分类结果。
所述的待实现的卷积神经网络为VGG16。
所述的ASIC控制指令包括:读指令、写指令、读操作或写操作时连续读取或写入数据burst的次数、数据类型的判别信号、计算该层时读取的次数和写入的次数、多次进行读写操作时每一次操作的地址偏移量。
技术效果
与现有技术相比,目前大部分ASIC加速卷积神经网络中,主要以对网络的加速为主,而本发明以ASIC芯片或高性能FPGA为平台,利用ASIC与FPGA高效率的运算能力,对神经网络中得VGG16图像分类网络进行实现,从而实现小体积、低功耗的图像分类加速。
附图说明
图1为实施例流程示意图;
图2为实施加速系统示意图;
图3为运算单元簇示意图;
图4为基本运算单元示意图;
图5为控制指令示意图;
图6为基本运算单元的卷积计算的数据流组织形式示意图;
图7为实施例效果示意图。
具体实施方式
如图2所示,本实施例涉及的一种基于ASIC与VGG16的图像分类加速系统,包括:综合控制模块、存储控制模块、数据读入模块、运算单元簇模块、池化模块和输出缓存模块,其中:综合控制模块控制网络的分层处理流程,存储控制模块处理DDR与片上RAM间的数据搬移,数据读入模块将DDR控制器从存储控制模块的存储器中读入的数据分配给片上权重缓存单元和数据缓存单元,并控制各个缓存单元到运算单元簇模块的基本运算单元的数据输出,池化模块读取运算单元簇模块的数据缓存单元,并进行池化操作,输出给输出缓存输出缓存模块,输出缓存模块收到池化模块的输出结果,组织成为适合DDR写操作的数据并在满足条件时向FIFO中写入DDR写操作指令。
所述的分层处理流程包括:启动VGG16的数据处理、向DDR发出当前层的数据搬移指令、广播当前层的各类信息、发出换层复位信号和换输出通道信。
当每一层卷积计算开始时,存储控制模块接收微控制器发给指令队列(FIFO)的数据搬移指令,依次从DDR中读取权值和输入数据;有输出数据生成需要写回时,由输出缓存模块发出请求,经由DDR控制器将数据写回;DDR控制器同时处理来自ASIC的控制指令队列,并将广播信号发送至各模块,告知各模块当前层的运算方式。当前DDR带宽为256bits,DDR一次burst为4/8/16个DDR带宽。
所述的数据读入模块包括1个权重缓存单元,114x4个分布式的数据缓存单元,其中:权重缓存单元中存放当前层所有的权值,数据缓存单元中存放输入数据。
所述的数据缓存单元分成四组,每组有114个,从四组中选取三组分别对应作为PE的三组(9个)输入,每个数据缓存单元设计成为一个16-bit宽的寄存器。
如图3所示,所述的运算单元簇模块由112个基本运算单元(PE)组成,每个PE为3级流水架构,用于处理一个3x3卷积操作。第一级做9个乘法,第二级做三输入的加法,第三级做四输入的加法(三个前级输出、一个来自数据缓存单元的累加数据)。每个PE分别接收9个数据缓存单元的数据输入、来自权重缓存单元的9个权值输入以及来自存储控制模块的前n个输入通道的累加结果。每个PE将当前层当前PE对应的所有临时数据输出至数据缓存单元。
优选地,当当前层需要进行池化操作,则每读取两拍数据,做一次(2,2)池化;如果不需要池化,则每读取一组数据,直接输出给输出缓存模块。
如图4所示,为每个基本运算单元(PE)。本实施例以3*3的PE阵列为例,同时完成一个尺寸为3的卷积窗口的乘加操作,其他尺寸的卷积也可以通过配置参数完成对PE结构的更新。
如图1所示,为本实施例基于上述系统的图像分类加速方法,预先将所要检测图片以224x224像素的尺寸与预先训练好的网络权重及偏置存储于片外DDR上。
步骤1)将VGG16的每一层的结构,输入尺寸、输出尺寸、输入通道、输出通道、卷积核大小,设置为相应的控制指令,每一层的结构数据以二进制数字的方式分别存入控制指令队列中对应的位置,运算时直接可由存储的位置信息判断读取的数据为该卷积层的何种信息。
如图5所示,所述的控制指令的队列,包括:读指令、写指令、读操作与写操作的起始地址read_addr、write_addr,每个地址占用32bit,每条FIFO控制指令为6x32bit;rd_bl、wr_bl分别为读操作或写操作时连续读取或写入数据burst的次数,ot*为数据类型的判别信号,判断读取的数据是feature map还是网络权重,read_num、write_num分别为计算该层时读取的次数和写入的次数,相当于该层输入的通道个数与该层输出的通道个数,read_offset、write_offset为多次进行读写操作时,每一次操作的地址偏移量。
步骤2)将DDR中的图像、网络权重和偏置暂存入数据缓存单元与寄存器中;
步骤3)当暂存的数据量达到预设值后,将其输入3*3的乘法阵列进行神经网络的卷积运算;
步骤4)完成一次卷积运算结束后,将计算结果暂存于片上寄存器中,当这一层的运算全部计算完成之后,将整层计算结果累加得到该层的计算结果;
本实施例中采用的基本运算单元(PE)为112个,每次完成112个3*3大小的卷积运算,在基本运算单元一次计算完112个卷积之后将计算出的中间值的结果暂存于存储控制模块中,等待这一次的输出通道所有的卷积运算全部计算完成,再将存储控制模块中的卷积计算结果进行累加操作,从而得出一次输出通道的正确结果。
如图6所示,为运算单元簇模块中的基本运算单元的卷积计算的数据流组织形式,具体包括:
1)遍历输入层的特征向量:将该层的特征向量与该次计算的权重进行滑窗式的卷积计算。
2)对输入各层进行遍历,将每一层的特征向量都与该次计算的权重进行卷积计算,之后将各输入层的计算结果进行相加,得到对应输出层的结果。
3)对该层的所有权重进行遍历,计算出不同输出层的所有卷积结果。
步骤5)将整层计算结果输入池化模块进行池化处理后,将池化运算结果排序后选出计算结果最高的前5个数据与其编号,并对照图像分类标签输出图像分类的结果。
如图7所示,为候选图库ILSVRC2012验证集图库,选中的图片为ILSVRC2012_val_00000001、ILSVRC2012_val_00000002、ILSVRC2012_val_00000003。
表1图像分类结果准确率
表2加速模块使用资源量
片上寄存器数量 | 片上存储大小 | DSP使用数量 | 片外存储大小 |
55522 | 36Mb | 896 | 150Mb |
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
Claims (7)
1.一种基于ASIC与VGG16的图像分类加速方法,其特征在于,通过将待实现的卷积神经网络配置为相应的ASIC控制指令,然后通过读取预先存储在外部存储中的检测图片与网络权重,通过ASIC并行实现VGG16图像分类神经网络的运算并得到图像分类结果,具体包括以下步骤:
步骤1)将VGG16的每一层的结构、输入尺寸、输出尺寸、输入通道、输出通道、卷积核大小,设置为相应的ASIC控制指令,每一层的结构数据以二进制数字的方式分别存入控制指令队列中对应的位置,运算时直接可由存储的位置信息判断读取的数据为VGG16的何种信息;
步骤2)将DDR中的图像、网络权重和偏置暂存入数据缓存单元与寄存器中;
步骤3)当暂存的数据量达到预设值后,将其输入3*3的乘法阵列进行神经网络的卷积运算;
步骤4)完成一次卷积运算结束后,将计算结果暂存于片上寄存器中,当这一层的运算全部计算完成之后,将整层计算结果累加得到该层的计算结果;
步骤5)将整层计算结果输入池化模块进行池化处理后,将池化运算结果排序后选出计算结果最高的前5个数据与其编号,并对照图像分类标签输出图像分类的结果;
所述的控制指令的队列,包括:读指令、写指令、读操作与写操作的起始地址read_addr、write_addr,每个地址占用32bit,每条FIFO控制指令为6x32bit;rd_bl、wr_bl分别为读操作或写操作时连续读取或写入数据burst的次数,ot*为数据类型的判别信号,判断读取的数据是feature map还是网络权重,read_num、write_num分别为计算该层时读取的次数和写入的次数,相当于该层输入的通道个数与该层输出的通道个数,read_offset、write_offset为多次进行读写操作时,每一次操作的地址偏移量。
2.一种实现权利要求1所述方法的图像分类加速系统,其特征在于,包括:综合控制模块、存储控制模块、数据读入模块、运算单元簇模块、池化模块和输出缓存模块,其中:综合控制模块控制网络的分层处理流程,存储控制模块处理DDR与片上RAM间的数据搬移,数据读入模块将DDR控制器从存储控制模块的存储器中读入的数据分配给片上权重缓存单元和数据缓存单元,并控制各个缓存单元到运算单元簇模块的基本运算单元的数据输出,池化模块读取运算单元簇模块的数据缓存单元,并进行池化操作,输出给输出缓存输出缓存模块,输出缓存模块收到池化模块的输出结果,组织成为适合DDR写操作的数据并在满足条件时向FIFO中写入DDR写操作指令;当每一层卷积计算开始时存储控制模块接收微控制器发给指令队列的数据搬移指令,依次从DDR中读取权值和输入数据;当有输出数据生成需要写回时,由输出缓存模块发出请求,经由DDR控制器将数据写回;DDR控制器同时处理来自ASIC的控制指令的队列,并将包含当前各层运算方式的广播信号发送至各模块,告知各模块当前层的运算方式。
3.根据权利要求2所述的图像分类加速系统,其特征是,所述的分层处理流程包括:启动VGG16的数据处理、向DDR发出当前层的数据搬移指令、广播当前层的各类信息、发出换层复位信号和换输出通道信。
4.根据权利要求2所述的图像分类加速系统,其特征是,所述的数据读入模块包括1个权重缓存单元,114x4个分布式的数据缓存单元,其中:权重缓存单元中存放当前层所有的权值,数据缓存单元中存放输入数据。
5.根据权利要求2所述的图像分类加速系统,其特征是,所述的数据缓存单元分成四组,每组有114个,从四组中选取三组分别对应作为PE的三组输入。
6.根据权利要求2所述的图像分类加速系统,其特征是,所述的运算单元簇模块由112个基本运算单元组成,每个PE为3级流水架构,用于处理一个3x3卷积操作,其中:第一级做9个乘法,第二级做三输入的加法,第三级做四输入的加法;每个PE分别接收9个数据缓存单元的数据输入、来自权重缓存单元的9个权值输入以及来自存储控制模块的前n个输入通道的累加结果,每个PE将当前层当前PE对应的所有临时数据输出至数据缓存单元。
7.根据权利要求6所述的图像分类加速系统,其特征是,当当前层需要进行池化操作,则每读取两拍数据,做一次(2,2)池化;如果不需要池化,则每读取一组数据,直接输出给输出缓存模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910748316.1A CN112396072B (zh) | 2019-08-14 | 2019-08-14 | 基于asic与vgg16的图像分类加速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910748316.1A CN112396072B (zh) | 2019-08-14 | 2019-08-14 | 基于asic与vgg16的图像分类加速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112396072A CN112396072A (zh) | 2021-02-23 |
CN112396072B true CN112396072B (zh) | 2022-11-25 |
Family
ID=74601304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910748316.1A Active CN112396072B (zh) | 2019-08-14 | 2019-08-14 | 基于asic与vgg16的图像分类加速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112396072B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113516647B (zh) * | 2021-07-27 | 2023-06-13 | 山东浪潮科学研究院有限公司 | 微型真菌类作物病害检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239728A (zh) * | 2017-01-04 | 2017-10-10 | 北京深鉴智能科技有限公司 | 基于深度学习姿态估计的无人机交互装置与方法 |
CN107346326A (zh) * | 2016-05-05 | 2017-11-14 | 百度(美国)有限责任公司 | 用于生成神经网络模型的方法和系统 |
CN107836001A (zh) * | 2015-06-29 | 2018-03-23 | 微软技术许可有限责任公司 | 硬件加速器上的卷积神经网络 |
CN109491938A (zh) * | 2018-11-27 | 2019-03-19 | 济南浪潮高新科技投资发展有限公司 | 一种面向卷积神经网络加速的多通道dma控制器和卷积神经网络加速方法 |
CN109948774A (zh) * | 2019-01-25 | 2019-06-28 | 中山大学 | 基于网络层捆绑运算的神经网络加速器及其实现方法 |
-
2019
- 2019-08-14 CN CN201910748316.1A patent/CN112396072B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107836001A (zh) * | 2015-06-29 | 2018-03-23 | 微软技术许可有限责任公司 | 硬件加速器上的卷积神经网络 |
CN107346326A (zh) * | 2016-05-05 | 2017-11-14 | 百度(美国)有限责任公司 | 用于生成神经网络模型的方法和系统 |
CN107239728A (zh) * | 2017-01-04 | 2017-10-10 | 北京深鉴智能科技有限公司 | 基于深度学习姿态估计的无人机交互装置与方法 |
CN109491938A (zh) * | 2018-11-27 | 2019-03-19 | 济南浪潮高新科技投资发展有限公司 | 一种面向卷积神经网络加速的多通道dma控制器和卷积神经网络加速方法 |
CN109948774A (zh) * | 2019-01-25 | 2019-06-28 | 中山大学 | 基于网络层捆绑运算的神经网络加速器及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112396072A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108416422B (zh) | 一种基于fpga的卷积神经网络实现方法及装置 | |
CN109635944B (zh) | 一种稀疏卷积神经网络加速器及实现方法 | |
CN108133270B (zh) | 卷积神经网络加速方法及装置 | |
US10936937B2 (en) | Convolution operation device and convolution operation method | |
US11775430B1 (en) | Memory access for multiple circuit components | |
US20160093343A1 (en) | Low power computation architecture | |
US20200327079A1 (en) | Data processing method and device, dma controller, and computer readable storage medium | |
CN105843775A (zh) | 片上数据划分读写方法、系统及其装置 | |
CN111008040B (zh) | 缓存装置及缓存方法、计算装置及计算方法 | |
WO2019136764A1 (zh) | 卷积器及其所应用的人工智能处理装置 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
US11544543B2 (en) | Apparatus and method for sparse training acceleration in neural networks | |
CN111768458A (zh) | 一种基于卷积神经网络的稀疏图像处理方法 | |
CN115658146B (zh) | 一种ai芯片、张量处理方法及电子设备 | |
TWI537980B (zh) | 用於寫入經遮罩資料至緩衝器之裝置及方法 | |
US9570125B1 (en) | Apparatuses and methods for shifting data during a masked write to a buffer | |
CN112396072B (zh) | 基于asic与vgg16的图像分类加速方法及装置 | |
US11748100B2 (en) | Processing in memory methods for convolutional operations | |
CN111222090B (zh) | 卷积计算模块、神经网络处理器、芯片和电子设备 | |
US11467973B1 (en) | Fine-grained access memory controller | |
KR20240036594A (ko) | 인-메모리 연산을 위한 부분 합 관리 및 재구성가능 시스톨릭 플로우 아키텍처들 | |
CN115019148A (zh) | 一种目标检测方法 | |
CN111814675B (zh) | 基于fpga支持动态分辨率的卷积神经网络特征图组装系统 | |
CN114707649A (zh) | 一种通用卷积运算装置 | |
US20220108203A1 (en) | Machine learning hardware accelerator |
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 |