CN111445019B - 一种分组卷积中通道混洗操作的实现装置及方法 - Google Patents
一种分组卷积中通道混洗操作的实现装置及方法 Download PDFInfo
- Publication number
- CN111445019B CN111445019B CN202010361012.2A CN202010361012A CN111445019B CN 111445019 B CN111445019 B CN 111445019B CN 202010361012 A CN202010361012 A CN 202010361012A CN 111445019 B CN111445019 B CN 111445019B
- Authority
- CN
- China
- Prior art keywords
- channel
- data
- shuffling
- control unit
- level control
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种分组卷积中通道混洗操作的实现装置及方法。该实现装置包括顶层控制单元、Reg数组和通道混洗模块,顶层控制单元用于将分组卷积结果存入Reg数组,并且控制通道混洗模块的数据处理过程;Reg数组用于存储分组卷积得到的各通道数据并向通道混洗模块输出数据;通道混洗模块用于对Reg数组传来的数据按混洗规则进行通道混洗处理并输出数据。在顶层控制单元的控制下完成对分组卷积结果的混洗操作,可以加快数据处理的速度、提高FPGA片上资源的利用率、降低***的瞬时负载,本发明装置结构简单、可靠、方便实现。
Description
技术领域
本发明公开了一种分组卷积中通道混洗操作的实现装置及方法,属于人工智能数据处理技术领域。
背景技术
卷积神经网络是目前深度学习技术领域中非常具有代表性的神经网络之一,在图像分析和处理领域取得了众多突破性的进展。在学术界常用的标准图像标注集ImageNet上,基于卷积神经网络取得了很多成就,包括图像特征提取分类、场景识别等。2012年,卷积神经网络AlexNet在ImageNet的训练集上取得了图像分类的冠军,使得卷积神经网络成为计算机视觉中的重点研究对象,并且不断深入。在AlexNet网络之后,不断有新的卷积神经网络提出,包括牛津大学的VGG网络、微软的ResNet网络、谷歌的GoogLeNet网络等,这些网络的提出使得卷积神经网络逐步开始走向商业化应用。
分组卷积(Group Convolution),最早见于AlexNet网络,当时由于GPU显存受限,Group Convolution被用来切分网络,使其在2个GPU上并行运行。如今,随着卷积神经网络层数和参数的增加,分组卷积在越来越多的网络中得到使用,最主要的原因是分组卷积相比常规卷积可以减少大量的参数,同时对网络的性能影响却很小。
2017年,旷世提出了ShuffleNet V1(Zhang X,Zhou X,Lin M,et al.ShuffleNet:An Extremely Efficient Convolutional Neural Network for Mobile Devices[J].2017),该网络的两个主要创新点是逐点卷积(Pointwise Group Convolution)和通道混洗(Channel Shuffle)。逐点卷积是用来减少1*1卷积的计算复杂度,但是这样会带来副作用,通道间的信息没有得到很好的交流融合。所以,继而提出通道混洗来帮助信息在不同特征通道中的流动。现有实现Channel Shuffle的方法是将分组卷积的结果先存储到BRAM中,然后再根据shuffle规则,从BRAM中读取相应数据进行Channel Shuffle处理,最后存入新的BRAM中,这样一来需要使用两份BRAM来实现shuffle操作,如果FPGA片上BRAM较小,这种Channel Shuffle的方式会给硬件设计带来极大限制。
发明内容
本发明的目的在于针对近来深度学习中使用较多的分组卷积,提供一种分组卷积中通道混洗操作的实现装置及方法,通过相关设计,可以加快数据处理的速度、提高FPGA片上资源的利用率、降低***的瞬时负载。
本发明装置采用的技术方案为:
一种分组卷积中通道混洗操作的实现装置,包括顶层控制单元、Reg数组和通道混洗模块;顶层控制单元,用于将分组卷积结果存入Reg数组,并且控制通道混洗模块的数据处理过程;Reg数组,用于存储分组卷积得到的各通道数据并向通道混洗模块输出数据;通道混洗模块,用于对Reg数组传来的数据按混洗规则进行通道混洗处理并输出数据。
进一步地,所述顶层控制单元根据分组卷积结果中特征点的通道信息将数据存入Reg数组中相应的位置。
进一步地,所述顶层控制单元还用于检测同一特征点所有通道数据是否全部存入Reg数组。
进一步地,所述Reg数组采用DRAM存储器。
本发明上述装置的实现方法,包括如下步骤:
首先,顶层控制单元接收分组卷积的结果,并根据特征点的通道信息将数据存入Reg数组相应的位置,每个结果存入时顶层控制单元都会有一个记录;
针对稀疏卷积神经网络,由于稀疏度的不同,各卷积结果并非同时算出,因此Reg数组中的数据不是同时存入的,顶层控制单元根据记录来检测同一特征点所有通道的数据是否全部存入;当检测到数据全部存入后,顶层控制单元控制Reg数组将相应的数据送入通道混洗模块,然后通道混洗模块根据混洗规则对数据进行处理,实现信息在不同特征通道中的流动;
最后,通道混洗模块在顶层控制单元的控制下将处理好的数据输出和存储。
进一步地,通道混洗模块所用的混洗规则为:对于n分组的分组卷积,首先将各分组的第一个通道取出,按各分组的先后顺序组成新特征点的前n个通道,接着将各分组的第二个通道同样以分组先后顺序的方式接在所述前n个通道之后,余下通道依此类推,完成对输入数据的混洗操作。
与现有技术相比,本发明的优点是:
(1)本发明的Reg数组采用DRAM(Distributed RAM),与采用BRAM(Block RAM)相比主要有两个优势:首先,DRAM在一个时钟里可以直接访问所有的数据,而BRAM一次只能访问一个地址的数据,如果将分组卷积结果先存入BRAM,那么通道混洗时读取数据相比DRAM会花费更多的时间;其次,BRAM在FPGA中是整块分布的,即使只用了它的一小部分,那么整个BRAM就不能再用了。由于FPGA片上资源有限,对于每一层的卷积,都是逐块计算的,因此每次需要存储的数据量并不大,如果采用BRAM,只会使用其中很小的一部分空间,造成BRAM的浪费,而DRAM是逻辑单元拼出来的,需要多少就使用多少,更加灵活,适合小量数据的存储。
(2)对于稀疏卷积神经网络,由于稀疏度不完全相同,各运算单元完成运算的速度存在差异。通用的加速器没有考虑到稀疏度的不同,会等待所有卷积计算完成后才进行下一步处理,除了使数据处理变慢还增加了***的瞬时负载。考虑到稀疏卷积神经网络的流行,本发明通过顶层控制单元记录相应通道的数据是否存存入,当同一个特征点所有通道都存入后,Reg数组立即将相关数据传给通道混洗模块进行混洗处理,不需要等所有通道都计算完成再进行通道混洗,从而加快处理速度、减少瞬时负载。
(3)对于通道混洗操作,给出了一个通用的混洗规则,可以适用于不同分组数的分组卷积。和采用随机混洗的方式相比,本发明给出的混洗规则电路实现简单,性能相比随机混洗也不会有明显降低。
附图说明
图1是实施例通道混洗操作实现装置的结构示意图;
图2是实施例中PE阵列的示意图;
图3是实施例通道混洗方式示意图。
具体实施方式
下面结合附图对本发明方案进行详细说明。
如图1所示,本发明实施例的分组卷积结果由PE(计算单元)阵列产生,通道混洗操作的实现装置包括顶层控制单元、Reg数组和通道混洗模块,顶层控制单元分别和Reg数组、通道混洗模块连接,Reg数组和通道混洗模块连接。顶层控制单元,用于接收PE阵列算出的分组卷积结果并根据结果的来源将结果存入Reg数组相应位置;检测同一特征点所有通道数据是否全部存入Reg数组;控制Reg数组向通道混洗模块传入数据;控制通道混洗模块将处理好的数据输出。Reg数组,根据顶层控制单元的控制信息存储分组卷积得到的各通道数据以及向通道混洗模块输出数据。通道混洗模块,根据顶层控制单元的控制信息将Reg数组输出的通道数据按混洗规则进行通道混洗处理并输出。
图2给出了实施例中PE阵列的组成,具体来说,采用4分组分组卷积,每次对9个特征点进行计算,反映在图上即WG1-WG9;每个WG(Work Group)负责一个特征点的计算,由8个PE单元组成,每个PE负责一个卷积核的计算,同一个WG的8个PE单元共享激励,各WG的对应PE共享权值,每个PE单元的计算结果对应输出特征点的一个通道,因此在本实施例中输出特征点共有32通道。
与输入相匹配,在顶层控制单元中设置9个寄存器index1-index9分别用来记录9个点各通道的存入情况,每个index大小为32bit,每一位对应输出的一个通道,初始设为0,存入数据时置为1。同样的,Reg数组设置9个寄存器reg1-reg9,用来存储9个特征点的通道值;通道混洗模块设置9个子模块channel_shuffle1-channle_shuffle9分别对9个点进行通道混洗。
下面结合图1具体介绍一下本实施例装置的实现过程:首先顶层控制单元接收PE阵列计算的分组卷积的结果并根据结果的来源存入Reg数组相应位置,每个结果存入时顶层控制单元都会有一个记录,以Parallel_1中WG1的PE1为例,当其计算完成时,顶层控制单元会将结果存入Reg数组的reg1的第1个位置同时将index1第一个位置的值置为1。在每个时钟周期,顶层控制单元都会对各index中的数据进行检测,当检测到32个位置的数据都为1时,顶层控制单元会控制Reg数组将相应的数据送入通道混洗模块,例如检测到index1所有数据为1,那么就将reg1的数据送入channel_shuffle1进行处理通道混洗模块会根据shuffle规则对数据进行通道混洗处理,实现信息在不同特征通道中的流动。最后通道混洗模块在顶层控制单元的控制下将处理好的数据存入相应BRAM中。
图3给出了本实施例分组卷积通道混洗的规则。首先将各组第一个通道取出,按各组的先后顺序组成新特征点的前四个通道,接着将各组的第二个通道以同样的方式接在之前四个通道之后,剩下的通道操作方法一样,最终完成对输入通道的混洗操作,实现各分组通道的相互联系。其他分组数的分组卷积方法类似。
综上所述,利用本发明实施例提出的分组卷积中通道混洗操作的实现装置及方法,可以加快数据处理的速度、提高FPGA片上资源的利用率、降低***的瞬时负载,能够在资源受限的情况下满足对延迟较为敏感的图像处理、实时检测等任务的要求。
Claims (4)
1.一种分组卷积中通道混洗操作的实现装置,其特征在于,包括顶层控制单元、Reg数组和通道混洗模块;
顶层控制单元,用于将分组卷积结果存入Reg数组,并且控制通道混洗模块的数据处理过程;所述顶层控制单元还用于检测同一特征点所有通道数据是否全部存入Reg数组;
Reg数组,采用DRAM存储器,用于存储分组卷积得到的各通道数据并向通道混洗模块输出数据;
通道混洗模块,用于对Reg数组传来的数据按混洗规则进行通道混洗处理并输出数据。
2.根据权利要求1所述的一种分组卷积中通道混洗操作的实现装置,其特征在于,所述顶层控制单元根据分组卷积结果中特征点的通道信息将数据存入Reg数组中相应的位置。
3.利用如权利要求1所述一种分组卷积中通道混洗操作的实现装置的操作方法,其特征在于,该方法包括如下步骤:
首先,顶层控制单元接收分组卷积的结果,并根据特征点的通道信息将数据存入Reg数组相应的位置,每个结果存入时顶层控制单元都会有一个记录;
针对稀疏卷积神经网络,顶层控制单元根据记录来检测同一特征点所有通道的数据是否全部存入;当检测到数据全部存入后,顶层控制单元控制Reg数组将相应的数据送入通道混洗模块,然后通道混洗模块根据混洗规则对数据进行处理,实现信息在不同特征通道中的流动;
最后,通道混洗模块在顶层控制单元的控制下将处理好的数据输出和存储。
4.根据权利要求3所述的方法,其特征在于,通道混洗模块所用的混洗规则为:对于n分组的分组卷积,首先将各分组的第一个通道取出,按各分组的先后顺序组成新特征点的前n个通道,接着将各分组的第二个通道同样以分组先后顺序的方式接在所述前n个通道之后,余下通道依此类推,完成对输入数据的混洗操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010361012.2A CN111445019B (zh) | 2020-04-30 | 2020-04-30 | 一种分组卷积中通道混洗操作的实现装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010361012.2A CN111445019B (zh) | 2020-04-30 | 2020-04-30 | 一种分组卷积中通道混洗操作的实现装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111445019A CN111445019A (zh) | 2020-07-24 |
CN111445019B true CN111445019B (zh) | 2023-04-18 |
Family
ID=71656328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010361012.2A Active CN111445019B (zh) | 2020-04-30 | 2020-04-30 | 一种分组卷积中通道混洗操作的实现装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111445019B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112907600B (zh) * | 2021-03-10 | 2024-05-24 | 无锡禹空间智能科技有限公司 | 目标检测模型的优化方法及*** |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110910434A (zh) * | 2019-11-05 | 2020-03-24 | 东南大学 | 基于fpga高能效实现深度学习视差估计算法的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116416561A (zh) * | 2019-11-22 | 2023-07-11 | 迪爱斯信息技术股份有限公司 | 一种视频图像处理方法和装置 |
-
2020
- 2020-04-30 CN CN202010361012.2A patent/CN111445019B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110910434A (zh) * | 2019-11-05 | 2020-03-24 | 东南大学 | 基于fpga高能效实现深度学习视差估计算法的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111445019A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886400B (zh) | 基于卷积核拆分的卷积神经网络硬件加速器***及其计算方法 | |
CN108416327B (zh) | 一种目标检测方法、装置、计算机设备及可读存储介质 | |
CN111488983B (zh) | 一种基于fpga的轻量级cnn模型计算加速器 | |
CN110348574B (zh) | 一种基于zynq的通用卷积神经网络加速结构及设计方法 | |
JP6109186B2 (ja) | 状態機械格子におけるカウンタ動作 | |
CN108665063B (zh) | 用于bnn硬件加速器的双向并行处理卷积加速*** | |
EP3855367A1 (en) | Operation accelerator, processing method, and related device | |
CN113051216B (zh) | 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法 | |
CN107256424B (zh) | 三值权重卷积网络处理***及方法 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN105426517B (zh) | 一种具有图像处理功能的智能存储设备 | |
CN110991630A (zh) | 一种面向边缘计算的卷积神经网络处理器 | |
WO2021147276A1 (zh) | 数据处理方法、装置及芯片、电子设备、存储介质 | |
CN108881254B (zh) | 基于神经网络的入侵检测*** | |
CN111768458A (zh) | 一种基于卷积神经网络的稀疏图像处理方法 | |
CN110083834A (zh) | 语义匹配模型训练方法、装置、电子设备及存储介质 | |
CN111445019B (zh) | 一种分组卷积中通道混洗操作的实现装置及方法 | |
KR20210045225A (ko) | 뉴럴 네트워크에서 연산을 수행하는 방법 및 장치 | |
CN112396072B (zh) | 基于asic与vgg16的图像分类加速方法及装置 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN111814972B (zh) | 一种基于fpga的神经网络卷积运算加速方法 | |
CN112306951A (zh) | 一种基于fpga的cnn-svm资源高效型加速架构 | |
US20210357647A1 (en) | Method and System for Video Action Classification by Mixing 2D and 3D Features | |
CN113222129A (zh) | 一种基于多级缓存循环利用的卷积运算处理单元及*** | |
CN111652051B (zh) | 人脸检测模型生成方法、装置、设备和存储介质 |
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 |