CN108805266B - 一种可重构cnn高并发卷积加速器 - Google Patents

一种可重构cnn高并发卷积加速器 Download PDF

Info

Publication number
CN108805266B
CN108805266B CN201810497967.3A CN201810497967A CN108805266B CN 108805266 B CN108805266 B CN 108805266B CN 201810497967 A CN201810497967 A CN 201810497967A CN 108805266 B CN108805266 B CN 108805266B
Authority
CN
China
Prior art keywords
convolution
address
reconfigurable
unit
data
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
Application number
CN201810497967.3A
Other languages
English (en)
Other versions
CN108805266A (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN201810497967.3A priority Critical patent/CN108805266B/zh
Publication of CN108805266A publication Critical patent/CN108805266A/zh
Application granted granted Critical
Publication of CN108805266B publication Critical patent/CN108805266B/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Abstract

本发明提供了一种可重构CNN高并发卷积加速器,包括:权重地址生成单元,生成卷积核数据在缓存中的地址;结果地址生成单元,生成结果数据在缓存中的地址;可重构计算单元,可将计算阵列重构为两种不同粒度的乘累加树电路;特征图地址生成单元,生成特征图数据在缓存中的地址;主控制器,生成与地址同步的累加器清零信号,选通可重构计算单元中对应的电路,产生整个运算结束的中断信号;存储交换单元,将有效的特征图读地址、权重读地址转换为对存储单元的读操作,将有效的结果写地址和数据转换为对存储单元的写操作。有益效果:简化控制部分,极大地提高多通道二维卷积运算并行度和对存储访问的效率,减少占用的资源。

Description

一种可重构CNN高并发卷积加速器
技术领域
本发明涉及卷积运算进行加速的硬件架构,尤其涉及一种可重构CNN高并发卷积加速器。
背景技术
一方面随着半导体工艺技术的不断提高,处理器的计算性能进一步提高,另一方面移动互联网的爆炸式发展,产生的海量数据可以轻易获得。神经网络在这种背景下,得到了全新的发展,尤其在图像识别,语音识别等领域取得了关键性的突破。卷积神经网络中的卷积层属于多通道的二维卷积运算,设输入的特征图大小为Sf×Sf×Cf,卷积核大小为Sk×Sk×Cf×Ck,输出结果大小为 So×So×Co,卷积步幅为S。则有So=(Sf-Sk)÷S+1,Co=Ck,输出结果的第k个通道的第i行第j列数据可由公式(1)可得:
Figure BDA0001667633260000011
目前神经网络的加速高度依赖于英伟达的GPU加速卡,而其功耗高、效率低的缺点限制了它的应用场景。一些专用的神经网络加速器,卷积运算资源利用率不高,配置复杂。本发明以此为切入点,针对卷积神经网络中不同卷积层的特性,基于可重构架构,以期提高运算资源的利用率和效率,提升整体卷积运算的性能。
发明内容
本发明提供了一种可以用来加速卷积神经网络中多通道卷积运算的方法,其特点是有两种不同的卷积运算模式,图像输入模式对应输入层为红绿蓝三通道的卷积,普通卷积模式对应中间卷积层,支持的特征图大小、特征图通道数、卷积核大小、卷积核通道数、卷积步幅灵活可变,控制逻辑简单,卷积运算并行度高,乘累加运算单元利用率高,资源消耗较少。本发明的技术方案具体实现方案如下:
所述可重构CNN高并发卷积加速器,包括:
权重地址生成单元,生成卷积核数据在缓存中的地址;
结果地址生成单元,生成结果数据在缓存中的地址;
可重构计算单元,对应于两种卷积工作模式,可将计算阵列重构为两种不同粒度的乘累加树电路;
特征图地址生成单元,生成特征图数据在缓存中的地址;
主控制器,内部包含配置寄存器文件,根据配置的特征图大小、特征图通道数、卷积核大小、卷积核通道数、输出结果大小、输出结果通道数、卷积步幅以及卷积模式信息控制特征图地址生成单元、权重地址生成单元和结果地址生成单元,并生成与地址同步的累加器清零信号,选通可重构计算单元中对应的电路,产生整个运算结束的中断信号;
存储交换单元,将有效的特征图读地址、权重读地址转换为对存储单元的读操作,将有效的结果写地址和数据转换为对存储单元的写操作。
所述可重构CNN高并发卷积加速器的进一步设计在于,特征图数据和卷积核数据通过专用的映射方式进行存储。
所述可重构CNN高并发卷积加速器的进一步设计在于,所述可重构计算单元的两种工作模式分别为图像输入模式和普通卷积模式,分别对应于卷积神经网络中图像输入层和中间卷积层的卷积运算。
所述可重构CNN高并发卷积加速器的进一步设计在于,普通模式下乘累加树结构为64通道;图像输入模式下的乘累加树结构为16路4通道;两种工作模式下,特征图数据和卷积核数据在存储中的映射按照由高到低的优先级顺序依次为通道方向、行方向、列方向。
所述可重构CNN高并发卷积加速器的进一步设计在于,在普通卷积模式下,多通道特征图和多通道卷积核按64个通道组成一个数据块。
所述可重构CNN高并发卷积加速器的进一步设计在于,图像输入模式下三通道的卷积核补充一个通道的0形成四通道,16个卷积核组成一组。
所述可重构CNN高并发卷积加速器的进一步设计在于,单个所述可重构乘累加树将计算阵列中的乘法器和加法器进行重组和选通成不同粒度的乘累加树,每个乘累加树将运算结果输出至一个累加器。
所述可重构CNN高并发卷积加速器的进一步设计在于,可重构计算单元里有8个可重构乘累加树结构,实现普通模式下8路卷积的并行运算或图像输入模式下128路卷积的并行运算。
本发明的优点
本发明的可重构CNN高并发卷积加速器采用了图像输入模式和普通卷积模式两种不同工作模式,以适应卷积神经网络中输入层与中间卷积层运算的不同特性,提高乘加单元的利用率,共享了硬件资源。采用特定的数据映射方式,简化控制部分,极大地提高多通道二维卷积运算并行度和对存储访问的效率,减少占用的资源。本申请的加速器可以很好地移植到不同的数据类型上,或者实现更大规模的乘累加树以用于更大规模的数据。
另一方面,在本发明的基础上,可以增添卷积神经网络中不同激活层、不同池化层等的硬件实现,依然能够实现全流水,达到对整个卷积神经网络加速的支持。
附图说明
图1可重构卷积加速器整体架构图。
图2普通卷积模式中多通道特征图与卷积核示意图。
图3普通卷积模式中特征图和卷积核的地址映射方式。
图4中的 (a)普通卷积模式中特征图在存储时的映射方式。
图4中的 (b)普通卷积模式中卷积核在存储时的映射方式。
图5图像输入模式下卷积核在存储单元中的映射方式。
图6四通道乘累加树结构图。
图7单个可重构乘累加树单元结构图。
具体实施方式
下面结合附图和具体实现案例对本发明进行详细说明。
如图1,可重构卷积加速器主要由主控制器、特征图地址产生单元、权重地址产生单元、可重构计算单元、结果地址产生单元和存储交换单元组成。主控制器负责接收运算配置信息,包括特征图大小、特征图通道数、卷积核大小、卷积核通道数、输出结果大小、输出结果通道数、卷积步幅和卷积模式,接收启动信号来启动各个子模块,根据配置信息在内部计算出每次卷积运算循环的索引值,根据索引值与卷积模式,由特征图地址生成单元与权重地址生成单元产生有效地址发送给存储交换单元,从缓存中读取特征图数据与卷积核数据,并根据索引值生成累加器清零信号和整个计算的结束信号。按照对应的卷积模式,可重构计算单元选通对应的电路,根据累加器清零信号输出卷积结果。结果地址生成单元根据配置信息生成有效的结果地址,与可重构计算单元输出的有效结果数据一同发送到存储交换单元,写入结果缓存中。存储交换单元把有效的特征图读地址、权重读地址转换为对存储单元的读操作,把有效的结果数据和写地址转换为对存储单元的写操作。
主控制器内部有一组用于循环遍历的寄存器,对应于背景技术中的公式(1),按照优先级由低到高的顺序依次为k、i、j、p、q、m。对于第k通道第i行第j 列的结果数据,m为数据块级遍历,p和q用于遍历特征图和第k个卷积核中以第i行第j列开始的Sk×Sk的矩阵,特征值地址生成单元和权重地址生成单元根据这一组循环遍历寄存器产生对应的地址,当p和q的一次遍历结束时,产生累加器清零信号,同时i和j指向下一个结果数据。
如图2所示,除了图像输入层一般为3层,卷积神经网络中间卷积层的特征图和卷积核都有多个通道,并且通道数往往较大。本实施例按照64个通道划分为一个数据块,把特征图和卷积核分成多个数据块,最后一个数据块不足64个通道则用0补齐至64个。
不同于矩阵在存储中一般按行放置的方式,普通卷积模式下数据块在缓存中的地址映射方式有特定的结构。64个通道组成一个数据块,在每个数据块中,随地址的增长,数据块在存储中的映射按照由高到低的优先级顺序依次为通道方向、行方向、列方向。图3以大小为4×4的特征图为例,展示了其在缓存中的映射方式。DIN(c,i,j)表示通道c的第i行,第j列数。一个读操作可以将64个通道的第i行第j列元素全部读出。卷积核的映射方式同特征图类似。
如图4中的 (a)、图4中的 (b),由于在卷积运算中,特征图的数据是为所有卷积核共享的,特征图的数据块按照图4中的 (a)的方式映射。本实施例采用了8路卷积并行的结构,权重缓存采用8个接口,可以实现对8个卷积核的同时访问,提高卷积运算的并行度。卷积核在缓存中的映射方式,参见图4中的 (b)。
由于图像输入的通道数一般为3,如果像普通模式下以64通道为一个数据块,将造成很大的存储浪费和计算资源空闲。在图像模式下,3通道的图像输入数据补齐至4通道,16个卷积核为一组,卷积核组的映射方式与普通模式下卷积核的映射方式相同。图5展示了图像输入模式下4×4的卷积核在存储中的映射方式,图中W(k,c,i,j)表示第k个卷积核的第c通道的第i行第j列元素。一次读操作可以取出16个卷积核所有4通道的同一行同一列、总计64个数据
本实施例的四通道全流水乘累加树由4个乘法器和3个加法器组成,参见图 6。
如图7,可重构计算单元中单个可重构乘累加树将(后文简称:MAC)单元,根据卷积模式可以选通为普通模式下64通道的乘累加树结构和图像输入模式下 16路4通道乘累加树结构。乘累加树的输出都接一个累加器,由与输入数据同步的清零信号控制累加器的输出和内部累加结果清零。本实施例中可重构计算单元总共有8个可并行执行的可重构MAC单元,可实现普通模式下8路二维卷积的并行运算或图像输入模式下128路二维卷积的并行运算。
本实现所用的乘法器为3级流水,加法器为3级流水。单个可重构MAC单元中,16个四通道乘加树为两种卷积模式共享,总计64个乘法器和48个加法器。每种模式所需的计算资源如下表所示:
Figure BDA0001667633260000051
因此每个可重构MAC仅需要80个加法器与64个乘法器,提高了计算资源利用率。本发明对于经典卷积神经网络AlexNet中5个卷积层的MAC利用率分别为56%、75%、100%、100%和100%,整体卷积运算的利用率可达82%。
本实施例的可重构CNN高并发卷积加速器采用了图像输入模式和普通卷积模式两种不同工作模式,以适应卷积神经网络中输入层与中间卷积层运算的不同特性,提高乘加单元的利用率,共享了硬件资源。采用特定的数据映射方式,简化控制部分,极大地提高多通道二维卷积运算并行度和对存储访问的效率,减少占用的资源。本申请的加速器可以很好地移植到不同的数据类型上,或者实现更大规模的乘累加树以用于更大规模的数据。在本实施例的基础上,可以增添卷积神经网络中不同激活层、不同池化层等的硬件实现,依然能够实现全流水,达到对整个卷积神经网络加速的支持。
以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (6)

1.一种可重构CNN高并发卷积加速器,其特征在于包括:
权重地址生成单元,生成卷积核数据在缓存中的地址;
结果地址生成单元,生成结果数据在缓存中的地址;
可重构计算单元,对应于两种卷积工作模式,可将计算阵列重构为两种不同粒度的乘累加树电路;
特征图地址生成单元,生成特征图数据在缓存中的地址;
主控制器,内部包含配置寄存器文件,根据配置的特征图大小、特征图通道数、卷积核大小、卷积核通道数、输出结果大小、输出结果通道数、卷积步幅以及卷积模式信息控制特征图地址生成单元、权重地址生成单元和结果地址生成单元,并生成与地址同步的累加器清零信号选通可重构计算单元中对应的两种不同粒度的乘累加树电路,产生整个运算结束的中断信号;
存储交换单元,将有效的特征图读地址、权重读地址转换为对存储单元的读操作,将有效的结果写地址和数据转换为对存储单元的写操作;特征图数据和卷积核数据通过专用的映射方式进行存储;所述可重构计算单元的两种工作模式分别为图像输入模式和普通卷积模式,分别对应于卷积神经网络中图像输入层和中间卷积层的卷积运算。
2.根据权利要求1所述的可重构CNN高并发卷积加速器,其特征在于,普通模式下乘累加树结构为64通道;图像输入模式下的乘累加树结构为16路4通道;两种工作模式下,特征图数据和卷积核数据在存储中的映射按照由高到低的优先级顺序依次为通道方向、行方向、列方向。
3.根据权利要求2所述的可重构CNN高并发卷积加速器,其特征在于,在普通卷积模式下,多通道特征图和多通道卷积核按64个通道组成一个数据块。
4.根据权利要求2所述的可重构CNN高并发卷积加速器,其特征在于,图像输入模式下三通道的卷积核补充一个通道的0形成四通道,16个卷积核组成一组。
5.根据权利要求2所述的可重构CNN高并发卷积加速器,其特征在于,单个可重构乘累加树单元将计算阵列中的乘法器和加法器进行重组和选通形成不同粒度的乘累加树电路,每个乘累加树将运算结果输出至一个累加器。
6.根据权利要求5所述的可重构CNN高并发卷积加速器,其特征在于,可重构计算单元里有8个可重构乘累加树结构,实现普通模式下8路卷积的并行运算或图像输入模式下128路卷积的并行运算。
CN201810497967.3A 2018-05-21 2018-05-21 一种可重构cnn高并发卷积加速器 Active CN108805266B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810497967.3A CN108805266B (zh) 2018-05-21 2018-05-21 一种可重构cnn高并发卷积加速器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810497967.3A CN108805266B (zh) 2018-05-21 2018-05-21 一种可重构cnn高并发卷积加速器

Publications (2)

Publication Number Publication Date
CN108805266A CN108805266A (zh) 2018-11-13
CN108805266B true CN108805266B (zh) 2021-10-26

Family

ID=64092750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810497967.3A Active CN108805266B (zh) 2018-05-21 2018-05-21 一种可重构cnn高并发卷积加速器

Country Status (1)

Country Link
CN (1) CN108805266B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111340201A (zh) * 2018-12-19 2020-06-26 北京地平线机器人技术研发有限公司 卷积神经网络加速器及其执行卷积运算操作的方法
CN109814927B (zh) * 2018-12-19 2021-01-29 成都海光集成电路设计有限公司 一种机器学习推理协处理器
CN111193916B (zh) * 2018-12-29 2022-03-29 中科寒武纪科技股份有限公司 运算方法
CN109871510B (zh) * 2019-01-08 2024-01-23 广东浪潮大数据研究有限公司 二维卷积运算处理方法、系统、设备及计算机存储介质
CN109858622B (zh) * 2019-01-31 2021-03-02 瑞芯微电子股份有限公司 深度学习神经网络的数据搬运电路和方法
CN109948775B (zh) * 2019-02-21 2021-10-19 山东师范大学 一种可配置神经卷积网络芯片系统及其配置方法
CN110516801B (zh) * 2019-08-05 2022-04-22 西安交通大学 一种高吞吐率的动态可重构卷积神经网络加速器
CN110533177B (zh) * 2019-08-22 2023-12-26 安谋科技(中国)有限公司 一种数据读写装置、方法、设备、介质及卷积加速器
TWI688871B (zh) 2019-08-27 2020-03-21 國立清華大學 矩陣乘法裝置及其操作方法
CN110751263B (zh) * 2019-09-09 2022-07-01 瑞芯微电子股份有限公司 一种高并行度的卷积运算取数方法和电路
CN110942145A (zh) * 2019-10-23 2020-03-31 南京大学 基于可重构计算的卷积神经网络池化层、硬件实现方法及系统
CN110807522B (zh) * 2019-10-31 2022-05-06 合肥工业大学 一种神经网络加速器的通用计算电路
CN111126593B (zh) * 2019-11-07 2023-05-05 复旦大学 可重构的自然语言深度卷积神经网络加速器
CN113222125A (zh) * 2020-01-21 2021-08-06 北京希姆计算科技有限公司 卷积运算方法及芯片
KR20210101903A (ko) * 2020-02-11 2021-08-19 삼성전자주식회사 전자 장치 및 그 제어 방법
TWI733334B (zh) 2020-02-15 2021-07-11 財團法人工業技術研究院 卷積神經網路運算裝置及其運算的方法
US11216375B2 (en) 2020-02-26 2022-01-04 Hangzhou Zhicun Intelligent Technology Co., Ltd. Data caching
CN113313228B (zh) * 2020-02-26 2022-10-14 杭州知存智能科技有限公司 数据缓存电路和方法
CN111738433B (zh) * 2020-05-22 2023-09-26 华南理工大学 一种可重配置的卷积硬件加速器
WO2021248433A1 (en) * 2020-06-12 2021-12-16 Moffett Technologies Co., Limited Method and system for dual-sparse convolution processing and parallelization
CN111897579B (zh) * 2020-08-18 2024-01-30 腾讯科技(深圳)有限公司 图像数据处理方法、装置、计算机设备和存储介质
CN112215342B (zh) * 2020-09-28 2024-03-26 南京俊禄科技有限公司 一种船用气象雷达照相装置多通道并行cnn加速器
CN115146767A (zh) * 2021-03-31 2022-10-04 广东高云半导体科技股份有限公司 一种二维卷积加速器及其实现加速二维卷积的方法
CN112995067B (zh) * 2021-05-18 2021-09-07 中国人民解放军海军工程大学 一种粗粒度可重构数据处理架构及其数据处理方法
CN113591025A (zh) * 2021-08-03 2021-11-02 深圳思谋信息科技有限公司 特征图的处理方法、装置、卷积神经网络加速器和介质
CN113986816B (zh) * 2021-12-09 2023-05-02 北京奕斯伟计算技术股份有限公司 可重构计算芯片
CN113947200B (zh) * 2021-12-21 2022-03-18 珠海普林芯驰科技有限公司 神经网络的加速计算方法及加速器、计算机可读存储介质
CN116167423B (zh) * 2023-04-23 2023-08-11 南京南瑞信息通信科技有限公司 一种实现cnn卷积层的装置及加速器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951961A (zh) * 2017-02-24 2017-07-14 清华大学 一种粗粒度可重构的卷积神经网络加速器及系统
CN107590535A (zh) * 2017-09-08 2018-01-16 西安电子科技大学 可编程神经网络处理器
CN107657581A (zh) * 2017-09-28 2018-02-02 中国人民解放军国防科技大学 一种卷积神经网络cnn硬件加速器及加速方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003985B2 (en) * 2016-11-07 2021-05-11 Electronics And Telecommunications Research Institute Convolutional neural network system and operation method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951961A (zh) * 2017-02-24 2017-07-14 清华大学 一种粗粒度可重构的卷积神经网络加速器及系统
CN107590535A (zh) * 2017-09-08 2018-01-16 西安电子科技大学 可编程神经网络处理器
CN107657581A (zh) * 2017-09-28 2018-02-02 中国人民解放军国防科技大学 一种卷积神经网络cnn硬件加速器及加速方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于FPGA 的卷积神经网络加速器";余子健;《体系结构与软件技术》;20170131;第43卷(第1期);第109-119页 *

Also Published As

Publication number Publication date
CN108805266A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
CN108805266B (zh) 一种可重构cnn高并发卷积加速器
KR102492477B1 (ko) 행렬 곱셈기
CN111291859B (zh) 通用矩阵-矩阵乘法数据流加速器半导体电路
US20220012593A1 (en) Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization
CN108241890B (zh) 一种可重构神经网络加速方法及架构
CN109447241B (zh) 一种面向物联网领域的动态可重构卷积神经网络加速器架构
CN109948774A (zh) 基于网络层捆绑运算的神经网络加速器及其实现方法
CN110222818B (zh) 一种用于卷积神经网络数据存储的多bank行列交织读写方法
CN111898733B (zh) 一种深度可分离卷积神经网络加速器架构
WO2022037257A1 (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
US11797830B2 (en) Flexible accelerator for sparse tensors in convolutional neural networks
CN110851779B (zh) 用于稀疏矩阵运算的脉动阵列架构
CN112836813A (zh) 一种用于混合精度神经网络计算的可重构脉动阵列系统
Xie et al. High throughput CNN accelerator design based on FPGA
Que et al. Recurrent neural networks with column-wise matrix–vector multiplication on FPGAs
CN116710912A (zh) 一种矩阵乘法器及矩阵乘法器的控制方法
CN110766136B (zh) 一种稀疏矩阵与向量的压缩方法
CN113222129A (zh) 一种基于多级缓存循环利用的卷积运算处理单元及系统
CN109948787B (zh) 用于神经网络卷积层的运算装置、芯片及方法
CN113448624B (zh) 数据存取方法及装置、系统、ai加速器
Haghi et al. O⁴-DNN: A Hybrid DSP-LUT-Based Processing Unit With Operation Packing and Out-of-Order Execution for Efficient Realization of Convolutional Neural Networks on FPGA Devices
CN113157638A (zh) 一种低功耗存储器内计算处理器和处理运算方法
CN115081600A (zh) 执行Winograd卷积的变换单元、集成电路装置及板卡
CN115081603A (zh) 执行Winograd卷积的计算装置、集成电路装置及板卡
Wang et al. An FPGA-Based Reconfigurable CNN Training Accelerator Using Decomposable Winograd

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