CN113095476A - 一种用于通用张量计算的硬件加速装置及方法 - Google Patents

一种用于通用张量计算的硬件加速装置及方法 Download PDF

Info

Publication number
CN113095476A
CN113095476A CN202110256529.XA CN202110256529A CN113095476A CN 113095476 A CN113095476 A CN 113095476A CN 202110256529 A CN202110256529 A CN 202110256529A CN 113095476 A CN113095476 A CN 113095476A
Authority
CN
China
Prior art keywords
data
hardware
parallel
calculation
tensor
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.)
Pending
Application number
CN202110256529.XA
Other languages
English (en)
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.)
Suzhou Xinqi Microelectronics Technology Co ltd
Original Assignee
Suzhou Xinqi Microelectronics Technology Co ltd
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 Suzhou Xinqi Microelectronics Technology Co ltd filed Critical Suzhou Xinqi Microelectronics Technology Co ltd
Priority to CN202110256529.XA priority Critical patent/CN113095476A/zh
Publication of CN113095476A publication Critical patent/CN113095476A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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

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

本发明实现了一种用于通用张量计算的硬件加速装置及方法。其装置包括:数据载入DMA装置,对一定范围和形式的输入数据进行提取、排布;数据输出DMA装置,对并行执行阵列的输出数据进行提取、排布、控制存回;处理特定矩阵计算的并行计算执行单元阵列;其他向量或/和标量并行执行单元,可加速各种通用计算步骤;中央控制装置,通过可编程、可扩展的指令,控制、调度上述各个硬件;上述5个子装置中均设置有定制的存储缓冲区域,对张量数据处理的膨胀特点,利用空间和时间相关性原理,实现吸收效果。本发明在对特定领域的通用算子的硬件化的基础上优化了并行计算单元的计算机制,形成一套以数据调度为中心的计算机制。

Description

