CN112232499A - 卷积神经网络加速器 - Google Patents

卷积神经网络加速器 Download PDF

Info

Publication number
CN112232499A
CN112232499A CN202011090777.3A CN202011090777A CN112232499A CN 112232499 A CN112232499 A CN 112232499A CN 202011090777 A CN202011090777 A CN 202011090777A CN 112232499 A CN112232499 A CN 112232499A
Authority
CN
China
Prior art keywords
cache
input
control signal
jumping
enable 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.)
Granted
Application number
CN202011090777.3A
Other languages
English (en)
Other versions
CN112232499B (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.)
Wuhan Huazhong Tianjing Tongshi Technology Co ltd
717th Research Institute of CSIC
717Th Research Institute of CSSC
Original Assignee
717th Research Institute of CSIC
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 717th Research Institute of CSIC filed Critical 717th Research Institute of CSIC
Priority to CN202011090777.3A priority Critical patent/CN112232499B/zh
Publication of CN112232499A publication Critical patent/CN112232499A/zh
Application granted granted Critical
Publication of CN112232499B publication Critical patent/CN112232499B/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Neurology (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种卷积神经网络加速器,包含输入特征图缓存,权重缓存,输出特征图缓存,核心运算模块,控制模块,定点数转浮点数模块,浮点数转定点数模块和整数转定点数模块。通过定点数转浮点数模块,浮点数转定点数模块和整数转定点数模块解决了卷积神经网络加速器和CPU切换时需要消耗大量时间进行数据格式转换的问题和原始输入特征图转换位定点数需要消耗大量时间进行数据格式转换的问题。

Description

卷积神经网络加速器
技术领域
本发明涉及神经网络领域,尤其涉及一种卷积神经网络加速器。
背景技术
卷积神经网络技术近年来取得了极大的发展,各种网络层出不穷。人们尝试将卷积神经网络应用于计算机视觉、语音识别、自然语言处理、自动驾驶等领域,并且取得了一定的效果。
卷积神经网络的推断运算主要是基于GPU、CPU和FPGA平台。在GPU和CPU平台中,开发者通过软件编程的方式完成神经网络计算。在FPGA平台中,开发者通过设计通用或专用的神经网络加速装置,专门用来进行卷积和其他数学运算。与GPU和CPU相比,FPGA具有功耗低,体积小等优势,更容易部署于边缘端的神经网络计算。
与GPU和CPU运算平台不同的是,FPGA更适合进行定点运算。FPGA内部的硬件资源有限,特别是DSP资源和BRAM资源,是限制FPGA运算能力的瓶颈。采用定点数运算,可以大量节省DSP资源和BRAM资源的消耗,从而提高FPGA平台的运算能力。
然而FPGA只适合于进行卷积、激活、池化等线性操作,对于非线性计算则效率不高。对于这部分计算,更适合在CPU计算,而CPU适合进行浮点计算。将FPGA运算产生的定点数转换成CPU运算需要的浮点数,通常是在CPU中完成,这需要耗费大量的运算时间,限制了加速器的运算效率。
发明内容
本发明要解决的技术问题在于针对现有技术中加速器的运算效率不够高的缺陷,提供一种可节省运算时间提高运算效率的卷积神经网络加速器。
本发明解决其技术问题所采用的技术方案是:
本发明提供一种卷积神经网络加速器,包括控制模块、DMA、多个缓存、核心运算模块、浮点数转定点数模块、定点数转浮点数模块、整数转定点数模块,其中:
控制模块,用于配置输入特征图的大小,产生DMA的读写控制信号,输入特征图缓存、权重缓存、输出特征图缓存和中间计算结果缓存的双缓冲切换信号,缓存读写使能信号;控制模块还通过判断输入特征图缓存、权重缓存、输出特征图缓存的控制寄存器状态,来配置核心计算模块的运算使能信号;
整数转定点数模块,根据控制模块的配置信息将卷积神经网络第一层输入的原始的输入特征图数据转换为量化后的定点数,然后将定点数存储到输入特征图缓存;
浮点数转定点数模块,根据控制模块的配置信息将从外部存储器中输入的浮点数,按照量化结果转换为定点数,然后将定点数存储到输入特征图缓存;
定点数转浮点数模块,根据控制模块的配置信息将输出特征图缓存中的定点数转换为浮点数,转换得到的单精度浮点数通过DMA存入外部存储器;
输入特征图缓存,接收整数转定点数模块、浮点数转定点数模块或者DMA输入的定点数,并输出给核心运算模块;
权重缓存,接收经DMA输入的权重数据,并且输出给核心运算模块;
输出特征图缓模块,缓存核心计算模块计算出的中间结果或最终结果,通过DMA将核心模块计算结果或经过定点数转浮点数模块之后的结果存储到外部存储器;
核心运算模块,每个核心运算模块对应一个权重缓存和一个输出特征图缓存,所有的核心运算模块共用同一个输入特征图缓存,核心计算模块包括卷积运算模块、加法树、偏置模块、激活模块和池化模块,激活、池化操作与卷积运算耦合在一起,通过寄存器的方式配置激活和池化操作是否生效,在卷积运算完成后直接进行激活和池化操作。
接上述技术方案,每个输出特征图缓存包括输出缓存一和输出缓存二;每个输入特征图缓存包括输入缓存一和输入缓存二;每个权重缓存包括权重缓存一和权重缓存二;每个核心运算模块对应一个权重缓存和一个输出特征图缓存。
接上述技术方案,输入缓存一和输入缓存二分别有四个状态指示信号:加载中状态、加载完成状态、读取中状态和读取完成状态;还有两个控制信号:加载使能控制信号和读取使能控制信号,输入缓存一和输入缓存二以乒乓的形式交替进行数据加载和数据读取操作;输入特征图缓存的加载使能控制信号跳转步骤如下:
S1:判断输入缓存一的加载使能控制信号和输入缓存二的加载使能控制信号。如果输入缓存一的加载使能控制信号为低电平且输入缓存二的加载使能控制信号为低电平,跳转到S2;如果输入缓存一的加载使能控制信号为低电平且输入缓存二的加载使能控制信号为高电平,跳转到S3;如果输入缓存一的加载使能控制信号为高电平且输入缓存二的加载使能控制信号为低电平,跳转到S4;如果输入缓存一的加载使能控制信号为高电平且输入缓存二的加载使能控制信号为低电平,跳转到S5;
S2:如果输入缓存一的读取完成状态为高电平,则输入缓存一的加载使能控制信号置为高电平,输入缓存二的加载使能控制信号保持为低电平,跳转到S1;否则,跳转到S6;
S3:如果输入缓存一的加载完成状态为高电平,跳转到S7;否则,跳转到S1;
S4:如果缓存二的加载完成状态为高电平,跳转到S8;否则,跳转到S1;
S5:输入缓存一的加载使能控制信号置为低电平,输入缓存二的加载使能控制信号置为低电平,跳转到S1;
S6:如果输入缓存二的读取完成状态为高电平,则输入缓存一的加载使能控制信号置保持为低电平,输入缓存二的加载使能控制信号置为高电平,跳转到S1,否则,跳转到S1;
S7:如果输入缓存二的读取完成状态为高电平,则输入缓存一的加载使能控制信号置为低电平,输入缓存二的加载使能控制信号置为高电平,跳转到S1,否则,输入缓存一的加载使能控制信号置为低电平,输入缓存二的加载使能控制信号置为低电平,跳转到S1;
S8:如果输入缓存一的读取完成状态为高电平,则输入缓存一的加载使能控制信号置为高电平,输入缓存二的加载使能控制信号置为低电平,跳转到S1,否则,输入缓存一的加载使能控制信号置为低电平,输入缓存二的加载使能控制信号置为低电平,跳转到S1。
接上述技术方案,输入特征图缓存的读状态跳转步骤具体为:
Step1:判断输入缓存一的读取使能控制信号和输入缓存二的读取使能控制信号的状态;如果输入缓存一的读取使能控制信号为低电平且输入缓存二的读取使能控制信号为低电平,跳转到Step2;如果输入缓存一的读取使能控制信号为低电平且输入缓存二的读取使能控制信号为高电平,跳转到Step3;如果输入缓存一的读取使能控制信号为高电平且输入缓存二的读取使能控制信号为低电平,跳转到Step4;如果输入缓存一的读取使能控制信号为高电平且输入缓存二的读取使能控制信号为低电平,跳转到Step5;
Step2:如果输入缓存一的加载完成状态为高电平,则输入缓存一的读取使能控制信号置为高电平,输入缓存二的读取使能控制信号保持为低电平,跳转到Step1;否则,跳转到Step 6;
Step 3:如果输入缓存一的读取完成状态为高电平,跳转到Step7;否则,跳转到Step1;
Step 4:如果输入缓存二的读取完成状态为高电平,跳转到Step8;否则,跳转到Step1;
Step 5:输入缓存一的读取使能控制信号置为低电平,输入缓存二的读取使能控制信号置为低电平,跳转到Step1;
Step 6:如果输入缓存二的加载完成状态为高电平,则输入缓存一的读取使能控制信号置保持为低电平,输入缓存二的读取使能控制信号置为高电平,跳转到Step1,否则,跳转到Step1;
Step 7:如果输入缓存二的加载完成状态为高电平,则输入缓存一的读取使能控制信号置为低电平,输入缓存二的读取使能控制信号置为高电平,跳转到Step1,否则,输入缓存一的读取使能控制信号置为低电平,输入缓存二的读取使能控制信号置为低电平,跳转到Step1;
Step 8:如果输入缓存一的加载完成状态为高电平,则输入缓存一的读取使能控制信号置为高电平,输入缓存二的读取使能控制信号置为低电平,跳转到Step1,否则,输入缓存一的读取使能控制信号置为低电平,输入缓存二的读取使能控制信号置为低电平,跳转到Step1。
接上述技术方案,当以下条件同时满足时,控制模块将核心计算模块运算使能信号配置为高电平:
条件一:输入缓存一的读取使能控制信号为高电平,或输入缓存二的读取使能控制信号为高电平;
条件二:第一个权重缓存的权重缓存一的读取使能控制信号为高电平,或第一个权重缓存的权重缓存二的读取使能控制信号为高电平;
条件三:第一个输出特征图缓存的输出缓存一的写入使能控制信号为高电平,或第一个输出特征图缓存的输出缓存二的写入使能控制信号为高电平;
条件四:第二个权重缓存的权重缓存一的读取使能控制信号为高电平,或第二个权重缓存的权重缓存二的读取使能控制信号为高电平;
条件五:第二个输出特征图缓存的输出缓存一的写入使能控制信号为高电平,或第二个输出特征图缓存的输出缓存二的写入使能控制信号为高电平;
条件N-1:最后一个权重缓存的权重缓存一的读取使能控制信号为高电平,或最后一个权重缓存的权重缓存二的读取使能控制信号为高电平;
条件N:最后一个输出特征图缓存的输出缓存一的写入使能控制信号为高电平,或最后一个输出特征图缓存的输出缓存二的写入使能控制信号为高电平。
接上述技术方案,输入特征图缓存控制流程如下:
S1:当输入特征图缓存加载使能为高电平,并且输入缓存加载标识为零,并且输入特征图缓存加载次数小于输入特征图缓存的总加载次数,则加载输入特征图缓存,输入缓存加载标识置为1,跳转到S2;否则,跳转到S2;
S2:当输入缓存加载标识为1,跳转到S3,否则,跳转到S1;
S3:如果输入令牌为0且输入缓存一加载完成,则输入缓存加载标识置为0,输入令牌置为1,输入特征图缓存加载次数加一,跳转到S1;否则,跳转到S4;
S4:如果输入令牌为1且输入缓存二加载完成,则输入缓存加载标识置为0,输入令牌置为0,输入特征图缓存加载次数加一,跳转到S1;否则,跳转到S1。
接上述技术方案,权重缓存控制流程如下:
S1:当权重缓存加载使能为高电平,并且权重缓存加载标识为零,并且权重缓存加载次数小于权重缓存的总加载次数,则加载权重缓存一,权重缓存加载标识置为1,跳转到S2;否则,跳转到S2.
S2:当权重缓存加载标识为1,跳转到S3,否则,跳转到S5;
S3:如果权重令牌一为0且权重缓存一的权重缓存A加载完成,则权重缓存加载标识置为2,权重令牌一置为1,加载权重缓存二,跳转到S5;否则,跳转到S4;
S4:如果权重令牌一为1且权重缓存一的权重缓存B加载完成,则权重缓存加载标识置为2,权重令牌一置为0,跳转到S5;否则,跳转到S5;S5:当权重缓存加载标识为2,跳转到S6,否则,跳转到S1;
S5:当权重缓存加载标识为2,跳转到S6,否则,跳转到S1;
S6:如果权重令牌二为0且权重缓存二的权重缓存A加载完成,则权重缓存加载标识置为0,权重令牌二置为1,权重缓存加载次数加一,加载权重缓存二,跳转到S1;否则,跳转到S7;
S7:如果权重令牌二为1且权重缓存二的权重缓存B加载完成,则权重缓存加载标识置为0,权重令牌二置为0,权重缓存加载次数加一,跳转到S1;否则,跳转到S1;
接上述技术方案,输出特征图缓存控制流程包括:
S1:当输出特征图缓存一的写入使能为低电平,并且输出特征图缓存加载标识为零,并且输出特征图缓存加载次数小于输出特征图缓存总加载次数,则加载输出特征图缓存一,输出特征图缓存加载标识置为1,跳转到S2;否则,跳转到S2;
S2:当输出特征图缓存加载标识为1,跳转到S3,否则,跳转到S5;
S3:如果输出令牌一为0且输出特征图缓存一的输出缓存一加载完成,则输出特征图缓存加载标识置为2,输出令牌一置为1,加载输出特征图缓存二,跳转到S5;否则,跳转到S4;
S4:如果输出令牌一为1且输出特征图缓存一的输出缓存二加载完成,则输出特征图缓存加载标识置为2,输出令牌一置为0,跳转到S5;否则,跳转到S5;
S5:当输出特征图缓存加载标识为2,跳转到S6,否则,跳转到S1;
S6:如果输出令牌二为0且输出特征图缓存二的输出缓存A加载完成,则输出特征图缓存加载标识置为0,输出令牌二置为1,输出特征图缓存加载次数加一,加载权重缓存二,跳转到S1;否则,跳转到S7;
S7:如果输出令牌二为1且输出特征图缓存二的输出缓存B加载完成,则输出特征图缓存加载标识置为0,输出令牌二置为0,输出特征图缓存加载次数加一,跳转到S1;否则,跳转到S1。
接上述技术方案,当输入特征图缓存加载次数等于输入特征图缓存总加载次数,并且权重缓存加载次数等于权重缓存总加载次数,并且输出特征图缓存加载次数等于输出特征图缓存总加载次数,则当前卷积神经网络的一个卷积层、激活层和池化层已经运算完成,并且运算结果已经以需要的格式载入到了外部存储器中。
接上述技术方案,该神经网络加速器通过FPGA实现。
本发明产生的有益效果是:本发明通过可配置输入特征块大小的设计,使本卷积神经网络加速装置能够适配任意大小输入特征图,并且当计算到输入特征图大小的边缘时,不需要对输入特征图进行填充,节省了运算时间。
进一步地,本发明将激活和池化操作与卷积运算耦合在一起,通过寄存器的方式配置激活和池化操作是否生效,在卷积运算完成后可以直接进行激活和池化操作,节省了运算时间。
进一步地,本发明在输入特征图之前设计了整数转定点数模块,对于图像处理领域的卷积神经网络运算能够节省第一层输入特征图整数转换为定点数的时间。
进一步地,本发明在输入特征图缓存之前设计了浮点数转定点数模块,将CPU计算的结果载入到输入特征图之前转换为定点数,节省了数据格式转换的时间。本发明在输出特征图缓存之后设计了定点数转浮点数模块,将定点数转换为浮点数之后,通过DMA转换为浮点数,方便CPU进行运算,节省了数据格式转换的时间。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明一实施例的卷积神经网络加速器结构图;
图2是本发明一实施例的核心运算单元的结构图;
图3是浮点数在FPGA中的格式。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明实施例的卷积神经网络加速器主要基于Xilinx的ZYNQ系列FPGA或Altera的SOC FPGA。这种FPGA集成了可编程逻辑算元(PL)和ARM核(PS),PL部分可以进行卷积、激活、池化等传统FPGA中进行的运算,PS部分可以进行浮点数运算。
如图1所示,为本发明实施例卷积神经网络加速器的结构示意图。本发明提供了一种可以配置每次参与计算的输入特征图大小,并且可以将整数或浮点数转换为定点数,将定点数转换为浮点数的卷积神经网络加速器。包括控制模块、DMA、输入特征图缓存、权重缓存、输出特征图和中间计算结果缓存(以下简称输出特征图缓存)、核心运算模块、浮点数转定点数模块、定点数转浮点数模块、整数转定点数模块。其中核心计算模块以及与其对应的权重缓存和输出特征图缓存个数根据FPGA资源大小和所运行卷积神经网络的大小可配置。该实施例中,卷积神经网络加速器包括一个输入特征图缓存、两个输出特征图缓存、两个权重缓存和两个核心计算模块。
1)整数转定点数模块
整数转定点数模块,将卷积神经网络第一层输入的原始的输入特征图数据转换为量化后的定点数。控制模块首先配置整数转定点数模块的以下信息:定点数的位宽,小数部分的位宽,输入整数的位宽,整数是否包含符号位。然后控制模块控制DMA从外部存储器DDR中搬运第一层的原始的输入特征图数据,送入整数转定点数模块。整数转定点数模块根据配置信息,将整数转换为定点数,然后将定点数存储到输入特征图缓存。整数的数据位宽是M,定点数的数据位宽是N,转换方法:①当整数为无符号数,整数的数据位为M,并且整数不小于0,则定点数的第N-1位恒为0,第N-2至N-M-1位为原始的整数,第N-M-2至0位为0.②当整数位有符号数,整数的最高位是符号位,整数的数据位为M-1,将整数赋给定点数的第N-1至N-M位,第N-M-1至0位赋0。
2)浮点数转定点数模块
浮点数转定点数模块,将从外部存储器中输入的浮点数,按照量化结果转换为定点数。控制模块首先配置浮点数数转定点数模块的以下信息:定点数的位宽和小数部分位宽。然后控制模块控制DMA从外部存储器DDR中搬运原始的输入特征图数据,送入浮点数转定点数模块。浮点数转定点数模块根据配置信息,将浮点数转换为定点数,然后将定点数存储到输入特征图缓存。浮点数的格式如图3所示,将浮点数的指数位记位E,小数位记位F。将指数位E减去128,取绝对值得到Ereal;将小数位最高位前面加1,记位1.F,其整数位是1位,小数位是24位。当E大于等于128,将1.F向左移Ereal位,得到整数位是1+Ereal位,小数位是24-Ereal位的小数,根据控制模块设置的定点数位宽和小数部分位宽,截取获得定点数的原码;当E小于128,将1.F向右移Ereal位,得到整数位是0位,小数位是24+Ereal位的小数,根据控制模块设置的定点数位宽和小数位位宽,截取获得定点数的原码。①当符号位为1,将原码是数据位每个比特取反之后加一,得到最终结果的定点数;②当符号位为0,将原码直接输出,作为最终结果的定点数。
整数转定点数模块和浮点数转定点数模块都位于DMA之间。两者不能同时工作。在大多数应用场景下,卷积神经网络的第一层输入特征图输入的原始数据为无符号整数,此时需要将无符号整数转换为定点数,才能将输入特征图送入核心运算模块进行运算。
3)定点数转浮点数模块
定点数转浮点数模块,将输出特征图缓存中的定点数转换为浮点数,以方便ARM进行卷积神经网络需要的其它运算。控制模块首先配置浮点数数转定点数模块的以下信息:定点数的位宽和小数部分位宽。然后控制模块控制DMA将输出特征图缓存中的定点数读出,送入定点数转浮点数模块。定点数转浮点数模块根据配置信息,将定点数转换为单精度浮点数,转换得到的单精度浮点数通过DMA存入外部存储器。将定点数记为S.D,其中S为符号位。首先,计算获得定点数的原码:①当符号位为1,将数据位(D)的每个比特取反之后加一,得到定点数的原码;②当符号位为0,则原始的数据为就是定点数的原码。然后从最高位开始找到原码除了符号位之外的第一个高电平,取该比特位右边的数据位符号位的小数位。如果该高电平在定点数小数点的左边N比特,则浮点数的指数为128+N-1;如果该高电平在定点数小数点的右边N比特,则浮点数的指数为128-N。浮点数的符号位和定点数的符号位相同。
4)输入特征图缓存
输入特征图缓存,接收经过整数转定点数模块,或者经过浮点数转定点数模块,或者经DMA输入的定点数,并在适当的时候输出给核心运算模块。每个输入特征图缓存包括输入缓存一和输入缓存二。输入缓存一和输入缓存二分别有四个状态指示信号:加载中状态,加载完成状态,读取中状态,读取完成状态;有两个控制信号:加载使能控制信号和读取使能控制信号。输入缓存一和输入缓存二以乒乓的形式交替进行数据加载和数据读取操作。输入特征图缓存的加载使能控制信号跳转步骤:
S1:判断输入缓存一的加载使能控制信号和缓存二的加载使能控制信号。如果缓存一的加载使能控制信号为低电平且缓存二的加载使能控制信号为低电平,跳转到S2;如果缓存一的加载使能控制信号为低电平且缓存二的加载使能控制信号为高电平,跳转到S3;如果缓存一的加载使能控制信号为高电平且缓存二的加载使能控制信号为低电平,跳转到S4;如果缓存一的加载使能控制信号为高电平且缓存二的加载使能控制信号为低电平,跳转到S5。
S2:如果缓存一的读取完成状态为高电平,则缓存一的加载使能控制信号置为高电平,缓存二的加载使能控制信号保持为低电平,跳转到S1;否则,跳转到S6;
S3:如果缓存一的加载完成状态为高电平,,跳转到S7;否则,跳转到S1;
S4:如果缓存二的加载完成状态为高电平,,跳转到S8;否则,跳转到S1;
S5:缓存一的加载使能控制信号置为低电平,缓存二的加载使能控制信号置为低电平,跳转到S1;
S6:如果缓存二的读取完成状态为高电平,则缓存一的加载使能控制信号置保持为低电平,缓存二的加载使能控制信号置为高电平,跳转到S1,否则,跳转到S1;
S7:如果缓存二的读取完成状态为高电平,则缓存一的加载使能控制信号置为低电平,缓存二的加载使能控制信号置为高电平,跳转到S1,否则,缓存一的加载使能控制信号置为低电平,缓存二的加载使能控制信号置为低电平,跳转到S1;
S8:如果缓存一的读取完成状态为高电平,则缓存一的加载使能控制信号置为高电平,缓存二的加载使能控制信号置为低电平,跳转到S1,否则,缓存一的加载使能控制信号置为低电平,缓存二的加载使能控制信号置为低电平,跳转到S1;
输入特征图缓存的读状态跳转步骤:
S1:判断输入缓存一的读取使能控制信号和输入缓存二的读取使能控制信号的状态。如果输入缓存一的读取使能控制信号为低电平且输入缓存二的读取使能控制信号为低电平,跳转到S2;如果输入缓存一的读取使能控制信号为低电平且输入缓存二的读取使能控制信号为高电平,跳转到S3;如果输入缓存一的读取使能控制信号为高电平且输入缓存二的读取使能控制信号为低电平,跳转到S4;如果输入缓存一的读取使能控制信号为高电平且输入缓存二的读取使能控制信号为低电平,跳转到S5。
S2:如果缓存一的加载完成状态为高电平,则输入缓存一的读取使能控制信号置为高电平,输入缓存二的读取使能控制信号保持为低电平,跳转到S1;否则,跳转到S6;
S3:如果缓存一的读取完成状态为高电平,,跳转到S7;否则,跳转到S1;
S4:如果缓存二的读取完成状态为高电平,,跳转到S8;否则,跳转到S1;
S5:缓存一的读取使能控制信号置为低电平,缓存二的读取使能控制信号置为低电平,跳转到S1。
S6:如果缓存二的加载完成状态为高电平,则缓存一的读取使能控制信号置保持为低电平,缓存二的读取使能控制信号置为高电平,跳转到S1,否则,跳转到S1;
S7:如果缓存二的加载完成状态为高电平,则缓存一的读取使能控制信号置为低电平,缓存二的读取使能控制信号置为高电平,跳转到S1,否则,缓存一的读取使能控制信号置为低电平,缓存二的读取使能控制信号置为低电平,跳转到S1;
S8:如果缓存一的加载完成状态为高电平,则缓存一的读取使能控制信号置为高电平,缓存二的读取使能控制信号置为低电平,跳转到S1,否则,缓存一的读取使能控制信号置为低电平,缓存二的读取使能控制信号置为低电平,跳转到S1。
5)权重缓存
权重缓存,接收经DMA输入的权重数据,并且在适当的时候输出给核心运算模块。每个权重缓存包括权重缓存一和权重缓存二。权重缓存一和权重缓存二分别有四个状态指示信号:加载中状态,加载完成状态,读取中状态,读取完成状态;有两个控制信号:加载使能控制信号和读取使能控制信号。权重缓存一和权重缓存二以乒乓的形式交替进行数据加载和数据读取操作。加载使能控制信号和读取使能控制信号的跳转步骤和输入特征图缓存相同。
6)输出特征图缓存
输出特征图缓存,缓存核心计算模块计算出的中间结果或最终结果,通过DMA将核心模块计算结果或经过定点数转浮点数模块之后的结果存储到外部存储器。每个输出特征图缓存包括输出缓存一和输出缓存二。输出缓存一和输出缓存二分别有四个状态指示信号:加载中状态,加载完成状态,写入中状态,写入完成状态;有一个控制信号:写入使能控制信号。写入完成后,输出特征图缓存自动跳转到加载状态。输出缓存一和输出缓存二以乒乓的形式交替进行数据加载和数据写入操作。
7)核心运算模块
每个核心运算模块对应一个权重缓存和一个输出特征图缓存,所有的核心运算模块共用同一个输入特征图缓存。
如图2所示,核心计算模块包括卷积运算模块,加法树,偏置模块,激活模块和池化模块,其中偏执模块、激活模块和池化模块可配置是否工作。根据所选用FPGA资源大小的不同,核心计算模块的大小和个数可以配置。核心运算模块中的卷积模块的个数根据FPGA资源大小和所运行卷积神经网络的大小可配置。
8)控制模块
控制模块可以配置输入特征图的大小,产生DMA的读写控制信号,输入特征图缓存、权重缓存、输出特征图和中间计算结果缓存的双缓冲切换信号,缓存读写使能信号,核心计算模块计算使能信号,激活、池化模块使能信号。
控制模块通过判断输入特征图缓存、权重缓存、输出特征图缓存的控制寄存器状态,来产生核心计算模块的运算使能模块。当以下条件同时满足时,控制模块将核心计算模块运算使能信号配置为高电平。
条件一:输入缓存一的读取使能控制信号为高电平,或输入缓存二的读取使能控制信号为高电平;
条件二:第一个权重缓存的权重缓存一的读取使能控制信号为高电平,或第一个权重缓存的权重缓存二的读取使能控制信号为高电平;
条件三:第一个输出特征图缓存的输出缓存一的写入使能控制信号为高电平,或第一个输出特征图缓存的输出缓存二的写入使能控制信号为高电平;
条件四:第二个权重缓存的权重缓存一的读取使能控制信号为高电平,或第二个权重缓存的权重缓存二的读取使能控制信号为高电平;
条件五:第二个输出特征图缓存的输出缓存一的写入使能控制信号为高电平,或第二个输出特征图缓存的输出缓存二的写入使能控制信号为高电平;
条件N-1:最后一个权重缓存的权重缓存一的读取使能控制信号为高电平,或最后一个权重缓存的权重缓存二的读取使能控制信号为高电平;
条件N:最后一个输出特征图缓存的输出缓存一的写入使能控制信号为高电平,或最后一个输出特征图缓存的输出缓存二的写入使能控制信号为高电平。
整个卷积神经网络加速器通过驱动程序控制输入特征图缓存、权重缓存和输出特征图缓存来完成控制。驱动程序对缓存的控制通过令牌的形式进行。以一种含有两个核心运算模块的卷积神经网络加速器为例,来说明缓存的控制流程:
卷积神经网络加速器初始化,输入特征图缓存,权重缓存和输出特征图缓存为空,令牌为0,输入特征图缓存加载次数为0,权重缓存加载次数为0,输出特征图缓存加载次数为0。
1)输入特征图缓存控制
S1:当输入特征图缓存加载使能为高电平,并且输入缓存加载标识为零,并且输入特征图缓存加载次数小于输入特征图缓存的总加载次数,则加载输入特征图缓存,输入缓存加载标识置为1,跳转到S2;否则,跳转到S2;
S2:当输入缓存加载标识为1,跳转到S3,否则,跳转到S1;
S3:如果输入令牌为0且输入缓存A加载完成,则输入缓存加载标识置为0,输入令牌置为1,输入特征图缓存加载次数加一,跳转到S1;否则,跳转到S4;
S4:如果输入令牌为1且输入缓存B加载完成,则输入缓存加载标识置为0,输入令牌置为0,输入特征图缓存加载次数加一,跳转到S1;否则,跳转到S1。
2)权重缓存控制:
S1:当权重缓存加载使能为高电平,并且权重缓存加载标识为零,并且权重缓存加载次数小于权重缓存的总加载次数,则加载权重缓存一,权重缓存加载标识置为1,跳转到S2;否则,跳转到S2;
S2:当权重缓存加载标识为1,跳转到S3,否则,跳转到S5;
S3:如果权重令牌一为0且权重缓存一的权重缓存A加载完成,则权重缓存加载标识置为2,权重令牌一置为1,加载权重缓存二,跳转到S5;否则,跳转到S4;
S4:如果权重令牌一为1且权重缓存一的权重缓存B加载完成,则权重缓存加载标识置为2,权重令牌一置为0,跳转到S5;否则,跳转到S5;
S5:当权重缓存加载标识为2,跳转到S6,否则,跳转到S1;
S6:如果权重令牌二为0且权重缓存二的权重缓存A加载完成,则权重缓存加载标识置为0,权重令牌二置为1,权重缓存加载次数加一,加载权重缓存二,跳转到S1;否则,跳转到S7;
S7:如果权重令牌二为1且权重缓存二的权重缓存B加载完成,则权重缓存加载标识置为0,权重令牌二置为0,权重缓存加载次数加一,跳转到S1;否则,跳转到S1。
3)输出特征图缓存控制:
S1:当输出特征图缓存一的写入使能为低电平,并且输出特征图缓存加载标识为零,并且输出特征图缓存加载次数小于输出特征图缓存总加载次数,则加载输出特征图缓存一,输出特征图缓存加载标识置为1,跳转到S2;否则,跳转到S2;
S2:当输出特征图缓存加载标识为1,跳转到S3,否则,跳转到S5;
S3:如果输出令牌一为0且第一个输出特征图缓存输出缓存一加载完成,则输出特征图缓存加载标识置为2,输出令牌一置为1,加载输出特征图缓存二,跳转到S5;否则,跳转到S4;
S4:如果输出令牌一为1且第一个输出特征图缓存的输出缓存二加载完成,则输出特征图缓存加载标识置为2,输出令牌一置为0,跳转到S5;否则,跳转到S5;
S5:当输出特征图缓存加载标识为2,跳转到S6,否则,跳转到S1;
S6:如果输出令牌二为0且第二个输出特征图缓存的输出缓存一加载完成,则输出特征图缓存加载标识置为0,输出令牌二置为1,输出特征图缓存加载次数加一,加载权重缓存二,跳转到S1;否则,跳转到S7;
S7:如果输出令牌二为1且第二个输出特征图缓存的输出缓存二加载完成,则输出特征图缓存加载标识置为0,输出令牌二置为0,输出特征图缓存加载次数加一,跳转到S1;否则,跳转到S1;
最终,输入特征图缓存加载次数等于输入特征图缓存总加载次数,并且权重缓存加载次数等于权重缓存总加载次数,并且输出特征图缓存加载次数等于输出特征图缓存总加载次数,则当前卷积神经网络的一个卷积层、激活层和池化层已经运算完成,并且运算结果已经以需要的格式载入到了外部存储器中。
本发明通过定点数转浮点数模块,浮点数转定点数模块和整数转定点数模块解决了卷积神经网络加速器和CPU切换时需要消耗大量时间进行数据格式转换的问题和原始输入特征图转换位定点数需要消耗大量时间进行数据格式转换的问题。本发明还可以配置每次载入的输入特征图大小,适配不同的卷积神经网络。
本发明通过可配置输入特征块大小的设计,使本卷积神经网络加速装置能够适配任意大小输入特征图,并且当计算到输入特征图大小的边缘时,不需要对输入特征图进行填充,节省了运算时间。
本发明将激活和池化操作与卷积运算耦合在一起,通过寄存器的方式配置激活和池化操作是否生效,在卷积运算完成后可以直接进行激活和池化操作,节省了运算时间。
本发明在输入特征图之前设计了整数转定点数模块,对于图像处理领域的卷积神经网络运算能够节省第一层输入特征图整数转换为定点数的时间。
除了卷积、池化操作,部分卷积神经网络和孪生网络还有一些其它的非线性运算,适合使用CPU进行计算。CPU适合进行浮点数运算,而FPGA更适合进行定点数运算。本发明在输入特征图缓存之前设计了浮点数转定点数模块,将CPU计算的结果载入到输入特征图之前转换为定点数,节省了数据格式转换的时间。本发明在输出特征图缓存之后设计了定点数转浮点数模块,将定点数转换为浮点数之后,通过DMA转换为浮点数,方便CPU进行运算,节省了数据格式转换的时间。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种卷积神经网络加速器,其特征在于,包括控制模块、DMA、多个缓存、核心运算模块、浮点数转定点数模块、定点数转浮点数模块、整数转定点数模块,其中:
控制模块,用于配置输入特征图的大小,产生DMA的读写控制信号,输入特征图缓存、权重缓存、输出特征图缓存和中间计算结果缓存的双缓冲切换信号,缓存读写使能信号;控制模块还通过判断输入特征图缓存、权重缓存、输出特征图缓存的控制寄存器状态,来配置核心计算模块的运算使能信号;
整数转定点数模块,根据控制模块的配置信息将卷积神经网络第一层输入的原始的输入特征图数据转换为量化后的定点数,然后将定点数存储到输入特征图缓存;
浮点数转定点数模块,根据控制模块的配置信息将从外部存储器中输入的浮点数,按照量化结果转换为定点数,然后将定点数存储到输入特征图缓存;
定点数转浮点数模块,根据控制模块的配置信息将输出特征图缓存中的定点数转换为浮点数,转换得到的单精度浮点数通过DMA存入外部存储器;
输入特征图缓存,接收整数转定点数模块、浮点数转定点数模块或者DMA输入的定点数,并输出给核心运算模块;
权重缓存,接收经DMA输入的权重数据,并且输出给核心运算模块;
输出特征图缓模块,缓存核心计算模块计算出的中间结果或最终结果,通过DMA将核心模块计算结果或经过定点数转浮点数模块之后的结果存储到外部存储器;
核心运算模块,每个核心运算模块对应一个权重缓存和一个输出特征图缓存,所有的核心运算模块共用同一个输入特征图缓存,核心计算模块包括卷积运算模块、加法树、偏置模块、激活模块和池化模块,激活、池化操作与卷积运算耦合在一起,通过寄存器的方式配置激活和池化操作是否生效,在卷积运算完成后直接进行激活和池化操作。
2.根据权利要求1所述的卷积神经网络加速器,其特征在于,每个输出特征图缓存包括输出缓存一和输出缓存二;每个输入特征图缓存包括输入缓存一和输入缓存二;每个权重缓存包括权重缓存一和权重缓存二;每个核心运算模块对应一个权重缓存和一个输出特征图缓存。
3.根据权利要求2所述的卷积神经网络加速器,其特征在于,输入缓存一和输入缓存二分别有四个状态指示信号:加载中状态、加载完成状态、读取中状态和读取完成状态;还有两个控制信号:加载使能控制信号和读取使能控制信号,输入缓存一和输入缓存二以乒乓的形式交替进行数据加载和数据读取操作;输入特征图缓存的加载使能控制信号跳转步骤如下:
S1:判断输入缓存一的加载使能控制信号和输入缓存二的加载使能控制信号。如果输入缓存一的加载使能控制信号为低电平且输入缓存二的加载使能控制信号为低电平,跳转到S2;如果输入缓存一的加载使能控制信号为低电平且输入缓存二的加载使能控制信号为高电平,跳转到S3;如果输入缓存一的加载使能控制信号为高电平且输入缓存二的加载使能控制信号为低电平,跳转到S4;如果输入缓存一的加载使能控制信号为高电平且输入缓存二的加载使能控制信号为低电平,跳转到S5;
S2:如果输入缓存一的读取完成状态为高电平,则输入缓存一的加载使能控制信号置为高电平,输入缓存二的加载使能控制信号保持为低电平,跳转到S1;否则,跳转到S6;
S3:如果输入缓存一的加载完成状态为高电平,跳转到S7;否则,跳转到S1;
S4:如果缓存二的加载完成状态为高电平,跳转到S8;否则,跳转到S1;
S5:输入缓存一的加载使能控制信号置为低电平,输入缓存二的加载使能控制信号置为低电平,跳转到S1;
S6:如果输入缓存二的读取完成状态为高电平,则输入缓存一的加载使能控制信号置保持为低电平,输入缓存二的加载使能控制信号置为高电平,跳转到S1,否则,跳转到S1;
S7:如果输入缓存二的读取完成状态为高电平,则输入缓存一的加载使能控制信号置为低电平,输入缓存二的加载使能控制信号置为高电平,跳转到S1,否则,输入缓存一的加载使能控制信号置为低电平,输入缓存二的加载使能控制信号置为低电平,跳转到S1;
S8:如果输入缓存一的读取完成状态为高电平,则输入缓存一的加载使能控制信号置为高电平,输入缓存二的加载使能控制信号置为低电平,跳转到S1,否则,输入缓存一的加载使能控制信号置为低电平,输入缓存二的加载使能控制信号置为低电平,跳转到S1。
4.根据权利要求3所述的卷积神经网络加速器,其特征在于,输入特征图缓存的读状态跳转步骤具体为:
Step1:判断输入缓存一的读取使能控制信号和输入缓存二的读取使能控制信号的状态;如果输入缓存一的读取使能控制信号为低电平且输入缓存二的读取使能控制信号为低电平,跳转到Step2;如果输入缓存一的读取使能控制信号为低电平且输入缓存二的读取使能控制信号为高电平,跳转到Step3;如果输入缓存一的读取使能控制信号为高电平且输入缓存二的读取使能控制信号为低电平,跳转到Step4;如果输入缓存一的读取使能控制信号为高电平且输入缓存二的读取使能控制信号为低电平,跳转到Step5;
Step2:如果输入缓存一的加载完成状态为高电平,则输入缓存一的读取使能控制信号置为高电平,输入缓存二的读取使能控制信号保持为低电平,跳转到Step1;否则,跳转到Step 6;
Step 3:如果输入缓存一的读取完成状态为高电平,跳转到Step7;否则,跳转到Step1;
Step 4:如果输入缓存二的读取完成状态为高电平,跳转到Step8;否则,跳转到Step1;
Step 5:输入缓存一的读取使能控制信号置为低电平,输入缓存二的读取使能控制信号置为低电平,跳转到Step1;
Step 6:如果输入缓存二的加载完成状态为高电平,则输入缓存一的读取使能控制信号置保持为低电平,输入缓存二的读取使能控制信号置为高电平,跳转到Step1,否则,跳转到Step1;
Step 7:如果输入缓存二的加载完成状态为高电平,则输入缓存一的读取使能控制信号置为低电平,输入缓存二的读取使能控制信号置为高电平,跳转到Step1,否则,输入缓存一的读取使能控制信号置为低电平,输入缓存二的读取使能控制信号置为低电平,跳转到Step1;
Step 8:如果输入缓存一的加载完成状态为高电平,则输入缓存一的读取使能控制信号置为高电平,输入缓存二的读取使能控制信号置为低电平,跳转到Step1,否则,输入缓存一的读取使能控制信号置为低电平,输入缓存二的读取使能控制信号置为低电平,跳转到Step1。
5.根据权利要求3所述的卷积神经网络加速器,其特征在于,当以下条件同时满足时,控制模块将核心计算模块运算使能信号配置为高电平:
条件一:输入缓存一的读取使能控制信号为高电平,或输入缓存二的读取使能控制信号为高电平;
条件二:第一个权重缓存的权重缓存一的读取使能控制信号为高电平,或第一个权重缓存的权重缓存二的读取使能控制信号为高电平;
条件三:第一个输出特征图缓存的输出缓存一的写入使能控制信号为高电平,或第一个输出特征图缓存的输出缓存二的写入使能控制信号为高电平;
条件四:第二个权重缓存的权重缓存一的读取使能控制信号为高电平,或第二个权重缓存的权重缓存二的读取使能控制信号为高电平;
条件五:第二个输出特征图缓存的输出缓存一的写入使能控制信号为高电平,或第二个输出特征图缓存的输出缓存二的写入使能控制信号为高电平;
条件N-1:最后一个权重缓存的权重缓存一的读取使能控制信号为高电平,或最后一个权重缓存的权重缓存二的读取使能控制信号为高电平;
条件N:最后一个输出特征图缓存的输出缓存一的写入使能控制信号为高电平,或最后一个输出特征图缓存的输出缓存二的写入使能控制信号为高电平。
6.根据权利要求2所述的卷积神经网络加速器,其特征在于,输入特征图缓存控制流程如下:
S1:当输入特征图缓存加载使能为高电平,并且输入缓存加载标识为零,并且输入特征图缓存加载次数小于输入特征图缓存的总加载次数,则加载输入特征图缓存,输入缓存加载标识置为1,跳转到S2;否则,跳转到S2;
S2:当输入缓存加载标识为1,跳转到S3,否则,跳转到S1;
S3:如果输入令牌为0且输入缓存一加载完成,则输入缓存加载标识置为0,输入令牌置为1,输入特征图缓存加载次数加一,跳转到S1;否则,跳转到S4;
S4:如果输入令牌为1且输入缓存二加载完成,则输入缓存加载标识置为0,输入令牌置为0,输入特征图缓存加载次数加一,跳转到S1;否则,跳转到S1。
7.根据权利要求2所述的卷积神经网络加速器,其特征在于,权重缓存控制流程如下:
S1:当权重缓存加载使能为高电平,并且权重缓存加载标识为零,并且权重缓存加载次数小于权重缓存的总加载次数,则加载权重缓存一,权重缓存加载标识置为1,跳转到S2;否则,跳转到S2.
S2:当权重缓存加载标识为1,跳转到S3,否则,跳转到S5;
S3:如果权重令牌一为0且权重缓存一的权重缓存A加载完成,则权重缓存加载标识置为2,权重令牌一置为1,加载权重缓存二,跳转到S5;否则,跳转到S4;
S4:如果权重令牌一为1且权重缓存一的权重缓存B加载完成,则权重缓存加载标识置为2,权重令牌一置为0,跳转到S5;否则,跳转到S5;S5:当权重缓存加载标识为2,跳转到S6,否则,跳转到S1;
S5:当权重缓存加载标识为2,跳转到S6,否则,跳转到S1;
S6:如果权重令牌二为0且权重缓存二的权重缓存A加载完成,则权重缓存加载标识置为0,权重令牌二置为1,权重缓存加载次数加一,加载权重缓存二,跳转到S1;否则,跳转到S7;
S7:如果权重令牌二为1且权重缓存二的权重缓存B加载完成,则权重缓存加载标识置为0,权重令牌二置为0,权重缓存加载次数加一,跳转到S1;否则,跳转到S1;
8.根据权利要求2所述的卷积神经网络加速器,其特征在于,输出特征图缓存控制流程包括:
S1:当输出特征图缓存一的写入使能为低电平,并且输出特征图缓存加载标识为零,并且输出特征图缓存加载次数小于输出特征图缓存总加载次数,则加载输出特征图缓存一,输出特征图缓存加载标识置为1,跳转到S2;否则,跳转到S2;
S2:当输出特征图缓存加载标识为1,跳转到S3,否则,跳转到S5;
S3:如果输出令牌一为0且输出特征图缓存一的输出缓存一加载完成,则输出特征图缓存加载标识置为2,输出令牌一置为1,加载输出特征图缓存二,跳转到S5;否则,跳转到S4;
S4:如果输出令牌一为1且输出特征图缓存一的输出缓存二加载完成,则输出特征图缓存加载标识置为2,输出令牌一置为0,跳转到S5;否则,跳转到S5;
S5:当输出特征图缓存加载标识为2,跳转到S6,否则,跳转到S1;
S6:如果输出令牌二为0且输出特征图缓存二的输出缓存A加载完成,则输出特征图缓存加载标识置为0,输出令牌二置为1,输出特征图缓存加载次数加一,加载权重缓存二,跳转到S1;否则,跳转到S7;
S7:如果输出令牌二为1且输出特征图缓存二的输出缓存B加载完成,则输出特征图缓存加载标识置为0,输出令牌二置为0,输出特征图缓存加载次数加一,跳转到S1;否则,跳转到S1。
9.根据权利要求1-8中任一项所述的卷积神经网络加速器,其特征在于,当输入特征图缓存加载次数等于输入特征图缓存总加载次数,并且权重缓存加载次数等于权重缓存总加载次数,并且输出特征图缓存加载次数等于输出特征图缓存总加载次数,则当前卷积神经网络的一个卷积层、激活层和池化层已经运算完成,并且运算结果已经以需要的格式载入到了外部存储器中。
10.据权利要求1-8中任一项所述的卷积神经网络加速器,其特征在于,该神经网络加速器通过FPGA实现。
CN202011090777.3A 2020-10-13 2020-10-13 卷积神经网络加速器 Active CN112232499B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011090777.3A CN112232499B (zh) 2020-10-13 2020-10-13 卷积神经网络加速器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011090777.3A CN112232499B (zh) 2020-10-13 2020-10-13 卷积神经网络加速器

