CN106940815B - 一种可编程卷积神经网络协处理器ip核 - Google Patents
一种可编程卷积神经网络协处理器ip核 Download PDFInfo
- Publication number
- CN106940815B CN106940815B CN201710076837.8A CN201710076837A CN106940815B CN 106940815 B CN106940815 B CN 106940815B CN 201710076837 A CN201710076837 A CN 201710076837A CN 106940815 B CN106940815 B CN 106940815B
- Authority
- CN
- China
- Prior art keywords
- unit
- data
- output
- convolution
- controller
- 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.)
- Expired - Fee Related
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 23
- 238000011176 pooling Methods 0.000 claims abstract description 32
- 239000013598 vector Substances 0.000 claims description 55
- 239000000872 buffer Substances 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 claims description 32
- 238000013461 design Methods 0.000 claims description 21
- 238000007667 floating Methods 0.000 claims description 18
- 239000011159 matrix material Substances 0.000 claims description 16
- 238000009825 accumulation Methods 0.000 claims description 12
- 230000009191 jumping Effects 0.000 claims description 2
- 238000005070 sampling Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 21
- 238000013528 artificial neural network Methods 0.000 abstract description 9
- 230000001133 acceleration Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000011160 research Methods 0.000 description 3
- 241000282414 Homo sapiens Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000510672 Cuminum Species 0.000 description 1
- 235000007129 Cuminum cyminum Nutrition 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
Abstract
本发明公开了一种可编程卷积神经网络协处理器IP核,其目的是在数字芯片(FPGA或ASIC)上实现对卷积神经网络的运算加速。其具体架构包含了全局控制器、I/O控制器、多缓存体系、卷积单元、池化单元、填充单元、全连接单元、内部互联逻辑以及为该协处理器IP设计的指令集。所提出的硬件结构支持不同规模的卷积神经网络完整流程;充分利用硬件级并行,设计多级缓存体系,达到了高性能、低功耗特性;通过指令控制运算流程,具有可编程性与可配置性,易于部署在不同的应用场景中。
Description
技术领域
本发明涉及数字芯片设计领域,具体涉及一种可编程卷积神经网络协处理器IP核的设计。
背景技术
对人工智能(Artificial Intelligence)的探索、研究和实现一直是人类孜孜不倦的追求。作为计算机科学最重要的分支之一,人工智能科学随着计算机科学的诞生起源于20世纪中叶,逐渐发展成为多个领域诸如计算机、数学、电子、生物学、医学以及工程领域的交叉科学。
机器学习(Machine Learning)目前是人工智能领域中最核心、也是发展最快的一个分支,致力于研究通过一定的学习算法从数据中自动分析获得规律,再由模型去预测未知数据。机器学习理论已经广泛应用于计算机视觉、搜索引擎推荐、自然语言处理以及机器人等多个领域。
21世纪初,随着软硬件的发展,计算能力有了长足提升,而大数据技术的发展又为机器学习积累了海量的样本。因此,层数非常多的神经网络,即深度神经网络或深度学习(Deep Learning)充分利用了这些优势,取得了令人瞩目的表现能力,受到学术界与工业界的重新关注,掀起了机器学习的又一轮热潮,尤其在图像分类识别、视频跟踪、自然语言处理、人工智能与决策等领域取得了丰硕成果。
卷积神经网络(Convolutional Neural Network,CNN)是深度学习中使用最为广泛的一种模型之一,其思想来源于人脑在识别与处理图像过程中的一些行为模式,因此其在图像与视频处理方面成为了一定意义上的“标配”结构。
卷积神经网络结构日趋复杂,大规模、深层次的网络利用了海量数据样本,其学习能力与表现能力不断提升,然而随之而来的是训练参数与计算量的成倍增加。复杂的深度学习网络的训练与预测过程需要消耗巨额浮点计算资源以及极高访存带宽,由于硬件体系结构的限制,仅利用通用架构CPU进行深度学习计算效率低、速度慢,难以部署大规模的计算任务。随着以NVIDIA的CUDA为代表的GPU异构加速计算的兴起,研究者们开始使用GPU集群进行深度学习计算。然而,这样虽然解决了一定的计算力问题,但高端GPU芯片成本高昂、功耗巨大,能耗比仍然不甚理想,受限于体积、移动性、续航能力,通用CPU+GPU的计算模式难以支持日益普遍的嵌入式应用与终端应用场景。
对于上述应用场景,业界未来的一个趋势是在主控制器(桌面级或嵌入式CPU)之外,利用专用芯片(FPGA或ASIC)来进行卷积神经网络的计算加速,其优势在于延迟小、功耗低、效率高。当出货量增长后,平摊成本非常低廉。
FPGA具有灵活的可编程性和可配置性,可以设计高度并行化的专用计算单元,在高效计算的同时兼顾低功耗的优势。一方面,深度学习模型中有相当多的抽象模块可以分解为结构规整、复用度高的基本单元,适于硬件实现与集成。另一方面,深度学习算法理论仍然在快速发展中,与ASIC(专用集成电路)相比,FPGA的重构特性可以用于设计的快速更新与迭代,而当硬件设计有了兼顾通用性与稳定性的版本时,FPGA设计的积累也可以快速转型为ASIC。因此,近年来利用FPGA与ASIC进行深度学习异构加速正成为学术界和巨头企业关注的热门研究方向。
由于终端应用场景广泛,对卷积神经网络的规模和结构要求不同,需要根据应用场景进行灵活的调整与修改。众所周知,直接进行硬件设计的修改和调试是一个成本较高、耗时较长的过程。为了能够向不熟悉硬件设计的算法与软件人员提供应用支持,加速硬件具有可编程的接口,使上层应用与底层平台分离,对算法的支持有着重要的意义。
发明内容
本发明提供一种可编程卷积神经网络协处理器IP核,其目的是在数字芯片(FPGA或ASIC)上实现对卷积神经网络的运算加速,并应用于卷积神经网络的异构加速或终端部署。
本发明的预期应用场景要求专用芯片具有可配置性与可编程性,支持包含卷积、非线性激活函数、池化、填充与全连接计算的不同规模的卷积神经网络完整流程;计算效率保持高性能的同时,具有低功耗特性;具有标准的接口,具有可扩展性与可定制性。
为实现上述目的,本发明采用如下技术方案:
一种可编程卷积神经网络协处理器IP核,具体包含了全局控制器、I/O控制器、多缓存结构、卷积单元、池化单元、填充单元、全连接单元、内部互联逻辑以及针对该协处理器IP各种操作而自主设计的指令集。
所述各单元的控制端口与全局控制器的对应端口点对点连接,数据读写端口连接到内部互联逻辑的512位数据总线,以全局控制器仲裁的方式进行共享。
所述的全局控制器,完成对整个协处理器各模块的控制,包含了具有8个32位寄存器的通用寄存器堆、指令译码单元以及对各个单元的控制端口。
所述的I/O控制器,支持外部DDR3存储器及其控制器,以DMA(Direct MemoryAccess)方式进行对外部存储器的批量读写,由全局控制器给出读写首地址、偏移量之后自动进行读写操作。
所述的多缓存结构包含了全局数据缓存(分为两个存储块,每块容量1024KB)、全局权值缓存(分为四个存储块,每块容量64KB)、8KB指令缓存,与各模块的通过内部互联逻辑进行通信。
全局数据缓存,支持“乒乓”读写,被分为两个存储块(以下称Bank)。存储地址与空间不共享,每个块有一组独立的读写端口,两个块交替读写。Bank的切换由指令控制,但其读写切换的逻辑模块对外部是不可见的,即其他单元与全局数据缓存的连接不需要具体区分连接的是哪一个读写端口。
所述的卷积单元,包含了内部的控制模块、输入模块、计算模块、输出模块;
1)控制模块包含了配置表与控制器:配置表连接到卷积单元公共参数寄存器组,根据卷积单元的公共参数计算出在本次卷积迭代中,对各向量单元的开闭、执行、输入数据与输出数据的线性地址区间、逻辑索引值做了计算。控制器读取配置表的输出,并完成对各模块的调度。
2)输入模块包含了输入数据广播器、16组局部输入缓存、与局部输入缓存一一对应连接的16组数据移位器。输入模块从全局数据缓存读入数据,并按照各向量单元处理的不同子区域把数据以广播方式送入对应的局部输入缓存。移位器从局部输入缓存载入数据,以“滑窗”的方式发送给计算模块。
3)计算模块内调用了512个单精度乘法器与512个单精度加法器,每一个乘法器与加法器组合成一个乘法-加法对,作为一个最基本的浮点计算单元FPU,全部FPU被划分4个计算内核组,每组16个向量单元,可以通过配置相关参数寄存器确定每组开启的单元数量。每个向量单元长度为8个单精度浮点值,即256位,在一次迭代中负责输出特征中的1×8的行向量。每个向量单元包含8组浮点乘法器与浮点加法器。每一组乘法-加法对负责对一个输入特征的子区域进行卷积,计算结果为输出特征的一个点。加法器的输出反馈连接到输入端以完成累加。当所有计算内核都被开启时,在一次迭代中输出了一个16×8×4的三维子矩阵。
4)输出模块包含对应各向量单元的局部输出缓存和卷积单元输出接口。每一组局部输出缓存位宽为256位,与向量单元的位宽适配。各缓存的最终结果由输出接口轮流读出并按照对应的地址写入全局数据缓存的写Bank。
所述池化单元完成对卷积单元输出特征的采样。池化支持两种类型:2×2与3×3的最大池化与平均池化。最大池化单元从子区域中找出最大值,调用了9组浮点比较器,按9-5-3-2-1的的树形阵列连接;平均池化单元计算一个子区域的平均值,调用了加法器,按9-5-3-2-1的树形阵列连接,其最后一级的输出连接到浮点乘法器,乘以1/2、1/4、1/9等池化区域面积的倒数来取平均值,避免了使用资源开销大、延迟较高的除法器。
所述全连接单元完成向量的乘加操作,其向量长度与外部存储器的带宽匹配,完成一个行向量(输入特征)与矩阵相乘(权值),输出另一个行向量(输出特征)的计算。本设计中,全连接单元调用了16个浮点乘法器,并通过16-8-4-2-1的树形浮点加法器阵列完成累加,一次计算迭代可以进行1×16的行向量内积运算。
卷积单元、池化单元、填充单元、全连接单元挂载在内部互联逻辑上,对内部总线的占有权由全局控制器进行仲裁。
所述的指令集,位宽为32位,包含了完成调度工作而不直接控制复杂计算的10条基本指令,如寄存器载入、存储器读写、单元执行、分支跳转等。
相对于现有技术,本发明具有以下优点:
与其他类似技术相比,本发明把卷积神经网络的其他组件集成在同一IP核中,提供了“卷积-池化-全连接”的完整的计算流程。特别地,与一些类似技术提供了固定尺寸与层数的卷积支持相比,本发明所提出的卷积单元,在硬件资源限制内,提出一种可扩展规模的设计,支持一定范围内的任意尺寸(即调整的最小步长为1),且通过指令的控制可以支持任意层数的卷积神经网络。
本发明注重发挥芯片(FPGA或ASIC)硬件结构的并行性,与通用处理器相比,能耗比优势明显;同时,利用了卷积操作具有的数据复用特点,设计多级缓存体系,借助适度容量的缓存,大幅减小了对外部存储器的读写频率及带宽压力,有助于减小芯片功耗与SoC内部通信资源的占用。
通过指令控制运算流程,使软件设计人员、算法人员等用户面对不同的应用场景时,可以摆脱繁杂耗时的硬件设计与调试过程,具有使用的便捷性与广泛性,有利于快速迭代;接口与具体硬件设计分离的特性,也有利于硬件设计人员在本发明的新版本中提供内部模块的升级与改进。
附图说明
图1为卷积神经网络协处理器IP的顶层结构图示;
图2为卷积单元的硬件结构及其与外部模块的连接方式图示;
图3为卷积单元控制器状态流图示;
图4为卷积单元输入特征子区间交叠情况图示;
图5为卷积单元输入数据广播机制图示;
图6为卷积单元输入特征与卷积核的运算过程图示;
图7为卷积单元移位器工作图示;
图8为卷积单元中的向量计算单元结构图示;
图9为浮点加法器流水线填充机制图示;
图10为补齐边界的最大池化图示;
图11为填充单元图示;
图12为全连接单元乘法器与加法器连接结构图示;
具体实施方式
首先给出以下卷积运算基本定义以便后续的具体实施方式说明:
-fi:输入特征,即卷积层的输入矩阵。此处为分析一般情况,假设二维输入特征是一个正方形,三个维度定义为(is,is,ci),分别表示输入特征的长、宽与通道数。
-fo:输出特征,即经过卷积层计算后的输出矩阵,三个维度为(os,os,co),分别表示输出特征的长、宽与通道数。
-w:权值矩阵,即卷积核。此处假设卷积核为正方形,四个维度为(k,k,ci,co),其中ci对应输入特征、co对应输出通道的同名变量定义。
-bias:权值的偏置值,一维向量,长度为co。
参照图1,一种可编程卷积神经网络协处理器IP核的硬件架构具体包含了全局控制器(附指令缓存)、I/O控制器、全局数据缓存(Bank0、Bank1)、全局权值缓存(Bank0~Bank3)、卷积单元(附局部输入、输出缓存)、池化单元、填充单元、全连接单元、内部互联逻辑。
协处理器IP核与外部各IP通过外部的互联逻辑连接,具体的外部结构由该发明被应用的具体场景决定,不局限于图1所示。
参照
图2,描述了卷积单元的整体架构及其与其他模块的连接方式。其中LIB指局部输入缓存,LOB指局部输出缓存。
卷积单元在开始工作前,首先要完成公共参数的配置:全局控制器在解析指令后把对应参数按顺序放入全局控制器通用寄存器堆,并通过使能信号告知卷积单元配置表从通用寄存器中读取如表1所示的公共参数。配置表会根据这些参数计算出如表2所示的具体参数。全局控制器在告知卷积单元开始工作时,对互联逻辑进行仲裁,以保证其数据流是由卷积单元作为主设备发起控制的。
卷积单元首先会从全局数据缓存的读Bank读入输入特征在本次卷积中需要的一个子区域,该子区域在全局缓存中的地址区间从配置表中获知。并通过数据广播器按照广播方式写入局部输入缓存(LIB)阵列中的每一个存储块;之后控制器按照卷积子区域的行、输出通道、输入通道的顺序进行遍历,计算中间结果存储在各向量单元的局部输出缓存(LOB);遍历结束,中间结果成为最终结果。所有的最终结果通过输出接口按特定的地址映射机制写入全局数据缓存的写Bank正确位置;本次卷积的迭代结束后,系统向全局控制器发送结束信号,并进入空闲状态,等待下一次配置与计算。
表1卷积单元公共参数
参数 | 说明 |
relu | 输出特征是否需要通过ReLU函数 |
stride | 卷积核滑动步长 |
k | 卷积核尺寸 |
is | 输入特征尺寸 |
os | 输出特征尺寸 |
ci_num | 输入通道数 |
ci_start | 输入通道初值 |
ci_end | 输入通道终值 |
co_num | 输出通道数 |
row_start | 本次卷积对应输出特征的行起点 |
col_start | 本次卷积对应输出特征的列起点 |
vec_active | 本次卷积开启的向量单元组的数量 |
表2卷积配置表参数
参数 | 说明 |
data_row_start | 卷积子区域的起始行 |
data_col_start | 卷积子区域的起始列 |
data_row_end | 卷积子区域的终点行 |
data_col_end | 卷积子区域的终点列 |
vecIdx[i].row | 第i组局部数据缓存的起始行 |
vecIdx[i].col | 第i组局部数据缓存的起始列 |
参照图3,卷积单元的控制器状态及描述如表3所示,其状态跳转条件如表4所示。
表3卷积单元控制器状态
表4卷积单元控制器状态跳转条件
参照图1,输入模块包含输入数据广播器、16组局部输入缓存与一一对应连接的数据移位器。
输出特征行相邻的向量单元,计算的输入特征子区域是高度重叠的,因此一组读入的数据可能会被多个向量单元在不同的时刻访问到。采用广播机制的数据传输可以使总的数据缓冲时间开销降低。
以下结合图4,对输入数据广播机制进行详细说明:
对一个特定的输入通道而言,输入数据子区域为一个二维矩阵。为方便分析,假设其起始行列的逻辑坐标为(0,0),结束于(m,n),卷积核尺寸为k,卷积滑动步长取通常值1,那么输入数据子区域表示为矩阵
各局部输入缓存需求的区间为
注意到,每一个局部输入缓存要求的数据都是该矩阵的子矩阵,开始于(i,0),结束于(i+k-1,n),具有k行n列,并且其各数据元素在存储器中的地址有很大的交集,如图4所示。
卷积单元输入数据广播机制的逻辑时序如图5所示。配置表中已经提供了各向量单元计算的子区域的行列起始坐标,由该坐标以及卷积公共参数可以计算出各向量单元对全局数据缓存的访存地址。控制器在LOAD状态发送的地址流是所有局部缓存需求区域的并集,即整个输入特征子区域的各数据元素的公共地址。当某个局部数据缓存的需求访存地址与当前公共地址匹配时,广播器获知该匹配信号,启动该局部数据缓存的传输过程,从数据总线上读取数据流,此时可能有多组局部数据缓存地址匹配,同时处于读取状态;当不再匹配时,匹配信号取消,传输过程结束。
结合图6,卷积运算可以看作卷积核在输入特征上的“滑窗”。8组向量计算单元的计算中,每一个卷积子区域列相邻的数据的物理位置是有交集的,但由于输出的8个元素之间在算法上互相无关联,因此各子区域在逻辑上又是独立的。卷积操作借鉴了SIMD(单指令多数据,single-instruction-multiple-data)的思想,一次移位操作完成8组数据的发送。移位器完成“滑窗”过程,在每一行数据移位完毕时,需要重载下一行数据再进行移位。
参照图7,移位器的硬件逻辑实现方式为:
1)从局部数据缓存读入一行待移位数据。局部数据缓存的读写带宽设计为256bit,因此一个周期便可以填充移位器,读入8个单精度浮点数的向量长度(8×32bit=256bit)。
2)之后,移位寄存器向左移位,同时最右端补入下一个向量中的一个元素,具体取该向量中的元素索引与移位次数一致。同时,对应的权值也在每周期读入一个新值,该过程对应了控制器中的“SHIFT”状态。
3)移位次数与卷积核尺寸相等时,移位器从局部缓存读入并替换为卷积区域下一行的向量,对应了控制器中的“SWITCH”状态。
4)最后一个输入通道的卷积区域计算完毕时,需要额外增加一个偏置值(Bias,在权值缓存中保存,每个输入通道都有一个Bias)。为了保持乘加操作的连贯性,移位器的数值变为单精度的1.0(十六进制表示为0x3F800000),即1.0×偏置值,把额外的加操作合并到之前的乘加流水中。这个过程对应了控制器中的“BIAS”状态。
重复2、3步骤,直到该卷积区域计算完毕,之后控制器将进入其他状态以完成对应操作。
如
图2所示,全部向量计算单元调用了512个单精度乘法器与512个单精度加法器。每一个乘法器与加法器组合成一个乘法-加法对,作为一个最基本的浮点计算单元(以下简称为FPU,floating point unit)。全部FPU被划分4个计算内核组,每组16个向量单元,可以通过配置相关参数寄存器确定每组开启的单元数量。
参照图8,一组向量单元包含8组浮点乘法器与浮点加法器,长度为8个单精度浮点数值,即256位。每一组乘法-加法对负责对一个输入特征的子区域进行卷积,在一次迭代中负责输出特征中的1×8的行向量,相当于把输入的二维矩阵延展成为一维向量,可以灵活处理不同卷积核尺寸。加法器的输出端经过一级寄存器后反馈到输入端,以完成累加。
SHIFT状态下,向量单元模式为“乘加”,权值与从移位器输入的向量相乘,乘积送入加法器(此时作为累加器)。
执行完一个输入通道对应的卷积时,该通道卷积计算的结果与已经暂存在局部输出缓存中的前一个通道的计算结果相加,其结果写回局部输出缓存的同一地址,该过程发生在ACC状态中,向量单元模式为“加”,加法器的输入分别来自累加和(Sum)寄存器和局部输出缓存。此时也表示前一段累加过程结束,因此对加法器的输出端清零,以开始另一组累加过程。
浮点运算较为复杂,经过对时序的评估,本设计采用了3级流水的浮点加法器。考虑到加法器输出端的还会经过一级累加寄存器,所以加法结果传递给下一级需要等待4个时钟周期。由于累加过程会产生数据依赖,即后一组累加需要等待前一组结果的完全产生,因此一次特定的卷积运算只能在流水线的固定节拍上执行,其余各节拍都会处于空闲状态。
流水线各节拍之间的数据互不影响,所以为了避免流水线气泡造成的性能浪费,控制器在其他三个节拍插入对应不同卷积核的计算(即输出特征属于不同的输出通道),从而填充了流水线。
结合图9以及如下表达式,假设有四个数组A、B、C、D需要进行累加操作,即:
Sa=A0+A1+A2+…+An
Sb=B0+B1+B2+…+Bn
Sc=C0+C1+C2+…+Cn
Sd=D0+D1+D2+…+Dn
设计中将其分散在流水线的四个节拍中,即流水线节拍0——数组A、节拍1——数组B、节拍2——数组C、节拍3——数组D。
由于一组输入特征对应多组卷积核,因此一组移位器的数据可以由多个向量单元共享。本发明的硬件结构中,全局权值缓存有4个Bank,即4个独立读写通道,可同时输出4组不同的权值。因此一组移位器与4组向量单元连接,每个向量单元对应一组权值,并行执行4组卷积运算,其卷积运算结果对应于4组不同输出通道的输出特征。由于输出空间是一个三维矩阵,当所有计算内核都被开启时,在一次迭代中输出了一个16×8×4的三维矩阵。
卷积单元输出模块包含对应各向量单元的局部输出缓冲区和卷积单元输出接口。每一组局部输出缓冲区位宽为256bit,与向量单元的输出位宽适配,一个周期即可完成一组向量的读写,用于存储对应于一个特定输入通道的所有输出通道中间结果,并与下一个输入通道的值累加后重新写回原地址。该过程对应控制器的ACC状态。
当遍历了所有的输入通道之后,向量单元再次存入局部输出缓存的数值即为最终结果,由输出接口模块轮流读出并按照对应的地址写入全局数据缓存的写Bank。该过程对应控制器的SAVE状态。
池化单元包含了控制器、输入缓冲区、最大池化单元与平均池化单元。
池化过程从全局数据缓存的读Bank中读入数据,经过池化操作后的结果写回全局数据缓存的写Bank。
最大池化单元从子区域中找出最大值,调用了9组浮点比较器,按9-5-3-2-1的的树形阵列连接。
平均池化单元计算子区域的平均值,调用了加法器,按9-5-3-2-1的树形阵列连接,其最后一级的输出连接到浮点乘法器,乘以1/4、1/9等池化区域面积的倒数来取平均值,避免了使用资源开销大、延迟较高的除法器。
如图10所示,池化时考虑了输入特征的行列尺寸,如果行列不能由池化子区域完全覆盖,则需要额外处理边界,以输入尺寸为8、池化尺寸为3、池化步长为2的最大池化为例,需要补齐边界,填充为0或单精度负无穷(0xFF7FFFFF),
如图11所示,填充单元在输入特征每一个输入通道的二维矩阵四周填充1到2层零。
1)首先根据填充的层数,向全局数据缓存的写Bank中写入全零行。
2)之后从全局数据缓存的读Bank中读取原输入特征,在原输入特征的每一行开头写入零,并把每个元素的写入地址增加一个偏移量。原输入特征的这一行存储完后,再在该行末尾写入零。
重复1、2两个过程至原输入特征的最后一行,在最后写入全零行。之后开始对下一个输入通道的二维矩阵进行处理。
图12描述了全连接单元的结构。卷积神经网络中的全连接单元实际上是一个行向量(输入特征)与矩阵相乘(权值矩阵),输出另一个行向量(输出特征)的计算过程,因此权值不存在复用情形,其计算能力取决于存储器带宽,向量长度可以与外部存储器的带宽匹配。本设计中,外部数据存储器和权值存储器都是512bit,因此全连接单元设计为16组乘法器的输出与加法器的16-8-4-2-1树形连接模式,如图12所示。由于全连接层的尺寸较大,计算中会出现累加,数据依赖导致的加法器流水线气泡问题同样采用了如图9所示的处理策略。
所述全连接单元完成向量的乘加操作,其向量长度与外部存储器的带宽匹配,完成一个行向量(输入特征)与矩阵相乘(权值),输出另一个行向量(输出特征)的计算。本设计中,全连接单元调用了16个浮点乘法器,并通过的树形浮点加法器阵列完成累加,一次计算迭代可以进行1×16的行向量内积运算。
多缓存结构包含了全局数据缓存与全局权值缓存。
卷积神经网络计算过程中,各层单向连接,每一层的计算结果成为下一层的输入,即访存过程要求同时读写数据缓存。为了满足这个需求,全局数据缓存的设计考虑了“乒乓”策略。
全局数据缓存被分为两个存储块(Bank),存储地址与空间不共享,每个块都有独立的读写端口,读写位宽为512bit,每个块设计容量为1MB,共计2MB。
两个块交替读写,避免了读写阻塞与数据覆盖。例如,输入特征存储在Bank0,经过第一层卷积的输出特征存储在Bank1。输入特征在全部计算过程中都会使用到,卷积单元从Bank0读入数据的同时向Bank1写入输出数据。Bank的切换由指令控制,但其切换逻辑对外部是不可见的,即各计算单元在访问全局数据缓存时,并不需要关心具体访问的是哪一个Bank、使哪一个读写接口生效。
全局数据缓存使数据流能够主要在协处理器内部流动,避免了与外部DDR3存储器的频繁数据交换。
如果预计某一层卷积计算的输出特征存储空间会超过数据缓存容量,那么在生成指令时,就会把这次计算分成多个批次进行,每一个分批都只计算输出特征的一部分输出通道,从而能够保证该批次数据的完整性。在新一批次的计算开始之前,全局数据缓存中的这些数据会保存到外部DDR3存储器的一个地址段中。之后,需要这一批数据的时候,再从该地址段读回全局数据缓存。
卷积操作中,权值批量保存在全局权值缓存中,读写位宽为512bit,权值缓存从外部DDR3只读,并且对各计算单元只读,减少了两个方向的读写。
权值缓存设计为四个存储块,每个存储块的容量为16k×32bit=64KB,共计256KB。每个存储块对应一个独立的权值读写通道,四个存储块可以支持四组向量计算单元对一组输入特征的共享。
I/O控制器负责外部DDR3存储器的控制器与协处理器内的全局数据、权值缓存和指令缓存的通信。
由于片上缓存与DDR3批量交换数据,因此I/O控制器采用了DMA(Direct MemoryAccess,直接内存访问)模式,把访存控制逻辑从全局控制器中分离出来,对DDR3控制器的读写以及各有效信号进行控制以完成批量访问,并自动完成对应不同字长的地址转换,把访问DDR3的多种信号配合过程简化为一条对I/O控制器的访存指令。
全局控制器需要提供读写请求、访存首地址、批量访问长度、目的存储器以及目的存储器首地址,I/O控制器会自动进行这一传输过程,而不需要全局控制器进行干涉。传输完成时向全局控制器发送结束信号。
全局控制器完成对整个协处理器各模块的控制,包含了具有8个32位寄存器的通用寄存器堆、指令译码单元以及对各个单元的控制端口;控制器具有独享的指令缓存,容量2048×32bit=8KB。
在协处理器接受了外部某个主控制器或主机的启动信号,从等待状态上线时,需要首先自动进入启动阶段,从外部DDR3存储器的指定数据段向指令缓存载入指令,之后指令指针自动从指令缓存零地址开始读取指令,并在执行本条指令时取出下一条指令并进行译码。读取到NOP指令时,即本次计算任务结束,进入等待状态。
由于控制器只完成调度工作而不直接控制计算单元的复杂计算,因此本设计提供了一些必要的基本指令集,而不涉及很多具体的计算类指令。全部的指令位宽为32bit,具体指令定义如表5所示:
表5自设计指令集
表中,指令域由第31位到第28表示。对不同的指令,其操作数的规定也不同,具体描述如表6所示。
表6指令集具体规定
Claims (7)
1.一种可编程卷积神经网络协处理器IP核,其特征在于,全局控制器、I/O控制器、多缓存结构、卷积单元、池化单元、填充单元、全连接单元、内部互联逻辑以及针对该协处理器IP各种操作的指令集;所述各单元的控制端口与全局控制器的对应端口点对点连接,数据读写端口连接到内部互联逻辑的512位数据总线,以全局控制器仲裁的方式进行共享,所述的多缓存结构包含了容量为1024KB×2的全局数据缓存、容量为64KB×4的全局权值缓存、8KB指令缓存,与各模块通过内部互联逻辑进行通信,全局数据缓存,支持乒乓读写,被分为两个简称为Bank的存储块,存储地址与空间不共享,每个块有一组独立的读写端口,两个块交替读写,Bank的切换由指令控制,但其读写切换的逻辑模块对外部是不可见的,即其他单元与全局数据缓存的连接不需要具体区分连接的是哪一个读写端口。
2.根据权利要求1所述的一种可编程卷积神经网络协处理器IP核,其特征在于,所述的全局控制器,完成对整个协处理器各模块的控制,包含了具有8个32位寄存器的通用寄存器堆、指令译码单元以及对各个单元的控制端口。
3.根据权利要求1所述的一种可编程卷积神经网络协处理器IP核,其特征在于,所述的I/O控制器,支持外部DDR3存储器及其控制器,以DMA(Direct Memory Access)方式进行对外部存储器的批量读写,由全局控制器给出读写首地址、偏移量之后自动进行读写操作。
4.根据权利要求1所述的一种可编程卷积神经网络协处理器IP核,其特征在于,所述的卷积单元,包含了内部的控制模块、输入模块、计算模块、输出模块;
1)控制模块包含了配置表与控制器:配置表连接到卷积单元公共参数寄存器组,根据卷积单元的公共参数计算出在本次卷积迭代中,对各向量单元的开闭、执行、输入数据与输出数据的线性地址区间、逻辑索引值做了计算,控制器读取配置表的输出,并完成对各模块的调度;
2)输入模块包含了输入数据广播器、16组局部输入缓存、与局部输入缓存一一对应连接的16组数据移位器,输入模块从全局数据缓存读入数据,并按照各向量单元处理的不同子区域把数据以广播方式送入对应的局部输入缓存,移位器从局部输入缓存载入数据,以“滑窗”的方式发送给计算模块;
3)计算模块内调用了512个单精度乘法器与512个单精度加法器,每一个乘法器与加法器组合成一个乘法-加法对,作为一个最基本的浮点计算单元FPU,全部FPU被划分4个计算内核组,每组16个向量单元,可以通过配置相关参数寄存器确定每组开启的单元数量,每个向量单元长度为8个单精度浮点值,即256位,在一次迭代中负责输出特征中的1×8的行向量,每个向量单元包含8组浮点乘法器与浮点加法器,每一组乘法-加法对负责对一个输入特征的子区域进行卷积,计算结果为输出特征的一个点,加法器的输出反馈连接到输入端以完成累加,当所有计算内核都被开启时,在一次迭代中输出了一个16×8×4的三维子矩阵;
4)输出模块包含对应各向量单元的局部输出缓存和卷积单元输出接口,每一组局部输出缓存位宽为256位,与向量单元的位宽适配,各缓存的最终结果由输出接口轮流读出并按照对应的地址写入全局数据缓存的写Bank。
5.根据权利要求1所述的一种可编程卷积神经网络协处理器IP核,其特征在于,所述池化单元完成对卷积单元输出特征的采样,池化支持两种类型:2×2与3×3的最大池化与平均池化,最大池化单元从子区域中找出最大值,调用了9组浮点比较器,按9-5-3-2-1的的树形阵列连接;平均池化单元计算一个子区域的平均值,调用了加法器,按9-5-3-2-1的树形阵列连接,其最后一级的输出连接到浮点乘法器,乘以池化区域面积的倒数来取平均值,避免了使用资源开销大、延迟较高的除法器。
6.根据权利要求1所述的一种可编程卷积神经网络协处理器IP核,其特征在于,所述全连接单元完成向量的乘加操作,其向量长度与外部存储器的带宽匹配,完成一个输入特征行向量与权值矩阵相乘,输出另一个输出特征行向量的计算, 本设计中,全连接单元调用了16个浮点乘法器,并通过16-8-4-2-1的树形浮点加法器阵列完成累加,一次计算迭代可以进行1×16的行向量内积运算。
7.根据权利要求1所述的一种可编程卷积神经网络协处理器IP核,其特征在于,所述的指令集,位宽为32位,包含了完成调度工作而不直接控制复杂计算的10条基本指令,可完成寄存器载入、存储器读写、单元执行、分支跳转。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710076837.8A CN106940815B (zh) | 2017-02-13 | 2017-02-13 | 一种可编程卷积神经网络协处理器ip核 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710076837.8A CN106940815B (zh) | 2017-02-13 | 2017-02-13 | 一种可编程卷积神经网络协处理器ip核 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106940815A CN106940815A (zh) | 2017-07-11 |
CN106940815B true CN106940815B (zh) | 2020-07-28 |
Family
ID=59469736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710076837.8A Expired - Fee Related CN106940815B (zh) | 2017-02-13 | 2017-02-13 | 一种可编程卷积神经网络协处理器ip核 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106940815B (zh) |
Families Citing this family (110)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992329B (zh) * | 2017-07-20 | 2021-05-11 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
EP3651031A1 (en) | 2017-08-31 | 2020-05-13 | Cambricon Technologies Corporation Limited | Chip device and related products |
CN109615062B (zh) * | 2017-08-31 | 2020-10-27 | 中科寒武纪科技股份有限公司 | 一种卷积运算方法及装置 |
CN107590535A (zh) * | 2017-09-08 | 2018-01-16 | 西安电子科技大学 | 可编程神经网络处理器 |
US11803377B2 (en) * | 2017-09-08 | 2023-10-31 | Oracle International Corporation | Efficient direct convolution using SIMD instructions |
KR102442055B1 (ko) * | 2017-09-26 | 2022-09-13 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
KR102356708B1 (ko) * | 2017-09-28 | 2022-01-27 | 삼성전자주식회사 | 컨볼루션 연산을 수행하는 연산 장치 및 연산 방법 |
CN107832832A (zh) * | 2017-10-19 | 2018-03-23 | 珠海格力电器股份有限公司 | 卷积神经网络的池化运算方法及装置 |
CN107749044A (zh) * | 2017-10-19 | 2018-03-02 | 珠海格力电器股份有限公司 | 图像信息的池化方法及装置 |
CN109740749A (zh) * | 2017-10-30 | 2019-05-10 | 北京深鉴智能科技有限公司 | 高速全连接计算的硬件实现装置与方法 |
CN109754359B (zh) | 2017-11-01 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 一种应用于卷积神经网络的池化处理的方法及系统 |
CN110059798A (zh) * | 2017-11-06 | 2019-07-26 | 畅想科技有限公司 | 开发神经网络中的稀疏性 |
CN107817708B (zh) * | 2017-11-15 | 2020-07-07 | 复旦大学 | 一种高兼容性可编程神经网络加速阵列 |
CN107992940A (zh) * | 2017-12-12 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种卷积神经网络在fpga上的实现方法及装置 |
CN110909872B (zh) * | 2017-12-14 | 2023-08-25 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109960673B (zh) * | 2017-12-14 | 2020-02-18 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN111160541B (zh) * | 2017-12-14 | 2023-05-19 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109961133B (zh) * | 2017-12-14 | 2020-04-24 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
WO2019114842A1 (zh) | 2017-12-14 | 2019-06-20 | 北京中科寒武纪科技有限公司 | 一种集成电路芯片装置 |
CN108074211B (zh) * | 2017-12-26 | 2021-03-16 | 浙江芯昇电子技术有限公司 | 一种图像处理装置及方法 |
CN109978157B (zh) * | 2017-12-28 | 2020-06-02 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109978151A (zh) * | 2017-12-27 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 神经网络处理器板卡及相关产品 |
CN109978150A (zh) * | 2017-12-27 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 神经网络处理器板卡及相关产品 |
CN109978130A (zh) * | 2017-12-28 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN109978155A (zh) * | 2017-12-28 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN108416422B (zh) * | 2017-12-29 | 2024-03-01 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN109993272B (zh) * | 2017-12-29 | 2019-12-06 | 北京中科寒武纪科技有限公司 | 卷积及降采样运算单元、神经网络运算单元和现场可编程门阵列集成电路 |
CN109074335A (zh) * | 2017-12-29 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 数据处理方法、设备、dma控制器及计算机可读存储介质 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN108229670B (zh) * | 2018-01-05 | 2021-10-08 | 中国科学技术大学苏州研究院 | 基于fpga的深度神经网络加速平台 |
CN108388943B (zh) * | 2018-01-08 | 2020-12-29 | 中国科学院计算技术研究所 | 一种适用于神经网络的池化装置及方法 |
CN108304925B (zh) * | 2018-01-08 | 2020-11-03 | 中国科学院计算技术研究所 | 一种池化计算装置及方法 |
CN108376283B (zh) * | 2018-01-08 | 2020-11-03 | 中国科学院计算技术研究所 | 用于神经网络的池化装置和池化方法 |
CN108133270B (zh) * | 2018-01-12 | 2020-08-04 | 清华大学 | 卷积神经网络加速方法及装置 |
CN109564638B (zh) * | 2018-01-15 | 2023-05-26 | 深圳鲲云信息科技有限公司 | 人工智能处理器及其所应用的处理方法 |
WO2019136761A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 一种用于识别人为动作的三维卷积装置 |
CN108345934B (zh) * | 2018-01-16 | 2020-11-03 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
CN108416433B (zh) * | 2018-01-22 | 2020-11-24 | 上海熠知电子科技有限公司 | 一种基于异步事件的神经网络异构加速方法和系统 |
CN110197273B (zh) * | 2018-02-27 | 2020-08-25 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN108537330B (zh) * | 2018-03-09 | 2020-09-01 | 中国科学院自动化研究所 | 应用于神经网络的卷积计算装置及方法 |
CN108509179B (zh) * | 2018-04-04 | 2021-11-30 | 百度在线网络技术(北京)有限公司 | 用于检测人脸的方法、用于生成模型的装置 |
CN110399977A (zh) * | 2018-04-25 | 2019-11-01 | 华为技术有限公司 | 池化运算装置 |
CN108564170B (zh) * | 2018-04-26 | 2020-06-19 | 福州瑞芯微电子股份有限公司 | 一种基于noc的可重构神经网络运算方法和电路 |
US20190332924A1 (en) * | 2018-04-27 | 2019-10-31 | International Business Machines Corporation | Central scheduler and instruction dispatcher for a neural inference processor |
CN108647155B (zh) * | 2018-05-14 | 2020-08-21 | 瑞芯微电子股份有限公司 | 一种基于深度学习的多级cache共享的方法和装置 |
CN108762719B (zh) * | 2018-05-21 | 2023-06-06 | 南京大学 | 一种并行广义内积重构控制器 |
CN108805285B (zh) * | 2018-05-30 | 2022-03-29 | 山东浪潮科学研究院有限公司 | 一种卷积神经网络池化单元设计方法 |
US20210209468A1 (en) * | 2018-06-05 | 2021-07-08 | Mitsubishi Electric Corporatio | Learning device, inference device, method, and program |
JP2020004247A (ja) * | 2018-06-29 | 2020-01-09 | ソニー株式会社 | 情報処理装置、情報処理方法およびプログラム |
CN108921291B (zh) * | 2018-07-05 | 2021-08-31 | 北京航空航天大学合肥创新研究院 | 面向脑电信号处理的低功耗计算架构 |
CN109032781A (zh) * | 2018-07-13 | 2018-12-18 | 重庆邮电大学 | 一种卷积神经网络算法的fpga并行系统 |
CN109002884A (zh) * | 2018-07-20 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种池化处理装置及池化处理方法 |
CN110892373A (zh) * | 2018-07-24 | 2020-03-17 | 深圳市大疆创新科技有限公司 | 数据存取的方法、处理器、计算机系统和可移动设备 |
CN110765413A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 矩阵求和结构及神经网络计算平台 |
CN108681984B (zh) * | 2018-07-26 | 2023-08-15 | 珠海一微半导体股份有限公司 | 一种3*3卷积算法的加速电路 |
CN110766128A (zh) * | 2018-07-26 | 2020-02-07 | 北京深鉴智能科技有限公司 | 卷积计算单元、计算方法及神经网络计算平台 |
CN109146059A (zh) * | 2018-08-03 | 2019-01-04 | 济南浪潮高新科技投资发展有限公司 | 一种卷积数据处理电路及数据处理方法 |
CN110826707B (zh) * | 2018-08-10 | 2023-10-31 | 北京百度网讯科技有限公司 | 应用于卷积神经网络的加速方法和硬件加速器 |
CN109343826B (zh) * | 2018-08-14 | 2021-07-13 | 西安交通大学 | 一种面向深度学习的可重构处理器运算单元 |
CN109359269A (zh) * | 2018-08-27 | 2019-02-19 | 北京大学 | 进行矩阵向量乘法运算的系统及进行神经网络运算方法 |
CN109284817B (zh) * | 2018-08-31 | 2022-07-05 | 中国科学院上海高等研究院 | 深度可分离卷积神经网络处理架构/方法/系统及介质 |
CN109284824B (zh) * | 2018-09-04 | 2021-07-23 | 复旦大学 | 一种基于可重构技术的用于加速卷积和池化运算的装置 |
US11954573B2 (en) * | 2018-09-06 | 2024-04-09 | Black Sesame Technologies Inc. | Convolutional neural network using adaptive 3D array |
CN109376849A (zh) * | 2018-09-26 | 2019-02-22 | 旺微科技(上海)有限公司 | 一种卷积神经网络系统的控制方法及装置 |
CN109409512B (zh) * | 2018-09-27 | 2021-02-19 | 西安交通大学 | 一种可灵活配置的神经网络计算单元、计算阵列及其构建方法 |
CN116541647A (zh) * | 2018-10-09 | 2023-08-04 | 华为技术有限公司 | 运算加速器、处理方法及相关设备 |
CN111209245B (zh) * | 2018-11-21 | 2021-11-16 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
CN111078291B (zh) * | 2018-10-19 | 2021-02-09 | 中科寒武纪科技股份有限公司 | 运算方法、系统及相关产品 |
CN111260046B (zh) * | 2018-11-30 | 2022-12-02 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN109711533B (zh) * | 2018-12-20 | 2023-04-28 | 西安电子科技大学 | 基于fpga的卷积神经网络加速系统 |
CN109740733B (zh) * | 2018-12-27 | 2021-07-06 | 深圳云天励飞技术有限公司 | 深度学习网络模型优化方法、装置及相关设备 |
CN109711542B (zh) * | 2018-12-29 | 2020-08-18 | 西安交通大学 | 一种支持动态精度的dnn加速器及其实现方法 |
CN109784489B (zh) * | 2019-01-16 | 2021-07-30 | 北京大学软件与微电子学院 | 基于fpga的卷积神经网络ip核 |
CN109799977B (zh) * | 2019-01-25 | 2021-07-27 | 西安电子科技大学 | 指令程序开发调度数据的方法及系统 |
CN109933327B (zh) * | 2019-02-02 | 2021-01-08 | 中国科学院计算技术研究所 | 基于代码融合编译框架的OpenCL编译器设计方法和系统 |
CN109615067B (zh) * | 2019-03-05 | 2019-05-21 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种卷积神经网络的数据调度方法及装置 |
CN110147347B (zh) * | 2019-03-18 | 2023-01-06 | 腾讯科技(深圳)有限公司 | 用于矩阵处理的芯片、矩阵处理方法、装置及存储介质 |
CN111723917B (zh) * | 2019-03-21 | 2022-11-01 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
US11507349B2 (en) | 2019-06-26 | 2022-11-22 | Microsoft Technology Licensing, Llc | Neural processing element with single instruction multiple data (SIMD) compute lanes |
CN110490311A (zh) * | 2019-07-08 | 2019-11-22 | 华南理工大学 | 基于risc-v架构的卷积神经网络加速装置及其控制方法 |
CN110502278B (zh) * | 2019-07-24 | 2021-07-16 | 瑞芯微电子股份有限公司 | 基于RiscV扩展指令的神经网络协处理器及其协处理方法 |
CN110390392B (zh) * | 2019-08-01 | 2021-02-19 | 上海安路信息科技有限公司 | 基于fpga的卷积参数加速装置、数据读写方法 |
CN110472442A (zh) * | 2019-08-20 | 2019-11-19 | 厦门理工学院 | 一种自动检测硬件木马ip核 |
CN110780921B (zh) * | 2019-08-30 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置、存储介质及电子装置 |
CN112447202A (zh) * | 2019-09-03 | 2021-03-05 | 芯盟科技有限公司 | 神经网络智能芯片及其形成方法 |
CN110852428B (zh) * | 2019-09-08 | 2023-10-27 | 天津大学 | 基于fpga的神经网络加速方法和加速器 |
CN110689115B (zh) * | 2019-09-24 | 2023-03-31 | 安徽寒武纪信息科技有限公司 | 神经网络模型处理方法、装置、计算机设备及存储介质 |
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
CN110866597B (zh) * | 2019-09-27 | 2021-07-27 | 珠海博雅科技有限公司 | 数据处理电路和数据处理方法 |
CN110717588B (zh) | 2019-10-15 | 2022-05-03 | 阿波罗智能技术(北京)有限公司 | 用于卷积运算的装置和方法 |
CN111078287B (zh) * | 2019-11-08 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种向量运算协处理方法与装置 |
CN110991632B (zh) * | 2019-11-29 | 2023-05-23 | 电子科技大学 | 一种基于fpga的异构神经网络计算加速器设计方法 |
CN112990449B (zh) * | 2019-12-12 | 2022-10-25 | 上海交通大学 | 一种面向神经网络的可变计算精度的simt系统 |
CN111178505B (zh) * | 2019-12-23 | 2023-04-07 | 福建星网视易信息系统有限公司 | 卷积神经网络的加速方法和计算机可读存储介质 |
CN111142841A (zh) * | 2019-12-31 | 2020-05-12 | 莆田杰木科技有限公司 | 支持卷积运算的处理器电路系统及其卷积运算控制方法 |
CN111325327B (zh) * | 2020-03-06 | 2022-03-08 | 四川九洲电器集团有限责任公司 | 基于嵌入式平台的通用卷积神经网络运算架构与使用方法 |
CN111651379B (zh) * | 2020-04-29 | 2023-09-12 | 中国科学院计算技术研究所 | Dax设备地址转换缓存方法及系统 |
CN113807506B (zh) * | 2020-06-11 | 2023-03-24 | 杭州知存智能科技有限公司 | 数据加载电路和方法 |
CN111832718B (zh) * | 2020-06-24 | 2021-08-03 | 上海西井信息科技有限公司 | 芯片架构 |
CN111814957B (zh) * | 2020-06-28 | 2024-04-02 | 深圳云天励飞技术股份有限公司 | 神经网络运算方法及相关设备 |
CN112836793B (zh) * | 2021-01-18 | 2022-02-08 | 中国电子科技集团公司第十五研究所 | 浮点可分离卷积计算加速装置、系统以及图像处理方法 |
CN112748998B (zh) * | 2021-01-21 | 2023-10-03 | 中南大学 | 一种移动端的卷积神经网络任务调度方法及系统 |
CN112860320A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 |
CN112965931A (zh) * | 2021-02-22 | 2021-06-15 | 北京微芯智通科技合伙企业(有限合伙) | 基于cnn细胞神经网络结构的数字集成处理方法 |
CN113301221B (zh) * | 2021-03-19 | 2022-09-09 | 西安电子科技大学 | 一种深度网络相机图像处理方法及终端 |
CN113435570A (zh) * | 2021-05-07 | 2021-09-24 | 西安电子科技大学 | 可编程卷积神经网络处理器、方法、设备、介质、终端 |
CN113535638B (zh) * | 2021-07-20 | 2022-11-15 | 珠海市一微星科技有限公司 | 一种并行运算加速系统及其运行方法 |
CN113535637B (zh) * | 2021-07-20 | 2022-11-15 | 珠海市一微星科技有限公司 | 一种运算加速单元及其运行方法 |
CN114282662A (zh) * | 2021-12-29 | 2022-04-05 | 杭州万高科技股份有限公司 | 基于Cortex-M处理器的卷积神经网络加速方法、系统和介质 |
CN116630709B (zh) * | 2023-05-25 | 2024-01-09 | 中国科学院空天信息创新研究院 | 可配置混合卷积神经网络的高光谱图像分类装置及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN105681628A (zh) * | 2016-01-05 | 2016-06-15 | 西安交通大学 | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140289445A1 (en) * | 2013-03-22 | 2014-09-25 | Antony Savich | Hardware accelerator system and method |
-
2017
- 2017-02-13 CN CN201710076837.8A patent/CN106940815B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN105681628A (zh) * | 2016-01-05 | 2016-06-15 | 西安交通大学 | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 |
Non-Patent Citations (1)
Title |
---|
A Deep Learning prediction process accelerator based FPGA;Qi Yu等;《2015 15th IEEE/ACM International Symposium on Cluster,Cloud and Grid Computing》;20151231;第1159-1162页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106940815A (zh) | 2017-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
KR102492477B1 (ko) | 행렬 곱셈기 | |
US7447720B2 (en) | Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements | |
CN111459877B (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
US7574466B2 (en) | Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
CN110738308B (zh) | 一种神经网络加速器 | |
Kim et al. | A 125 GOPS 583 mW network-on-chip based parallel processor with bio-inspired visual attention engine | |
CN111897579A (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
JP6880160B2 (ja) | 計算装置と計算方法 | |
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
Fan et al. | Stream processing dual-track CGRA for object inference | |
CN110766127B (zh) | 神经网络计算专用电路及其相关计算平台与实现方法 | |
Xu et al. | CaFPGA: An automatic generation model for CNN accelerator | |
CN111860773B (zh) | 处理装置和用于信息处理的方法 | |
CN110991619A (zh) | 神经网络处理器、芯片和电子设备 | |
Huang et al. | IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency | |
Zhou et al. | Addressing sparsity in deep neural networks | |
Que et al. | Recurrent neural networks with column-wise matrix–vector multiplication on FPGAs | |
CN110377874B (zh) | 卷积运算方法及系统 | |
CN113762493A (zh) | 神经网络模型的压缩方法、装置、加速单元和计算系统 | |
CN114356836A (zh) | 基于risc-v的三维互联众核处理器架构及其工作方法 | |
Andri et al. | Going further with winograd convolutions: Tap-wise quantization for efficient inference on 4x4 tiles | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
CN112486908A (zh) | 层次化的多rpu多pea的可重构处理器 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200728 |