CN113269316B - 支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块 - Google Patents

支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块 Download PDF

Info

Publication number
CN113269316B
CN113269316B CN202110331653.8A CN202110331653A CN113269316B CN 113269316 B CN113269316 B CN 113269316B CN 202110331653 A CN202110331653 A CN 202110331653A CN 113269316 B CN113269316 B CN 113269316B
Authority
CN
China
Prior art keywords
data
sparse
calculation
selection
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.)
Active
Application number
CN202110331653.8A
Other languages
English (en)
Other versions
CN113269316A (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.)
Fudan University
Zhuhai Fudan Innovation Research Institute
Original Assignee
Fudan University
Zhuhai Fudan Innovation Research Institute
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 Fudan University, Zhuhai Fudan Innovation Research Institute filed Critical Fudan University
Priority to CN202110331653.8A priority Critical patent/CN113269316B/zh
Publication of CN113269316A publication Critical patent/CN113269316A/zh
Application granted granted Critical
Publication of CN113269316B publication Critical patent/CN113269316B/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

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)
  • Complex Calculations (AREA)

Abstract

本发明属于集成电路设计技术领域,具体为支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块。对应于稀疏度最大为r的神经网络加速器,本发明的稀疏数据选择逻辑模块由r组选择模块组成,每个选择模块包括一个FIFO、一个N输入MUX及一个缓存REG;其计算过程为:分r个时钟节拍读入r×N个数据至FIFO,同时每个节拍从FIFO输出的N个数中选出对应非零权重的有效数N/r个至输出REG中;r个时钟节拍共生成N个有效数据完成选择计算。本发明设计简单、速度快,在保证计算效率与传统方案同等的前提下降低数据带宽与逻辑资源需求r倍,也即数据带宽与逻辑资源与稀疏率无关。从而可以有效的应用在高稀疏度的神经网络计算上。

Description