Publications (2)

Publication Number Publication Date
CN112232499A true CN112232499A (zh) 2021-01-15
CN112232499B CN112232499B (zh) 2022-12-23

Family

ID=74113336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011090777.3A Active CN112232499B (zh) 2020-10-13 2020-10-13 卷积神经网络加速器

Country Status (1)

Country Link
CN (1) CN112232499B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112541583A (zh) * 2020-12-16 2021-03-23 华中光电技术研究所(中国船舶重工集团公司第七一七研究所) 一种神经网络加速器
CN117195989A (zh) * 2023-11-06 2023-12-08 深圳市九天睿芯科技有限公司 向量处理器、神经网络加速器、芯片及电子设备
US12020001B2 (en) 2022-09-14 2024-06-25 Moffett International Co., Limited Vector operation acceleration with convolution computation unit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063825A (zh) * 2018-08-01 2018-12-21 清华大学 卷积神经网络加速装置
CN109146067A (zh) * 2018-11-19 2019-01-04 东北大学 一种基于FPGA的Policy卷积神经网络加速器
CN110390384A (zh) * 2019-06-25 2019-10-29 东南大学 一种可配置的通用卷积神经网络加速器
CN111091183A (zh) * 2019-12-17 2020-05-01 深圳鲲云信息科技有限公司 一种神经网络加速系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063825A (zh) * 2018-08-01 2018-12-21 清华大学 卷积神经网络加速装置
CN109146067A (zh) * 2018-11-19 2019-01-04 东北大学 一种基于FPGA的Policy卷积神经网络加速器
CN110390384A (zh) * 2019-06-25 2019-10-29 东南大学 一种可配置的通用卷积神经网络加速器
CN111091183A (zh) * 2019-12-17 2020-05-01 深圳鲲云信息科技有限公司 一种神经网络加速系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙磊等: "改进的基于嵌入式SoC卷积神经网络识别模型", 《计算机应用与软件》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112541583A (zh) * 2020-12-16 2021-03-23 华中光电技术研究所(中国船舶重工集团公司第七一七研究所) 一种神经网络加速器
US12020001B2 (en) 2022-09-14 2024-06-25 Moffett International Co., Limited Vector operation acceleration with convolution computation unit
CN117195989A (zh) * 2023-11-06 2023-12-08 深圳市九天睿芯科技有限公司 向量处理器、神经网络加速器、芯片及电子设备
CN117195989B (zh) * 2023-11-06 2024-06-04 深圳市九天睿芯科技有限公司 向量处理器、神经网络加速器、芯片及电子设备

