CN107689948B - 应用于神经网络硬件加速系统的高效数据访存管理装置 - Google Patents

应用于神经网络硬件加速系统的高效数据访存管理装置 Download PDF

Info

Publication number
CN107689948B
CN107689948B CN201611105491.1A CN201611105491A CN107689948B CN 107689948 B CN107689948 B CN 107689948B CN 201611105491 A CN201611105491 A CN 201611105491A CN 107689948 B CN107689948 B CN 107689948B
Authority
CN
China
Prior art keywords
bit width
control circuit
data
memory
vector
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
CN201611105491.1A
Other languages
English (en)
Other versions
CN107689948A (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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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
Priority claimed from US15/242,622 external-priority patent/US10621486B2/en
Priority claimed from US15/242,624 external-priority patent/US20180046903A1/en
Application filed by Xilinx Inc filed Critical Xilinx Inc
Priority to US15/390,573 priority Critical patent/US10936941B2/en
Publication of CN107689948A publication Critical patent/CN107689948A/zh
Application granted granted Critical
Publication of CN107689948B publication Critical patent/CN107689948B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • 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
    • 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/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)
  • Memory System (AREA)
  • Complex Calculations (AREA)

Abstract

一种应用于神经网络硬件加速系统的数据访存管理装置,部署在存储器和计算单元之间传输数据,该装置包括:参数访存控制电路,从存储器中读取计算单元请求的参数,经过转换位宽后,输出至计算单元;向量访存控制电路,从存储器读取计算单元请求的向量,经过位宽转换后,输出至计算单元;计算结果数据控制电路,从计算单元读取计算结果,经过位宽转换后,输出至存储器;控制电路,控制所述参数访存控制电路、向量访存控制电路、计算结果数据控制电路与所述存储器、所述计算单元之间的交互。该装置可以高效地实现神经网络硬件加速系统的数据访存管理。

Description