支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块
技术领域
本发明属于集成电路设计技术领域,具体涉及一种支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块。
背景技术
神经网络是一种重要的人工智能解决方案,在图像处理与识别、机器视觉、视频检测、语音识别上都有重要的作用。而专用计算加速器的设计对于神经网络计算的落地应用至关重要。目前神经网络计算加速器有ASIC方案与FPGA方案,另外通用GPU也有集成面向神经网络的专用计算单元的趋势,以达到高计算速度、低能耗、低成本的综合效果。
稀疏神经网络是一种含有大量零值权重数据的神经网络。从神经元结构角度看,稀疏神经网络是由稀疏神经元构成,而每个稀疏神经元有大量的权重为零,这表示其对应的输入数据为无关数据,可以剪枝消除,从而达到成倍的减少计算量的效果。对于面向图像处理与视频检测的卷积神经网络,近年的研究表明通过有效训练,可以达到稀疏率75%至90%而基本保持神经网络的识别准确率。这里,稀疏率指数值为零的权重数量与总权重数量的比例。研究设计面向稀疏神经网络的计算加速器可以在同样的神经元计算单元的情况下成倍的提高计算速度,并降低计算能耗,从而具有非常大的实用价值。
稀疏神经网络计算加速器与普通神经网络计算加速器相比,需要增加一个数据选择模块。其作用是从输入数据中选出对应非零权重的数据以传给神经元进行点积计算。
假设每个神经元计算单元的输入数是N,神经网络总权重数量与非零权重数量的比例是r,我们称其为稀疏度。稀疏神经网络加速器需要在每个时钟节拍里读入r×N个输入数据并选出 N个对应于非零权重的数据传给神经元进行计算。我们以一个2选1MUX为面积计算单位。这种设计需要N个r×N输入的MUX,其面积为A=N×(rN-1)=rN2-N。相应的数据输入带宽为B=r×N×W,其中W为数据位宽。这个方案导致面积与数据带宽都正比于稀疏度r。从而对于高稀疏度的神经网络会导致较高的设计成本。
发明内容
本发明的目的在于提供一种可降低输入数据带宽和面积需求的支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块。
本发明提出的支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块,采用一种多时钟的选择逻辑以及选择逻辑与计算逻辑相结合的流水线结构方案,相比于传统的方案,可以大大输入数据带宽及逻辑资源需求。
一个加速器由多个PU组成,并且共享同一组输入数据,PU代表一个神经元计算单元,每个 PU可以接受N个输入数据并与预先存储的N个权重进行点积计算。
本发明设计的稀疏数据选择逻辑模块,对应于支持稀疏度最大为r的神经网络加速器,选择逻辑模块有r组选择模块组成;每个选择模块包括一个FIFO,一个N输入MUX及一个缓存REG。其计算过程为:分r个时钟节拍读入r×N个数据至FIFO,同时每个节拍从FIFO输出的N个数中选出对应非零权重的有效数N/r个至输出REG中;r个时钟节拍共生成N个有效数据完成选择计算。由于PU的点积计算可以在一个时钟节拍完成,为了使选择计算与点积计算同步,本发明使用r个MUX,同时对r个网络输出通道的权重选择r组对应的数据。这样,可以在r个节拍选出r组数据,再用r个节拍完成对应的r个点积计算,实现数据输入、选择与点积计算的同步。
本发明中,关于权重数据编码,采用直接地址(directindex)编码方式,每一个非零权重需要log2N数据位表达。
本发明中,选择逻辑面积为
Figure RE-GDA0003132888080000021
输入数据带宽为Bs=N×W。可见
Figure RE-GDA0003132888080000022
计算与数据调度算法,具体步骤为:
(1)每一个时钟节拍从片上内存(或外部内存通过总线)读入N个数据并写入FIFO中;
(2)每一个时钟节拍从FIFO中读出N个数据传给MUX,并根据非零权重的坐标选出N/r个数据写入缓存REG中;
(3)r个时钟节拍可以在缓存REG中写入N个数据;r个REG中存入r个输出通道的N个数据;
(4)分r个时钟节拍把r个REG的数据传给点积计算单元。
本发明中,稀疏度r可以达到4~10。
算法的伪代码见附录。
本发明还包括具有上述稀疏数据选择逻辑模块的稀疏神经网络计算加速器。
本发明具有如下优势:
(1)多时钟稀疏数据选择逻辑,降低了数据输入带宽。
对于稀疏度为r的神经网络及输入数为N的神经元计算单元,需要读入r×N个数以选出N 个对应非零权重的数据。通过r个时钟节拍而不是来完成数据读入。从而将数据输入总线的带宽从r×N×W降到了N×W,即降低了r倍,其中W为数据位宽。
(2)多时钟稀疏数据选择逻辑,降低了面积需求。
从r×N个数选出N个数,需要A=N×(rN-1)=rN2-N个2选1MUX。本发明通过r个时钟节拍,使用N选
Figure RE-GDA0003132888080000031
的MUX,并同时处理r个输出通道,选择逻辑的总面积为
Figure RE-GDA0003132888080000032
Figure RE-GDA0003132888080000033
从而可以将电路面积降低r倍。
(3)多输出通道计算达到稀疏数据选择与点积计算的平衡实现数据输入与计算的高效流水线。
由于本发明通过r个时钟节拍进行稀疏数据选择,为了保持数据输入与点积计算的计算速度(延时)平衡,在每一个神经元计算单元同时计算r个输出通道,达到数据输入与点积计算的平衡以实现流水线计算。
本发明的特点是,设计简单、速度快;在保证计算效率与传统方案同等的前提下降低数据带宽与逻辑资源需求r倍,也即数据带宽与逻辑资源与稀疏率无关。从而可以有效的应用在高稀疏度的神经网络计算上。本发明设计方案既可以适用于面向ASIC的神经网络计算加速器,也可以适用于面向FPGA的加速器。
附图说明
图1为本发明稀疏数据选择逻辑模组结构图。
具体实施方式
本发明设计了一个在FPGA上实现的稀疏神经网络加速器。其中PU由16个DSP单元构成一个神经元计算单元。整个加速器有32个PU。稀疏度r=4。通过网络稀疏化训练软件确保每一个卷积层的权重按照稀疏度4进行稀疏化。具体地,对于4维权重数组[n,c,kx,ky],其中n为输出通道数,c为输入通道数,kx、ky是卷积核在x方向和y方向的长度。本发明的网络稀疏软件可以将权重数组按c方向每16个数只保留16/4=4个非零值。计算过程是首先将 32×4=128个输出通道的权重存入32个PU的缓存,每个PU处理4个输出通道的计算。采用乒乓buffer,即读入下一组权重和卷积计算同时进行。卷积计算过程是每一个时种节拍从片上存储模块读入16个输入图片(featuremap)是数并同时发给32个PU。每个PU里面的4 组FIFO接受数据并传到4组MUX逻辑,按照4个输出通道的权重选择参数选出4组4个非零权重对于的输入数存入寄存器Reg1。4个时钟节拍可以接受4组输入数并选出4组对于非零权重的输入数,其中每组16个。而且分4个时钟节拍通过一个(4选1)MUX输出到数据寄存器中,和相应的权重进行点积计算。
本发明的设计在XilinxXC7VX690t上综合实现。数据位宽为8bit,片上内存大小为2MB。数据总线的位宽为16×8=128bit。选择逻辑部分占用了640个slice,电路延迟为0.685ns。片上内存占用了457个BRAM。
同时设计实现了传统方案。按照N=16,r=4,数据位宽同样为8bit,片上内存大小为 2MB。这种方案需要的数据总线宽度为64×8=512bit。这个设计的选择逻辑需要占用2176 个slice,电路延迟为1ns。片上内存需要463个BRAM。
可以看出本发明的设计方案可以减少逻辑资源3.4倍,电路延迟降低1.45倍。由于可以降低数据带宽,BRAM个数也有所降低。
附录
算法的伪代码:
Figure RE-GDA0003132888080000041
Figure RE-GDA0003132888080000051