一种用于通用张量计算的硬件加速装置及方法
技术领域
本发明属于计算机硬件、人工神经网络算法部署硬件加速的领域,具体涉及一种芯片上用于通用张量计算的加速器的硬件并行运算装置及方法。
背景技术
深度卷积神经网络是人工神经网络的一种,属于机器学习算法模型,由多层具体的神经元算法层、隐藏层组成。它可以根据一组数据张量输入,例如图像构成的张量,产生一组数据向量输出,例如分类结果的标志或标签与坐标等信息。它的每一层都对输入数据进行特征抽取、激活、采样等运算,输出给下一层的输入。每一层的构成包括算子、算法结构和计算参数,比如卷积核或计算权重参数,它们是在一套神经网络算法创建后,在针对一组数据做训练的过程中选择、提取得到的。在面对同类数据、专门领域的应用场景中,将上述算子、算法结构和计算参数部署在特定的加速芯片中,就能发挥训练所指向的功能结果,例如输出物体分类结果或所要识别物体的相关信息。
近年来,深度卷积神经网络在多个应用领域越来越得到深入研究并被广泛接受。它大部分都由卷积计算层构成,还包括一些其他算法层。在终端部署人工智能算法已经成为广泛需求,但芯片的性能、成本等因素已成为了需求的瓶颈要素。专利文件1(公开号CN105488565A)公开了一种加速深度神经网络算法的加速芯片的运算装置及方法,通过全面将算子硬件化、指令化,形成一套AI指令集及其加速处理器。但由于该装置及方法考虑过多计算任务的融合与编程的灵活性,数据处理的颗粒度较小,还需要与其他高性能的数据排布装置配合方能发挥功效,带来其装置芯片化、产品化的总体成本高。
当前在机器学习算法领域的研究表明,理论算法要与特定领域、产业场景结合,且此前单一的算法之间要进行再联接和在线配合部署,经过多种算法处理的结果才能在实际中应用。因此,既要考虑大量计算数据的存储成本,同时还要在多种人工神经算法之间能够快速切换配置,针对领域、产业场景可配置可裁剪的设计装置,才符合终端人工智能神经网络部署的设计理念。
发明内容
本发明的目的在于,提供一种用于通用张量计算的硬件并行加速器的硬件装置及方法,能够以低成本、低功耗的芯片工艺节点和较低的主存储成本提供合理的算力,令多个深度卷积神经网络同时能够部署并切换工作,在特定实时要求时间内完成共同的判断、分类或检测功能。
本发明的深度卷积神经网络硬件并行加速器的硬件装置,包括:
并行计算执行单元阵列,例如以执行矩阵或/和向量数据的乘法、加减法的并行运算为主,由一个个乘、加减以及其他基础算子构成的单个神经元硬件模块组成;
数据载入装置,对上述深度卷积神经网络算法所需要的大量数据进行提取、排布及输入,以及相关的控制;
数据输出装置,对计算执行单元阵列的输出结果进行提取、排布及存回,以及相关的控制;
向量或/和标量其他特殊计算执行单元及其存取数据装置,对深度卷积神经网络算法中的其他关键算子进行加速执行;
中央控制装置,通过可编程指令完成对上述4个子装置的总体控制、调度;
所述5个子装置中均设置有中间存储及缓冲区域,对主存储器进行读取与写入,对指令以及中间数据进行缓存,同时也能彼此随机访问。
本发明的用于通用张量计算的硬件并行加速器的硬件装置,具有可配置特征,包括以下特点:
能够通过软件编程来动态配置并行计算算子的数据调度办法,包括输入数据的部分行驻留、代表神经元突触的权重数据驻留以及临时输出数据驻留;
能够通过软件编程来动态配置并行计算的输入和输出数据排布方式,数据格式;
能够通过软件编程来动态配置并行计算执行单元的并行效率、并行工作的方式,例如对多种卷积核尺寸、运算间隔数据距离的差别,配合上述调度办法与排布方式进行配置。
本发明的用于通用张量计算的硬件并行加速器的硬件装置进行运算的方法,其设计原则在于:
对于深度卷积神经网络算法中的矩阵算子例如卷积、池化、全连接和其他算法可以转化为矩阵运算的某些步骤,是通过并行乘、加计算执行单元阵列加速执行;
对于上述算法中的非矩阵算子,若无法转化为矩阵运算,则是通过向量或/和标量其他特殊计算执行单元及其存取数据装置来加速执行;
两种计算执行单元,和主存储器之间,是通过各自特定设计的存取数据装置完成数据的随机访问。
本发明的用于通用张量计算的硬件并行加速器的硬件装置进行矩阵运算的实现方法,其特征在于,并行乘、加计算执行单元阵列与数据载入装置中的本地缓存寄存器不是全地址连接、可访问全部缓存空间的,而是结合权利要求3所述的软件可配置的工作方式,设计实现为缓存地址区域局部可访问。
本发明的用于通用张量计算的硬件并行加速器的硬件装置及其数据调度方法,其特征在于:
数据输入输出装置具有片上模块内专用缓存,并可以与其他计算执行单元的相关缓存进行随机访问;
具有一定规模的主存储器将作为主要的性能缓冲器和计算中间结果暂存的空间;
中央控制装置包括一个通用中央处理器和一套可扩展的高性能配置装置,在不同神经网络的算法层、数据宏块层进行调度,对上述子装置进行快速配置。
本发明的效果在于:
1、简化了硬件并行计算单元阵列与输入装置之间的连接复杂度
2、简化了输出装置与主存储之间排布数据的空间复杂度
3、简化了软件排布数据、划分数据宏块的地址计算复杂度
4、提高了硬件并行计算单元阵列的实际应用效率
5、更适合在低成本嵌入式ASIC芯片上实现
附图说明
图1为本发明用于通用张量计算的硬件并行加速器的硬件装置各构成模块与相互关系图;
图2为面向卷积计算的硬件基本算子执行单元结构图;
图3为硬件算子执行单元阵列与输出寄存阵列结构关系图;
图4为硬件算子执行单元阵列与权重输入单元结构关系图;
图5为硬件算子执行单元阵列与输入寄存阵列结构关系图;
图6为本发明深度卷积神经网络硬件并行加速器的硬件装置在加速张量卷积运算的数据流图;
图7为中央控制装置结构并与其他子装置的关系图;
图8为特殊向量或标量算子硬件加速执行单元结构图;
图9为本发明进行卷积层计算的方法示意图;
图10为本发明进行卷积层计算的步骤流程图。
附图标记说明
1 并行硬件计算单元阵列
101 卷积计算单元
12 并行输出寄存阵列
121 输出寄存器组
2 输入数据DMA装置
201 输入数据缓存
202 并行输入寄存阵列
205 输入权重缓存
3 输出数据DMA装置
301 输出数据缓存
4 中央控制装置
401 中央控制单元的数据和指令缓存
5 数据总线
6 主存储控制器及主存储器
7 控制总线装置
8 向量/标量特殊计算硬件加速单元
800 向量/标量特殊计算硬件加速单元中的缓存
801 特殊计算硬件算子
802 输入DMA
803 输出DMA
804 向量/标量特殊计算硬件加速控制器
909 输入张量数据
具体实施方式
下面结合附图对本发明的用于通用张量计算的硬件并行加速器的硬件装置及方法做进一步的详细说明。
图1为本发明用于通用张量计算的硬件并行加速器的硬件装置各构成模块与相互关系图,该装置包括并行硬件矩阵计算单元阵列1,输入数据装置2,输出数据装置3,中央控制装置4,专用大吞吐率高性能数据总线5,主存储6,高性能控制总线装置7和向量/标量特殊计算硬件加速单元8。
在数据装置2、3、中央控制装置4、计算加速装置8中都具有该子装置中的本地高速存储区,如201、301、401、800,作为数据或指令缓存,中间值存储区、区域数据共享区以及数据融合区等。降低对主存储器的操作次数和提升操作效率。
装置1包括由特定设计数量的硬件基本算子执行单元101组成的并行加速计算阵列,每个基本算子执行单元101中包含多个基本算子,例如卷积计算所需要的乘、加减,乃至池化(pooling)操作所需要的其他算子或设计。图2为基本算子执行单元的结构图,它有两个主要输入和一个辅助输入,分别对应待卷积数据、卷积核以及待累加的局部计算结果;它由一个主要输出,将从寄存器组121中选择当前特定的最终结果输出。101是固定连接一套寄存器组121,其中包含多个寄存器可以存储对应执行单元的多个结果,如图2所示。本发明将介绍卷积神经网络部署计算的加速方法(图9),在其中会具体说明121中多个寄存器与特定101的对应原理、使用方法。由同样特定设计数量的121单元构成了并行输出阵列12。
本发明化简了阵列1与阵列12的连接结构,如图2所示,101与121之间是对应固定连接的。假设阵列1当中单元101的数目为P,则对应的输出寄存器组也为P。
本发明化简了阵列1与权重参数缓存205之间的连接结构,如图4所示,排布好的权重参数输入到权重缓存中,它是一个类堆栈的存储结构,能够按照一定的工作顺序跟随工作时钟的每一拍都输出权重,并且所输出的权重能够广播到阵列1中所有的单元101的一个主输入。根据前述假设,所需要的权重输入为1到P的广播。
根据前述假设,设卷积核为K*K尺寸,而计算操作次数单位为op(options)则本发明的运算装置所具有的理论最大算力为(K^2+K^2-1)*P/(K^2+1) = (2 – 3/(K^2+1))*P,本发明发挥单个执行单元算力接近2(在一般人工神经网络算法应用中>=1.94),因此并行执行单元阵列的有效算力至少为1.94P。本发明提供的人工神经网络加速器并行执行加速单元数目的计算方法为,依据特定领域的目标算法和常用网络的计算需求,结合行业应用的实时需求,以及上述该发明装置的理论算力区间,评估选出参数P,并向上取整P的平方根R,得到R*R的方形阵列1。
本发明在数据从输入缓存201到阵列1之间设计了并行输入寄存阵列202,基于移位寄存原理,以特定的顺序扫描所有数据,经过降维的输出数据被不断输入到下一级并行计算单元中。并行输入寄存阵列202的移位寄存工作模式可经过指令控制从而具有可处理不同K的数据的能力。
本发明可通过叠加多套所述硬件装置,并行实现性能的成倍提升,只受到存储瓶颈限制着实际性能提升的程度。越高的计算性能意味着越大的数据吞吐需求,也带来存储成本的上升。
本发明可用于众多通用或专用的计算系统环境或配置中,例如:人工智能神经网络加速芯片、异构处理器系统、微处理器系统、服务器系统、手持或便携设备、消费电子设备、工控设备、平板或个人计算机、包括以上系统或设备的分布式计算平台、数据中心等等。
本发明可以在由中央控制器执行的一般或/和扩展指令的一般上下文中描述,例如软件程序。软件程序一般包括执行特定任务或实现特定数据类型的例程、对象、组件、数据结构及参考模型等等。
以上所述介绍了用于通用张量计算的硬件并行加速器的硬件装置及方法,所应理解的是,以上所述用于理解本发明的方法及核心思想,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一套用于通用张量计算的硬件处理装置,其特征在于,包括:
端到端的连接总线;
数据载入DMA装置,对数据进行提取、重排布;
并行计算执行单元构成阵列,可执行矩阵或/和向量数据运算;
数据输出DMA装置,对计算执行单元阵列的输出结果进行提取、重排布及存回;
向量或/和标量计算执行单元及其存取数据装置,对张量计算所需要的其他关键算子进行加速执行;
中央控制装置,运行可编程指令,对上述4个子装置控制、调度;
所述5个子装置中均设置有存储及缓冲区域,都可以对主存储器进行读取与写入,对指令以及中间数据进行缓存,同时也能彼此随机访问。
2.根据权利要求1所述的用于通用张量计算的硬件并行加速器的硬件装置,其特征在于,对于深度卷积神经网络算法中的关键算子例如卷积、池化(pooling)、激活等等,以及关键的张量切分、融合、转置等操作,拆分为硬件算子和数据算子,对算子的控制设计为指令,形成层级、宏块的运算和数据定义,进行指令化封装设计。
3.根据权利要求1-2所述的用于通用张量计算的硬件并行加速器的硬件装置,其特征包括:
能够通过软件编程来动态配置并行计算算子的数据调度办法,包括输入数据的部分行驻留、代表神经元突触的权重数据驻留以及临时输出数据驻留;
能够通过软件编程来动态配置并行计算的输入和输出数据排布方式,数据格式;
能够通过软件编程来动态配置并行计算执行单元的并行效率、并行工作的方式,例如对多种卷积核尺寸、运算间隔数据距离的差别,配合上述调度办法与排布方式进行配置。
4.根据权利要求1-3所述的处理器硬件设计方法,其特征在于:
依据特定领域、产业场景的常用神经网络算法的计算需求,根据本发明的硬件装置可达到的理论算力区间,换算硬件并行执行单元的数目;
根据算力和算法特点,向输入、输出方向进行一定方法的推算,得到其他阵列的规模和数据吞吐性能需求,并进一步推算得到缓存的规模,完成该装置的原型定型。
5.根据权利要求1-3所述的处理器硬件进行运算的方法,其特征在于:
对于深度卷积神经网络算法中的矩阵算子例如卷积、池化、全连接和其他算法可以转化为矩阵运算的某些步骤,是通过并行乘、加计算执行单元阵列加速执行;
对于上述算法中的非矩阵算子,若无法转化为矩阵运算,则是通过向量或/和标量其他特殊计算执行单元及其存取数据装置来加速执行;
两种计算执行单元,和主存储器之间,是通过各自特定设计的存取数据装置完成数据的随机访问。
6.根据权利要求5所述的硬件装置进行矩阵运算的实现方法,其特征在于,并行乘、加计算执行单元阵列与数据载入装置中的本地缓存寄存器不是全地址连接、可访问全部缓存空间的,而是结合权利要求3所述的软件可配置的工作方式,设计实现为缓存地址区域局部可访问。
7.根据权利要求1所述的硬件装置及其数据调度方法,其特征在于:
数据输入输出装置具有片上模块内专用缓存,并可以与其他计算执行单元的相关缓存进行随机访问;
具有一定规模的主存储器将作为主要的性能缓冲器和计算中间结果暂存的空间;
中央控制装置包括一个通用中央处理器和一套可扩展的高性能配置装置,在不同神经网络的算法层、数据宏块层进行调度,对上述子装置进行快速配置。
CN202110256529.XA 2021-03-09 2021-03-09 一种用于通用张量计算的硬件加速装置及方法 Pending CN113095476A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110256529.XA CN113095476A (zh) 2021-03-09 2021-03-09 一种用于通用张量计算的硬件加速装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110256529.XA CN113095476A (zh) 2021-03-09 2021-03-09 一种用于通用张量计算的硬件加速装置及方法