应用于神经网络硬件加速系统的高效数据访存管理装置
本申请要求于2016年8月22日提交的美国专利申请No.15/242,622、于2016年8月22日提交的美国专利申请No.15/242,624的优先权。其全部内容在此参考并入。
发明领域
本发明装置涉及神经网络硬件加速系统,特别地,该装置应用于神经网络硬件加速系统中可实现高效的访存管理。
背景技术
人工神经网络
人工神经网络(Artificial Neural Networks,ANN)也简称为神经网络(NNs),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。近年来神经网络发展很快,被广泛应用于很多领域,包括图像识别、语音识别,自然语言处理,天气预报,基因表达,内容推送等等。
在近几年里,神经网络的规模不断增长,公开的比较先进的神经网络都有数亿个链接,属于计算和访存密集型应用。现有技术方案中通常是采用通用处理器(CPU)或者图形处理器(GPU)来实现。由于软件指令的顺序执行特性,上述实现方案不能更充分的挖掘网络中的并行潜力,计算速度受到限制;而且CPU和GPU的功耗也很大。
为了缓解(克服)上述困难,基于FPGA或ASIC的神经网络硬件加速系统最近也被提出。随着计算并行度的提升,数据访存的带宽需求越来越大。
图1示出了神经网络硬件加速系统的系统结构。如图1所示,包括:多个硬件计算核、一个数据访存控制装置、一个存储器、一个神经网络控制器。
稀疏神经网络的压缩编码
如前所述,对于稀疏矩阵的处理,为了减少内存,往往需要对矩阵进行压缩存储,比较经典的存储方法包括:行压缩(Compressed Row Storage CRS)和列压缩存储(Compressed Column Storage CCS)。
为了利用激励函数的稀疏性,可以将编码稀疏权重矩阵W存入压缩列存储(CCS)格式的变量中。
对于W矩阵每列Wj,我们存储一个包含非零权重的向量v,以及等长向量z,向量z用于编码v的相应条目之前零的个数,v和z各自由一个四位数值表示。如果超过15个零出现在一个非零的条目,在向量v中添加一个零。例如,以下列被编码为:
[0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3]
v=[1,2,0,3],z=[2,0,15,2]。
所有列的v和z的都存储在一对大阵列中,其中指针向量p指向每个列的向量的开始。p指针向量中的最后一项指向超过最后一个向量元素,这样pj+1-pj给出了第j列中的非零数(包括填补的零)。
通过压缩列存储格式(CCS format)中列存储稀疏矩阵,使得利用激励函数的稀疏性变得容易。只需要用每个非零激励与其相应列中的所有非零元素相乘。
美国专利US Patent 9317482“UNIVERSAL FPGA/ASIC MATRIX-VECTORMULTIPLICATION ARCHITECTURE”中更详细地披露了如何使用Compressed Sparse Row(CSR)在基于CPU和GPU的方案中,其中也采用Compressed Variable Length Bi t Vector(CVBV)format。
CVBV也是一种应用于神经网络的压缩方法。例如,该方法被如下美国专利提出:UNIVERSAL FPGA/ASIC MATRIX-VECTOR MULTIPLICATION ARCHITECTURE专利申请号:US13/651,464公开日:2014年4月17日,申请日:2012年10月14日。
专利摘要:通用单比特流FPGA库或ASIC可以实现矩阵向量乘法的加速,适用于稠密矩阵及多种形式的稀疏矩阵。该发明中,针对硬件优化的稀疏矩阵格式被称为压缩可变长位向量(CVBV,Compressed Variable Length Bit Vector),该格式用来充分利用FPGA的优势,且与通常基于CPU或GPU的行压缩方法相比,该格式能减少矩阵所需存储空间及带宽要求。
该专利也提出了一类稀疏矩阵格式,这类格式与现有的格式比更适合于在FPGA上实现,其能减少存储空间和带宽的需求。该专利描述了分段CVBV格式的,以实现并行解码。
发明人之前的研究成果:采用EIE并行处理压缩神经网络
本发明的发明人之一曾经提出了一种高效的推理引擎(EIE)。详见EIE:EfficientInference Engine on Compressed Deep Neural Network,载于ISCA 2016。为了更好的理解本发明,在此简要介绍EIE的方案。
图2显示了一种高效的推理引擎(EIE),适用于用于机器学习应用的压缩深度神经网络模型,尤其是采用上述CCS或CRS格式存储的压缩DNN。
中央控制单元(CCU)控制PEs的阵列,每个PEs计算压缩网络中的一片(slice)。CCU从分布式前置零检测网络接收非零输入激励,并把它们广播给PEs。
上述方案中,几乎所有EIE中的计算对于PEs是局部的,除了向所有PEs广播的非零输入激励的集合。然而,激励集合和广播的时间并不是关键的,因多数PEs需要多种周期来完成每个输入激励的计算。
激励队列和负载平衡
输入激励向量aj的非零元素和相应的指标索引j被CCU广播到每个PE中的激励队列。如果任何一个PE有一个完整的队列,广播失效。在任何时间,每个PE处理在其队列头部的激励。
激励队列:允许每个PE建立一个工作队列,以消除可能出现的过载不平衡。因为在一个给定列j中的非零的数量可能对于不同PE会有所不同。
指针读取单元:在激励队列头部的条目的索引j被用来查找开始和结束的指针Pj和Pj+1,对应于第j列的v和x阵列。为了允许在一个周期中读取两个指针且使用单口SRAM阵列,在两SRAM内存库中存储指针,使用地址的LSB在内存库之间进行选择。pj,pj+1总会在不同的内存库中。EIE指针的长度是16位。
稀疏矩阵读取单元:稀疏矩阵读取单元使用指针的pj,pj+1从稀疏矩阵SRAM读Ij列的该PE片(slice)的非零元素(如果有的话)。SRAM中的每个条目是8位长度,包含v的4位数据和x的4位数据。
为了效率,编码的稀疏矩阵I的PE的片(slice)被存储在64位宽的SRAM中。因此,每次从SRAM读取8条。当前指针p的高13位用于选择SRAM行,低3位选择该行中的八条之一。单个(v,x)条被提供给每个周期的算术单元。
运算单元:算术单元从稀疏矩阵读取单元接收(v,x)条,执行乘法累加操作bx=bx+v×aj。索引x是用来索引一个累加器阵列(目的地激励寄存器),而v乘以在激励队列头部的激励值。因为v以4位编码形式存储,它首先通过查表(codebook)扩展成16位定点数。如果在两个相邻的周期上选择相同的累加器,则提供旁路通路,将加法器的输出导向其输入。
激励读/写:激励读/写单元包含两个激励寄存器文件,分别容纳一轮FC层计算期间的源激励值和目的地激励值。在下一层,源和目标寄存器文件交换它们的角色。因此,不需要额外的数据传输来支持多层前馈计算。
每个激励寄存器文件拥有64个16位激励。这足以容纳64PEs的4K激励向量。更长的激励向量可容纳在2KB的激励SRAM中。当激励向量大于4K长度时,M×V将分批次(batch)完成,其中每个批次的长度是4K或更少。所有本地减法是在寄存器完成,SRAM只在批次的开始时被读取、在结束时被写入。
分布式前置非零检测:输入激励分层次地分布于各个PE。为了利用输入向量稀疏性,我们使用前置非零检测逻辑来选择第一个正向(positive)的结果。每一组4PEs进行输入激励的局部前置非零检测。结果被发送到前置非零检测节点(lnzd节点)。4个lnzd节点找到下一个非零激励,并发送结果给lnzd节点树。这样的布线不会因为添加PEs而增加。在根lnzd节点,正向激励是通过放置在H树的单独导线被广播给所有PEs。
中央控制单元:中央控制单元(CCU)是根lnzd节点。它与主控器,如CPU通讯,通过设置控制寄存器来监控每个PE的状态。中央单元有两种模式:I/O和计算。
在I/O模式,所有的PEs闲置,每个PE的激励和权重可以通过与中央单元连接的DMA访问。
在计算模式,CCU会持续地从源激励存储库顺序收集和发送数值,直到输入长度溢出。通过设置指针阵列的输入长度和起始地址,EIE将被指示执行不同的层。
EIE等定制神经网络硬件加速系统带来性能提升的同时,也带来了挑战。定制该设计方案在计算单元(PE)数量增加时,位置向量(Pointer Vector)所占用的存储量也会线性增长。如果采用512个PE,EIE的设计就需要512*2=1024存储单元;同时随着PE数量的增加,权值译码模块采用的存储表个数也线性增加,如采用512个PE也需要512个存储表。在定制芯片中上述两个问题随着PE量的增加都是很大的挑战。
本发明提出了一种应用于神经网络硬件加速系统的高效数据访存管理装置,可以更高效的为神经网络计算单元提供所需的各种参数和向量,并保存计算结果。
发明内容
本发明的目的在于提供一种应用于神经网络硬件加速系统的数据访存管理装置,为具有更高计算能力的计算单元更快的提供所需的数据,并保存计算结果。
为了实现发明目的,本发明提出一种应用于神经网络的数据访存管理装置,部署在存储器和计算单元之间传输数据,该装置包括:
参数访存控制电路,从存储器中读取计算单元请求的参数,经过转换位宽后,输出至计算单元;
向量访存控制电路,从存储器读取计算单元请求的向量,经过位宽转换后,输出至计算单元;
计算结果数据控制电路,从计算单元读取计算结果,经过位宽转换后,输出至存储器;
控制电路,控制所述参数访存控制电路、向量访存控制电路、计算结果数据控制电路与所述存储器、所述计算单元之间的交互。
作为对本发明的一种改进,所述参数访存控制电路进一步包括:
一个或多个参数缓存,用于缓存所接收的参数;
一个或多个位宽转换器,用于对所述参数进行位宽转换操作。
作为对本发明的另一种改进,所述参数访存控制电路中的位宽转换器的数量确定方法如下:m为计算单元的数量、n为每个计算单元一次计算需要的输入数据数量,d为计算的延时,则位宽转换器的数量=[m×n÷d],其中“[]”为向上取整运算。
作为对本发明的一种改进,所述向量访存控制电路进一步包括:
一个或多个向量缓存,用于缓存所接收的向量;
一个或多个位宽转换器,用于对所述向量进行位宽转换操作。
作为对本发明的另一种改进,所述向量访存控制电路中的位宽转换器的数量确定方法如下:m为计算单元的数量、n为每个计算单元一次计算需要的输入数据数量,d为计算的延时,则位宽转换器的数量=[m×n÷d],其中“[]”为向上取整运算。
作为对本发明的一种改进,所述计算结果数据控制电路进一步包括:
一个或多个结果数据缓存,用于缓存所接收的结果数据;
一个或多个位宽转换器,用于对所述结果数据进行位宽转换操作。
作为对本发明的另一种改进,所述计算结果控制电路中位宽转换器的数量确定方法如下:m为计算单元的数量、n为每个计算单元一次计算输出结果数据数量,d为计算的延时,则位宽转换器的数量=[m×n÷d],其中“[]”为向上取整运算。
作为对本发明的一种改进,所述位宽转换使用两个级联的512比特转64比特和64比特转16比特的异步FIFO实现。
作为对本发明的一种改进,所述参数至少包括所述神经网络的权重数据、偏置数据、对角阵数据。
附图说明
图1示出了一种神经网络硬件加速系统的系统结构。
图2示出了一种实现压缩神经网络的高效的硬件设计。
图3示出了根据本发明的一种数据访存管理装置的结构。
图4示出了根据本发明的一种参数访存控制电路和向量访存控制电路结构。
图5示出了根据本发明的一种计算结果数据控制电路的结构。
图6示出了根据本发明的一种实施例在基于FPGA开发的神经网络加速系统中部署情况。
图7示出了应用于图6系统中,根据本发明的一种向量访存控制电路的设计。
图8示出了应用于图6系统中,根据本发明的一种计算结果数据控制电路的设计。
具体实施方法
本发明的目的在于提供一种应用于神经网络硬件加速系统的数据访存管理装置,为具有更高计算能力的计算单元更快的提供所需的数据,并保存计算结果。
图3示出了该数据访存管理装置的结构。该装置从存储器中读取参数和向量输出到计算单元(PE),从计算单元(PE)中读取计算结果输出到存储器中。
图3所示的装置包括:输入数据访存管理模块和输出数据数据访存管理模块。所述装置所述输入数据包括参数和向量,所述输出数据是计算结果数据。所述装置位于存储器与计算单元之间。
在神经网络硬件加速系统中,通常存储器的位宽相对较大。例如,现有技术多采用动态随机存储器(DDR),数据读写位宽为512比特。而计算单元对一些数据所要求的位宽会比较小(例如16比特)。所以位宽转换操作的主要任务是将从存储器读取的大位宽数据分割成多个小位宽的数据发送,或是将小位宽的计算结果合并成一个大位宽的数据发送。
根据本发明的另一实施例,一种应用与神经网络硬件加速系统的数据访存管理装置,包括:参数访存控制电路,向量访存控制电路,计算结果访存管理模块以及控制电路。此外,所述控制电路负责控制数据流向,决定输入数据发送的目标计算单元,以及每个计算单元计算结果发送的目标位宽转换器。
图4进一步示出参数访存控制电路和向量访存控制电路。其中,虚线代表控制电路的控制信号,用于控制数据流向。
所述参数访存控制电路从存储器中读取计算单元请求的参数。所述读出的参数的位宽和存储器数据读写位宽一致,需要经过转换位宽后,输出至计算单元。
基于神经网络的类型和计算单元的要求不同,所述参数也可以不同。例如,可以是神经网络的权重数据(weight)、偏置数据(bias)、对角阵数据(diagonal matrix)。如果是压缩的神经网络,参数还包括指针数据(pointer)。
如图4所示,所述参数访存控制电路包括位宽转换器。位宽转换器将读取的参数进行位宽转换,目标位宽与计算单元要求一致。
所述向量访存控制电路从存储器读取计算单元请求的向量,所述向量的位宽和存储器数据读写位宽一致,需要经过位宽转换后,输出至计算单元。
如图4所示,所述向量访存控制电路包括位宽转换器。位宽转换器将读取的向量进行位宽转换,目标位宽与计算单元要求一致。
可选地,所述参数访存控制电路和向量访存控制电路中还包括相应的参数缓存和向量缓存。参数缓存和向量缓存连续性地从存储器读取参数或向量,再输出至位宽转换器中,提高计算结果的读取速度,避免再次产生计算结果时,上一次的结果还没有全部读出,被覆盖丢失。
可选地,位宽转换器的数量可以为多个。每一个位宽转换器负责若干计算单元,以此来进一步提高计算资源的利用率和计算单元的并行能力。位宽转换器的数量可以用如下方法确定:
假设计算单元的数量为m、每个计算单元一次计算需要的输入数据数量为n以及计算的延时(即两次计算之间的时钟数)为d,则位宽转换器的数量≥m×n÷d。
图5示出所述计算结果访存管理模块,包含计算结果数据控制电路。其中,虚线代表控制电路的控制信号,用于控制数据流向。
所述计算结果数据控制电路从计算单元读取计算结果,位宽和计算单元的要求一致,经过位宽转换后,输出至存储器。
所述计算结果数据控制电路包括位宽转换器,位宽转换器将读取的计算结果进行位宽转换,目标位宽与存储器读写位宽一致。
可选地,所述计算结果数据控制电路还包括结果数据缓存。结果数据缓存连续性地从计算单元中读取计算结果,再输出至存储器中,提高存储器利用效率。
可选地,位宽转换器的数量可以为多个。每一个位宽转换器负责若干计算单元,以此来进一步提高计算资源的利用率和计算单元的并行能力。位宽转换器的数量可以用如下方法确定:
假设计算单元的数量为m、每个计算单元一次计算输出的向量数量为n、以及计算的延时(即两次计算之间的时钟数)为d,则位宽转换器的数量≥m×n÷d。
实施例:
图6是符合本发明的一种实施例在基于FPGA开发的神经网络加速系统中部署情况。
图6的系统包含:PCIE总线、两个片外存储器DDR3_1和DDR3_2和两个相应的DDR3_1控制器和DDR3_2控制器、计算单元数据总线。
对于DDR1片外存储器,数据读写位宽为512比特。数据由CPU通过PCIE发送给FPGA,计算结果也通过PCIE返回给FPGA。
加速系统含有32个并行计算单元,需要的向量为16比特位宽,需要的偏置、对角阵数据位宽为16比特,指针和权重数据为512比特。
因此,在这个加速系统中,需要进行位宽转换的数据的是向量、偏置和对角阵数据。
在DDR3_1控制器和DDR3_2控制器中,分别包含:计算结果访存管理模块、输入数据访存管理模块、Buffer_Wr_DDR3、Buffer_Rd_DDR3。
图6所示各个模块之间的数据类型和流向以不同的箭头表示,其中包括:输入向量数据、指针数据、偏置&对角阵数据、权重数据和计算结果数据。
相应地,图6所示的输入数据访存管理模块进一步包括:向量访存控制电路和参数访存控制电路等。
图7进一步例示了图6系统中输入数据访存管理模块中的向量访存控制电路。
图7所示电路中,位宽转换器110、120、130、140负责将一个512比特的数据分割成32个16比特位宽的向量,并发送给计算单元。
具体而言,从图7所示存储器中依次读出线程0,线程1,线程2等所需要的向量,然后采用分布式存储的策略缓存到各个向量缓存150、160、170、180中,分别由对应的位宽转换器110、120、130、140并行处理,并发送给计算单元。
图7中,Xi表示线程i需要的向量。
图7所示的位宽转换器可以使用两个级联的512比特转64比特和64比特转16比特的异步FIFO实现。
图6的参数访存控制电路(未示出)与图7的向量访存控制电路相似。
图8是图6系统中的计算结果数据控制电路。
如图8所示,结果数据缓存250、260、270、280从计算单元中读取结果数据,并将其发送至对应的位宽转换器210、220、230、240,后者负责将计算单元一个线程输出的连续32个计算结果拼接成一个512比特存入存储器中。
图8中,位宽转换器250、260、270、280可以以使用32个16比特的寄存器阵列实现,每输入一个16比特,寄存器地址加1,每完成一次32个16比特的输入,向外输出一个512比特。
技术效果
基于上述技术方案可知,本发明提出的用于神经网络硬件加速系统的高效数据访存管理装置有以下优点:
1)避免数据访问过程成为神经网络计算中的瓶颈。主要通过并行的输入数据处理减少数据的准备时间;
2)避免计算结果较长时间占用计算单元中的片上存储。有益于克服计算暂停或结果丢失等问题,增加系统的稳定性;
多个线程共用一个位宽转换器,在满足计算带宽需求地同时可以减少片上存储资源的使用量,增加资源利用效率。