Also Published As

Publication number Publication date
CN112232499B (zh) 2022-12-23

Similar Documents

Publication Publication Date Title
CN112232499B (zh) 卷积神经网络加速器
CN110070178B (zh) 一种卷积神经网络计算装置及方法
CN106951962B (zh) 用于神经网络的复合运算单元、方法和电子设备
Liang et al. FP-BNN: Binarized neural network on FPGA
KR102292349B1 (ko) 처리 장치 및 처리 방법
CN106991477B (zh) 一种人工神经网络压缩编码装置和方法
Jiao et al. Accelerating low bit-width convolutional neural networks with embedded FPGA
Bao et al. A power-efficient optimizing framework fpga accelerator based on winograd for yolo
JP2018124681A (ja) 演算処理装置、情報処理装置、方法、およびプログラム
WO2022046570A1 (en) Vector processor architectures
JPH05508952A (ja) 算術処理、論理処理及び関連する処理を実行する方法及び数値演算装置
KR102655950B1 (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
JP2019139338A (ja) 情報処理装置、情報処理方法、およびプログラム
CN114626516A (zh) 一种基于对数块浮点量化的神经网络加速系统
Geng et al. CQNN: a CGRA-based QNN framework
Shu et al. High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination
US11551087B2 (en) Information processor, information processing method, and storage medium
Wang et al. Reconfigurable CNN accelerator embedded in instruction extended RISC-V core
CN116795324A (zh) 混合精度浮点乘法装置和混合精度浮点数处理方法
CN112183744A (zh) 一种神经网络剪枝方法及装置
KR20220018199A (ko) 희소성 데이터를 이용하는 연산 장치 및 그것의 동작 방법
US20200192633A1 (en) Arithmetic processing device and method of controlling arithmetic processing device
US20230068941A1 (en) Quantized neural network training and inference
CN113392963B (zh) 基于fpga的cnn硬件加速系统设计方法
CN113222158B (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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 430223 No. 981 Xiongchu Street, Hongshan District, Wuhan City, Hubei Province

Patentee after: Huazhong Optoelectronic Technology Research Institute (717 Research Institute of China Shipbuilding Corp.)

Address before: 430223 No. 981 Xiongchu Street, Hongshan District, Wuhan City, Hubei Province

Patentee before: HUAZHONG PHOTOELECTRIC TECHNOLOGY INSTITUTE (NO 717 Research Institute CSIC)

Address after: 430223 No. 981 Xiongchu Street, Hongshan District, Wuhan City, Hubei Province

Patentee after: HUAZHONG PHOTOELECTRIC TECHNOLOGY INSTITUTE (NO 717 Research Institute CSIC)

Address before: 430223 No. 981 Xiongchu Street, Hongshan District, Wuhan City, Hubei Province

Patentee before: HUAZHONG OPTOELECTRONIC TECHNOLOGY Research Institute (THE 717TH RESEARCH INSTITUTE OF CSIC)

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230718

Address after: 430223 Jiangxia Road 1, Mian Shan development area, Jiangxia District, Wuhan, Hubei

Patentee after: WUHAN HUAZHONG TIANJING TONGSHI TECHNOLOGY CO.,LTD.

Address before: 430223 No. 981 Xiongchu Street, Hongshan District, Wuhan City, Hubei Province

Patentee before: Huazhong Optoelectronic Technology Research Institute (717 Research Institute of China Shipbuilding Corp.)