Claims (3)

1.一种支持稀疏神经网络计算加速器的稀疏数据选择逻辑装置,其中,一个加速器由多个PU组成,并且共享同一组输入数据;PU代表一个神经元计算单元,每个PU可以接受N个输入数据并与预先存储的N个权重进行点积计算;其特征在于,对应于稀疏度最大为r的神经网络加速器,稀疏数据选择逻辑装置由r组选择模块组成;每个选择模块包括一个FIFO,一个N输入MUX及一个缓存REG;
其计算过程为:分r个时钟节拍读入r×N个数据至FIFO,同时每个节拍从FIFO输出的N个数中选出对应非零权重的有效数N/r个至输出REG中;r个时钟节拍共生成N个有效数据完成选择计算;
由于PU的点积计算在一个时钟节拍完成,为了使选择计算与点积计算同步,使用r个MUX,同时对r个网络输出通道的权重选择r组对应的数据;这样,在r个节拍选出r组数据,再用r个节拍完成对应的r个点积计算,实现数据输入、选择与点积计算的同步;
计算与数据调度的具体流程为:
(1)每一个时钟节拍从片上内存读入N个数据并写入FIFO中;
(2)每一个时钟节拍从FIFO中读出N个数据传给MUX,并根据非零权重的坐标选出N/r个数据写入缓存REG中;
(3)r个时钟节拍在缓存REG中写入N个数据;r个REG中存入r个输出通道的N个数据;
(4)分r个时钟节拍把r个REG的数据传给点积计算单元。
2.根据权利要求1所述的稀疏数据选择逻辑装置,其特征在于,权重数据编码采用直接地址编码方式,每一个非零权重需要log2N数据位表达。
3.一种具有如权利要求1或2所述稀疏数据选择逻辑装置的稀疏神经网络计算加速器。
CN202110331653.8A 2021-03-26 2021-03-26 支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块 Active CN113269316B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110331653.8A CN113269316B (zh) 2021-03-26 2021-03-26 支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110331653.8A CN113269316B (zh) 2021-03-26 2021-03-26 支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块

Publications (2)

Publication Number Publication Date
CN113269316A CN113269316A (zh) 2021-08-17
CN113269316B true CN113269316B (zh) 2022-10-11

Family

ID=77228225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110331653.8A Active CN113269316B (zh) 2021-03-26 2021-03-26 支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块

Country Status (1)