Claims (9)

1.一种应用于神经网络硬件加速系统的数据访存管理装置,所述数据访存管理装置用于在存储器和计算单元之间传输数据,该装置包括:
参数访存控制电路,从存储器中读取计算单元请求的参数,经过位宽转换后,输出至计算单元,其中,读取的参数的位宽与存储器数据读写位宽一致,位宽转换的目标位宽与计算单元要求一致;
向量访存控制电路,从存储器读取计算单元请求的向量,经过位宽转换后,输出至计算单元,其中,读取的向量的位宽与存储器数据读写位宽一致,位宽转换的目标位宽与计算单元要求一致;
计算结果数据控制电路,从计算单元读取计算结果,经过位宽转换后,输出至存储器,其中,读取的计算结果的位宽与计算单元的要求一致,位宽转换的目标位宽与存储器数据读写位宽一致;
控制电路,控制所述参数访存控制电路、向量访存控制电路、计算结果数据控制电路与所述存储器、所述计算单元之间的交互。
2.根据权利要求1的装置,其中所述参数访存控制电路进一步包括:
一个或多个参数缓存,用于缓存所接收的参数;
一个或多个位宽转换器,用于对所述参数进行位宽转换操作。
3.根据权利要求2的装置,
所述参数访存控制电路中的位宽转换器的数量确定方法如下:m为计算单元的数量、n为每个计算单元一次计算需要的输入数据数量,d为计算的延时,则位宽转换器的数量=[m×n÷d],其中“[]”为向上取整运算。
4.根据权利要求1的装置,其中所述向量访存控制电路进一步包括:
一个或多个向量缓存,用于缓存所接收的向量;
一个或多个位宽转换器,用于对所述向量进行位宽转换操作。
5.根据权利要求4的装置,
所述向量访存控制电路中的位宽转换器的数量确定方法如下:m为计算单元的数量、n为每个计算单元一次计算需要的输入数据数量,d为计算的延时,则位宽转换器的数量=[m×n÷d],其中“[]”为向上取整运算。
6.根据权利要求1的装置,其中所述计算结果数据控制电路进一步包括:
一个或多个结果数据缓存,用于缓存所接收的结果数据;
一个或多个位宽转换器,用于对所述结果数据进行位宽转换操作。
7.根据权利要求6的装置,
所述计算结果控制电路中位宽转换器的数量确定方法如下:m为计算单元的数量、n为每个计算单元一次计算输出结果数据数量,d为计算的延时,则位宽转换器的数量=[m×n÷d],其中“[]”为向上取整运算。
8.根据权利要求1的装置,所述位宽转换使用两个级联的512比特转64比特和64比特转16比特的异步FIFO实现。
9.根据权利要求1的装置,所述参数至少包括所述神经网络的权重数据、偏置数据、对角阵数据。
CN201611105491.1A 2016-08-12 2016-12-05 应用于神经网络硬件加速系统的高效数据访存管理装置 Active CN107689948B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/390,573 US10936941B2 (en) 2016-08-12 2016-12-26 Efficient data access control device for neural network hardware acceleration system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/242,624 2016-08-22
US15/242,622 2016-08-22
US15/242,622 US10621486B2 (en) 2016-08-12 2016-08-22 Method for optimizing an artificial neural network (ANN)
US15/242,624 US20180046903A1 (en) 2016-08-12 2016-08-22 Deep processing unit (dpu) for implementing an artificial neural network (ann)