Publications (1)

Publication Number Publication Date
CN113095476A true CN113095476A (zh) 2021-07-09

Family

ID=76667829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110256529.XA Pending CN113095476A (zh) 2021-03-09 2021-03-09 一种用于通用张量计算的硬件加速装置及方法

Country Status (1)

Country Link
CN (1) CN113095476A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023000136A1 (zh) * 2021-07-19 2023-01-26 华为技术有限公司 数据格式转换装置及方法
WO2024131170A1 (zh) * 2022-12-24 2024-06-27 华为技术有限公司 算子的处理方法、装置、芯片、计算设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023000136A1 (zh) * 2021-07-19 2023-01-26 华为技术有限公司 数据格式转换装置及方法
WO2024131170A1 (zh) * 2022-12-24 2024-06-27 华为技术有限公司 算子的处理方法、装置、芯片、计算设备及存储介质

Similar Documents

Publication Publication Date Title
CN110083390B (zh) 一种gemv运算运算方法及装置
CN111783966A (zh) 一种深度卷积神经网络硬件并行加速器的硬件装置及方法
CN111897579B (zh) 图像数据处理方法、装置、计算机设备和存储介质
CN107301456B (zh) 基于向量处理器的深度神经网络多核加速实现方法
EP3298486B1 (en) General-purpose parallel computing architecture
JáJá Parallel algorithms
CN108170640B (zh) 神经网络运算装置及应用其进行运算的方法
EP3975056A1 (en) Neural network weight distribution using a tree direct-memory access (dma) bus
JP2002175288A (ja) マルチプロセッサシステム、データ処理システム、データ処理方法、コンピュータプログラム
CN113095476A (zh) 一种用于通用张量计算的硬件加速装置及方法
CN110059797B (zh) 一种计算装置及相关产品
CN109117949A (zh) 用于人工智能设备的灵活数据流处理器和处理方法
Ando et al. A multithreaded CGRA for convolutional neural network processing
EP3971787A1 (en) Spatial tiling of compute arrays with shared control
Sun et al. Sense: Model-hardware codesign for accelerating sparse CNNs on systolic arrays
CN109615061B (zh) 一种卷积运算方法及装置
Peng et al. Adaptive runtime exploiting sparsity in tensor of deep learning neural network on heterogeneous systems
Iliev et al. Low latency CMOS hardware acceleration for fully connected layers in deep neural networks
JP6888073B2 (ja) チップ装置および関連製品
Kang et al. A 24.3 μJ/Image SNN Accelerator for DVS-Gesture With WS-LOS Dataflow and Sparse Methods
CN114595813A (zh) 异构加速处理器及数据计算方法
JP6888074B2 (ja) チップ装置および関連製品
Jahnke et al. Digital simulation of spiking neural networks
CN111767133A (zh) 用于可重配置脉动阵列的系统和方法
Hazarika et al. Hardware efficient convolution processing unit for deep neural networks

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