Country Link
CN (1) CN113269316B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107886167A (zh) * 2016-09-29 2018-04-06 北京中科寒武纪科技有限公司 神经网络运算装置及方法
CN108268943A (zh) * 2017-01-04 2018-07-10 意法半导体股份有限公司 硬件加速器引擎
CN108268940A (zh) * 2017-01-04 2018-07-10 意法半导体股份有限公司 用于创建可重新配置的互连框架的工具
CN110399972A (zh) * 2019-07-22 2019-11-01 上海商汤智能科技有限公司 数据处理方法、装置及电子设备
CN112418396A (zh) * 2020-11-20 2021-02-26 北京工业大学 一种基于fpga的稀疏激活感知型神经网络加速器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055063B2 (en) * 2016-05-02 2021-07-06 Marvell Asia Pte, Ltd. Systems and methods for deep learning processor
CN107229967B (zh) * 2016-08-22 2021-06-15 赛灵思公司 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法
CA3090329C (en) * 2018-02-16 2021-07-27 The Governing Council Of The University Of Toronto Neural network accelerator
CN109635944B (zh) * 2018-12-24 2020-10-27 西安交通大学 一种稀疏卷积神经网络加速器及实现方法
CN110276450B (zh) * 2019-06-25 2021-07-06 交叉信息核心技术研究院(西安)有限公司 基于多粒度的深度神经网络结构化稀疏系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107886167A (zh) * 2016-09-29 2018-04-06 北京中科寒武纪科技有限公司 神经网络运算装置及方法
CN108268943A (zh) * 2017-01-04 2018-07-10 意法半导体股份有限公司 硬件加速器引擎
CN108268940A (zh) * 2017-01-04 2018-07-10 意法半导体股份有限公司 用于创建可重新配置的互连框架的工具
CN110399972A (zh) * 2019-07-22 2019-11-01 上海商汤智能科技有限公司 数据处理方法、装置及电子设备
CN112418396A (zh) * 2020-11-20 2021-02-26 北京工业大学 一种基于fpga的稀疏激活感知型神经网络加速器

Also Published As

Publication number Publication date
CN113269316A (zh) 2021-08-17

Similar Documents

Publication Publication Date Title
CN108108809B (zh) 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN109409511B (zh) 一种用于动态可重构阵列的卷积运算数据流调度方法
CN111445012B (zh) 一种基于fpga的分组卷积硬件加速器及其方法
CN107704916B (zh) 一种基于fpga实现rnn神经网络的硬件加速器及方法
CN108171317B (zh) 一种基于soc的数据复用卷积神经网络加速器
CN108805266B (zh) 一种可重构cnn高并发卷积加速器
CN109447241B (zh) 一种面向物联网领域的动态可重构卷积神经网络加速器架构
CN109284817B (zh) 深度可分离卷积神经网络处理架构/方法/系统及介质
CN110852428B (zh) 基于fpga的神经网络加速方法和加速器
CN110674927A (zh) 一种用于脉动阵列结构的数据重组方法
CN112836813B (zh) 一种用于混合精度神经网络计算的可重构脉动阵列系统
CN112950656A (zh) 一种基于fpga平台的按通道进行预读取数据的分块卷积方法
Wang et al. Enhanced efficiency 3D convolution based on optimal FPGA accelerator
Chen et al. An efficient accelerator for multiple convolutions from the sparsity perspective
CN112905530A (zh) 片上架构、池化计算加速器阵列、单元以及控制方法
Que et al. Recurrent neural networks with column-wise matrix–vector multiplication on FPGAs
CN112418396A (zh) 一种基于fpga的稀疏激活感知型神经网络加速器
CN115310037A (zh) 矩阵乘法计算单元、加速单元、计算系统和相关方法
CN113269316B (zh) 支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块
CN113313244B (zh) 面向加法网络的近存储神经网络加速器及其加速方法
CN116431562B (zh) 一种基于加速处理器的多头注意力机制融合计算分配方法
CN109948787B (zh) 用于神经网络卷积层的运算装置、芯片及方法
CN116090530A (zh) 可配置卷积核大小和并行计算数目的脉动阵列结构及方法
Lu et al. A coarse-grained dual-convolver based CNN accelerator with high computing resource utilization
CN113869494A (zh) 基于高层次综合的神经网络卷积fpga嵌入式硬件加速器

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