Publications (2)

Publication Number Publication Date
CN107689948A CN107689948A (zh) 2018-02-13
CN107689948B true CN107689948B (zh) 2020-09-01

Family

ID=59983010

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201611105480.3A Active CN107679617B (zh) 2016-08-12 2016-12-05 多次迭代的深度神经网络压缩方法
CN201611105081.7A Active CN107239825B (zh) 2016-08-12 2016-12-05 考虑负载均衡的深度神经网络压缩方法
CN201611104482.0A Active CN107689224B (zh) 2016-08-12 2016-12-05 合理使用掩码的深度神经网络压缩方法
CN201611105491.1A Active CN107689948B (zh) 2016-08-12 2016-12-05 应用于神经网络硬件加速系统的高效数据访存管理装置

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN201611105480.3A Active CN107679617B (zh) 2016-08-12 2016-12-05 多次迭代的深度神经网络压缩方法
CN201611105081.7A Active CN107239825B (zh) 2016-08-12 2016-12-05 考虑负载均衡的深度神经网络压缩方法
CN201611104482.0A Active CN107689224B (zh) 2016-08-12 2016-12-05 合理使用掩码的深度神经网络压缩方法

Country Status (1)

Country Link
CN (4) CN107679617B (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017218889A1 (de) * 2017-10-23 2019-04-25 Robert Bosch Gmbh Unscharf parametriertes KI-Modul sowie Verfahren zum Betreiben
US11651223B2 (en) 2017-10-27 2023-05-16 Baidu Usa Llc Systems and methods for block-sparse recurrent neural networks
CN107977704B (zh) 2017-11-10 2020-07-31 中国科学院计算技术研究所 权重数据存储方法和基于该方法的神经网络处理器
CN107832835A (zh) * 2017-11-14 2018-03-23 贵阳海信网络科技有限公司 一种卷积神经网络的轻量化方法及装置
CN107832439B (zh) * 2017-11-16 2019-03-08 百度在线网络技术(北京)有限公司 多轮状态追踪的方法、系统及终端设备
CN109902817B (zh) * 2017-12-11 2021-02-09 安徽寒武纪信息科技有限公司 板卡和神经网络运算方法
CN108170529A (zh) * 2017-12-26 2018-06-15 北京工业大学 一种基于长短期记忆网络的云数据中心负载预测方法
CN108038546B (zh) 2017-12-29 2021-02-09 百度在线网络技术(北京)有限公司 用于压缩神经网络的方法和装置
WO2019127362A1 (zh) * 2017-12-29 2019-07-04 清华大学 神经网络模型分块压缩方法、训练方法、计算装置及系统
CN109993292B (zh) 2017-12-30 2020-08-04 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993291B (zh) * 2017-12-30 2020-07-07 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN113807510B (zh) * 2017-12-30 2024-05-10 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
WO2019129302A1 (zh) 2017-12-30 2019-07-04 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109993290B (zh) * 2017-12-30 2021-08-06 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN108280514B (zh) * 2018-01-05 2020-10-16 中国科学技术大学 基于fpga的稀疏神经网络加速系统和设计方法
CN110084364B (zh) * 2018-01-25 2021-08-27 赛灵思电子科技(北京)有限公司 一种深度神经网络压缩方法和装置
CN110110853B (zh) * 2018-02-01 2021-07-30 赛灵思电子科技(北京)有限公司 一种深度神经网络压缩方法、装置及计算机可读介质
EP3750113A1 (en) * 2018-02-09 2020-12-16 DeepMind Technologies Limited Contiguous sparsity pattern neural networks
CN110197262B (zh) * 2018-02-24 2021-07-30 赛灵思电子科技(北京)有限公司 用于lstm网络的硬件加速器
CN108540338B (zh) * 2018-03-08 2021-08-31 西安电子科技大学 基于深度循环神经网络的应用层通信协议识别的方法
CN108510063B (zh) * 2018-04-08 2020-03-20 清华大学 一种应用于卷积神经网络的加速方法和加速器
WO2019219846A1 (en) * 2018-05-17 2019-11-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Concepts for distributed learning of neural networks and/or transmission of parameterization updates therefor
CN108962237B (zh) * 2018-05-24 2020-12-04 腾讯科技(深圳)有限公司 混合语音识别方法、装置及计算机可读存储介质
CN108665067B (zh) * 2018-05-29 2020-05-29 北京大学 用于深度神经网络频繁传输的压缩方法及系统
US10832139B2 (en) * 2018-06-22 2020-11-10 Moffett Technologies Co. Limited Neural network acceleration and embedding compression systems and methods with activation sparsification
CN109102064B (zh) * 2018-06-26 2020-11-13 杭州雄迈集成电路技术股份有限公司 一种高精度的神经网络量化压缩方法
CN110659731B (zh) * 2018-06-30 2022-05-17 华为技术有限公司 一种神经网络训练方法及装置
CN109063835B (zh) * 2018-07-11 2021-07-09 中国科学技术大学 神经网络的压缩装置及方法
WO2020029018A1 (zh) * 2018-08-06 2020-02-13 华为技术有限公司 矩阵的处理方法、装置及逻辑电路
CN110874550A (zh) * 2018-08-31 2020-03-10 华为技术有限公司 数据处理方法、装置、设备和系统
WO2020062312A1 (zh) * 2018-09-30 2020-04-02 华为技术有限公司 信号处理装置和信号处理方法
CN109104197B (zh) * 2018-11-12 2022-02-11 合肥工业大学 应用于卷积神经网络的非还原稀疏数据的编译码电路及其编译码方法
CN111382852B (zh) * 2018-12-28 2022-12-09 上海寒武纪信息科技有限公司 数据处理装置、方法、芯片及电子设备
CN111291871A (zh) * 2018-12-10 2020-06-16 中科寒武纪科技股份有限公司 一种计算装置及相关产品
CN111353591A (zh) * 2018-12-20 2020-06-30 中科寒武纪科技股份有限公司 一种计算装置及相关产品
CN113168554B (zh) * 2018-12-29 2023-11-28 华为技术有限公司 一种神经网络压缩方法及装置
CN109800869B (zh) * 2018-12-29 2021-03-05 深圳云天励飞技术有限公司 数据压缩方法及相关装置
CN111383157B (zh) * 2018-12-29 2023-04-14 北京市商汤科技开发有限公司 图像处理方法、装置、车载运算平台、电子设备及系统
CN109784490B (zh) 2019-02-02 2020-07-03 北京地平线机器人技术研发有限公司 神经网络的训练方法、装置和电子设备
CN111626305B (zh) * 2019-02-28 2023-04-18 阿里巴巴集团控股有限公司 目标检测方法、装置和设备
CN109938696A (zh) * 2019-03-22 2019-06-28 江南大学 神经电信号压缩感知处理方法及电路
CN109978144B (zh) * 2019-03-29 2021-04-13 联想(北京)有限公司 一种模型压缩方法和系统
CN110399972B (zh) * 2019-07-22 2021-05-25 上海商汤智能科技有限公司 数据处理方法、装置及电子设备
CN110704024B (zh) * 2019-09-28 2022-03-08 中昊芯英(杭州)科技有限公司 一种矩阵处理装置、方法及处理设备
CN110705996B (zh) * 2019-10-17 2022-10-11 支付宝(杭州)信息技术有限公司 基于特征掩码的用户行为识别方法、系统、及装置
CN112699990A (zh) * 2019-10-22 2021-04-23 杭州海康威视数字技术股份有限公司 神经网络模型训练方法、装置及电子设备
CN111126600A (zh) * 2019-12-20 2020-05-08 上海寒武纪信息科技有限公司 神经网络模型的训练方法、数据处理方法和相关产品
CN111078840B (zh) * 2019-12-20 2022-04-08 浙江大学 一种基于文档向量的电影评论情感分析方法
US20210209462A1 (en) * 2020-01-07 2021-07-08 Alibaba Group Holding Limited Method and system for processing a neural network
KR20210106131A (ko) 2020-02-20 2021-08-30 삼성전자주식회사 전자 장치 및 그의 제어 방법
CN115280272A (zh) * 2020-04-03 2022-11-01 北京希姆计算科技有限公司 数据存取电路和方法
KR20210126398A (ko) * 2020-04-10 2021-10-20 에스케이하이닉스 주식회사 시스톨릭 어레이를 갖는 신경망 연산 장치
CN111711511B (zh) * 2020-06-16 2021-07-13 电子科技大学 频域数据有损压缩方法
CN111553471A (zh) * 2020-07-13 2020-08-18 北京欣奕华数字科技有限公司 一种数据分析处理方法及装置
CN112132062B (zh) * 2020-09-25 2021-06-29 中南大学 一种基于剪枝压缩神经网络的遥感图像分类方法
CN112286447A (zh) * 2020-10-14 2021-01-29 天津津航计算技术研究所 一种新型软件硬件协同raid改进系统
CN112230851A (zh) * 2020-10-14 2021-01-15 天津津航计算技术研究所 一种新型软件硬件协同raid改进方法
CN112270352A (zh) * 2020-10-26 2021-01-26 中山大学 一种基于并行剪枝优化的决策树生成方法及装置
CN112396178A (zh) * 2020-11-12 2021-02-23 江苏禹空间科技有限公司 一种提高cnn网络压缩效率的方法
CN112465035A (zh) * 2020-11-30 2021-03-09 上海寻梦信息技术有限公司 物流配送任务分配方法、系统、设备及存储介质
US20240037378A1 (en) * 2020-12-24 2024-02-01 Intel Corporation Accelerated scale-out performance of deep learning training workload with embedding tables
CN112883982B (zh) * 2021-01-08 2023-04-18 西北工业大学 一种面向神经网络稀疏特征的数据去零编码及封装方法
US20220343145A1 (en) * 2021-04-21 2022-10-27 Alibaba Singapore Holding Private Limited Method and system for graph neural network acceleration
CN113794709B (zh) * 2021-09-07 2022-06-24 北京理工大学 一种用于二值稀疏矩阵的混合编码方法
CN113947185B (zh) * 2021-09-30 2022-11-18 北京达佳互联信息技术有限公司 任务处理网络生成、任务处理方法、装置、电子设备及存储介质
CN116187408B (zh) * 2023-04-23 2023-07-21 成都甄识科技有限公司 稀疏加速单元、计算方法及稀疏神经网络硬件加速系统
CN117170588B (zh) * 2023-11-01 2024-01-26 北京壁仞科技开发有限公司 用于对张量数据的布局进行转换的方法、设备和介质
CN117634711B (zh) * 2024-01-25 2024-05-14 北京壁仞科技开发有限公司 张量维度切分方法、系统、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129397A (zh) * 2010-12-29 2011-07-20 深圳市永达电子股份有限公司 一种自适应磁盘阵列故障预测方法及系统
CN104915322A (zh) * 2015-06-09 2015-09-16 中国人民解放军国防科学技术大学 一种卷积神经网络硬件加速方法及其axi总线ip核

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997044743A1 (de) * 1996-05-23 1997-11-27 Siemens Aktiengesellschaft Verfahren zur optimierung eines fuzzy-regelsatzes durch einen rechner
US9053430B2 (en) * 2012-11-19 2015-06-09 Qualcomm Incorporated Method and apparatus for inferring logical dependencies between random processes
US9367519B2 (en) * 2013-08-30 2016-06-14 Microsoft Technology Licensing, Llc Sparse matrix data structure
US9400955B2 (en) * 2013-12-13 2016-07-26 Amazon Technologies, Inc. Reducing dynamic range of low-rank decomposition matrices
US20150206050A1 (en) * 2014-01-23 2015-07-23 Qualcomm Incorporated Configuring neural network for low spiking rate
US9324321B2 (en) * 2014-03-07 2016-04-26 Microsoft Technology Licensing, Llc Low-footprint adaptation and personalization for a deep neural network
US9202178B2 (en) * 2014-03-11 2015-12-01 Sas Institute Inc. Computerized cluster analysis framework for decorrelated cluster identification in datasets
US10242313B2 (en) * 2014-07-18 2019-03-26 James LaRue Joint proximity association template for neural networks
CN104217433B (zh) * 2014-08-29 2017-06-06 华为技术有限公司 一种分析图像的方法及装置
CN105184362B (zh) * 2015-08-21 2018-02-02 中国科学院自动化研究所 基于参数量化的深度卷积神经网络的加速与压缩方法
CN105184369A (zh) * 2015-09-08 2015-12-23 杭州朗和科技有限公司 用于深度学习模型的矩阵压缩方法和装置
CN105260794A (zh) * 2015-10-12 2016-01-20 上海交通大学 一种云数据中心的负载预测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129397A (zh) * 2010-12-29 2011-07-20 深圳市永达电子股份有限公司 一种自适应磁盘阵列故障预测方法及系统
CN104915322A (zh) * 2015-06-09 2015-09-16 中国人民解放军国防科学技术大学 一种卷积神经网络硬件加速方法及其axi总线ip核

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Going Deeper with Embedded FPGA Platform for Convolutional Neural Network",;Jiantao Qiu et al.,;《FPGA’16 Proceedings of the 2016 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays》;20160229;30-32页,图4 *

Also Published As

Publication number Publication date
CN107689224A (zh) 2018-02-13
CN107679617B (zh) 2021-04-09
CN107689948A (zh) 2018-02-13
CN107239825B (zh) 2021-04-09
CN107239825A (zh) 2017-10-10
CN107689224B (zh) 2020-09-01
CN107679617A (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
CN107689948B (zh) 应用于神经网络硬件加速系统的高效数据访存管理装置
US10936941B2 (en) Efficient data access control device for neural network hardware acceleration system
US10698657B2 (en) Hardware accelerator for compressed RNN on FPGA
CN107704916B (zh) 一种基于fpga实现rnn神经网络的硬件加速器及方法
US10810484B2 (en) Hardware accelerator for compressed GRU on FPGA
US11740898B2 (en) Computing device and method
CN107229967B (zh) 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法
US11106598B2 (en) Computing device and method
US11630666B2 (en) Computing device and method
US20180046895A1 (en) Device and method for implementing a sparse neural network
US20160335119A1 (en) Batch-based neural network system
US11609760B2 (en) Computing device and method
CN110059797B (zh) 一种计算装置及相关产品
CN110413561B (zh) 数据加速处理系统
CN111930681A (zh) 一种计算装置及相关产品
CN110766136B (zh) 一种稀疏矩阵与向量的压缩方法
CN115860080B (zh) 计算核、加速器、计算方法、装置、设备、介质及系统
CN112906877A (zh) 用于执行神经网络模型的存储器架构中的数据布局有意识处理
CN115081600A (zh) 执行Winograd卷积的变换单元、集成电路装置及板卡
CN110929854A (zh) 一种数据处理方法、装置及硬件加速器
CN220983883U (zh) 矩阵计算装置、小芯片设备及人工智能加速器装置
CN111291871A (zh) 一种计算装置及相关产品
JPWO2020049637A1 (ja) 学習装置

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
TA01 Transfer of patent application right

Effective date of registration: 20180601

Address after: 100083, 17 floor, 4 Building 4, 1 Wang Zhuang Road, Haidian District, Beijing.

Applicant after: Beijing deep Intelligent Technology Co., Ltd.

Address before: 100083, 8 floor, 4 Building 4, 1 Wang Zhuang Road, Haidian District, Beijing.

Applicant before: Beijing insight Technology Co., Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190929

Address after: 2100 San Jose Rojack Avenue, California, USA

Applicant after: XILINX INC

Address before: 100083, 17 floor, 4 Building 4, 1 Wang Zhuang Road, Haidian District, Beijing.

Applicant before: Beijing Shenjian Intelligent Technology Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant