掌桥专利:专业的专利平台
掌桥专利
首页

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

文献发布时间:2023-06-19 11:45:49


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

技术领域

本发明属于计算机硬件、人工神经网络算法部署硬件加速的领域,具体涉及一种芯片上用于通用张量计算的加速器的硬件并行运算装置及方法。

背景技术

深度卷积神经网络是人工神经网络的一种,属于机器学习算法模型,由多层具体的神经元算法层、隐藏层组成。它可以根据一组数据张量输入,例如图像构成的张量,产生一组数据向量输出,例如分类结果的标志或标签与坐标等信息。它的每一层都对输入数据进行特征抽取、激活、采样等运算,输出给下一层的输入。每一层的构成包括算子、算法结构和计算参数,比如卷积核或计算权重参数,它们是在一套神经网络算法创建后,在针对一组数据做训练的过程中选择、提取得到的。在面对同类数据、专门领域的应用场景中,将上述算子、算法结构和计算参数部署在特定的加速芯片中,就能发挥训练所指向的功能结果,例如输出物体分类结果或所要识别物体的相关信息。

近年来,深度卷积神经网络在多个应用领域越来越得到深入研究并被广泛接受。它大部分都由卷积计算层构成,还包括一些其他算法层。在终端部署人工智能算法已经成为广泛需求,但芯片的性能、成本等因素已成为了需求的瓶颈要素。专利文件1(公开号CN105488565A)公开了一种加速深度神经网络算法的加速芯片的运算装置及方法,通过全面将算子硬件化、指令化,形成一套AI指令集及其加速处理器。但由于该装置及方法考虑过多计算任务的融合与编程的灵活性,数据处理的颗粒度较小,还需要与其他高性能的数据排布装置配合方能发挥功效,带来其装置芯片化、产品化的总体成本高。

当前在机器学习算法领域的研究表明,理论算法要与特定领域、产业场景结合,且此前单一的算法之间要进行再联接和在线配合部署,经过多种算法处理的结果才能在实际中应用。因此,既要考虑大量计算数据的存储成本,同时还要在多种人工神经算法之间能够快速切换配置,针对领域、产业场景可配置可裁剪的设计装置,才符合终端人工智能神经网络部署的设计理念。

发明内容

本发明的目的在于,提供一种用于通用张量计算的硬件并行加速器的硬件装置及方法,能够以低成本、低功耗的芯片工艺节点和较低的主存储成本提供合理的算力,令多个深度卷积神经网络同时能够部署并切换工作,在特定实时要求时间内完成共同的判断、分类或检测功能。

本发明的深度卷积神经网络硬件并行加速器的硬件装置,包括:

并行计算执行单元阵列,例如以执行矩阵或/和向量数据的乘法、加减法的并行运算为主,由一个个乘、加减以及其他基础算子构成的单个神经元硬件模块组成;

数据载入装置,对上述深度卷积神经网络算法所需要的大量数据进行提取、排布及输入,以及相关的控制;

数据输出装置,对计算执行单元阵列的输出结果进行提取、排布及存回,以及相关的控制;

向量或/和标量其他特殊计算执行单元及其存取数据装置,对深度卷积神经网络算法中的其他关键算子进行加速执行;

中央控制装置,通过可编程指令完成对上述4个子装置的总体控制、调度;

所述5个子装置中均设置有中间存储及缓冲区域,对主存储器进行读取与写入,对指令以及中间数据进行缓存,同时也能彼此随机访问。

本发明的用于通用张量计算的硬件并行加速器的硬件装置,具有可配置特征,包括以下特点:

能够通过软件编程来动态配置并行计算算子的数据调度办法,包括输入数据的部分行驻留、代表神经元突触的权重数据驻留以及临时输出数据驻留;

能够通过软件编程来动态配置并行计算的输入和输出数据排布方式,数据格式;

能够通过软件编程来动态配置并行计算执行单元的并行效率、并行工作的方式,例如对多种卷积核尺寸、运算间隔数据距离的差别,配合上述调度办法与排布方式进行配置。

本发明的用于通用张量计算的硬件并行加速器的硬件装置进行运算的方法,其设计原则在于:

对于深度卷积神经网络算法中的矩阵算子例如卷积、池化、全连接和其他算法可以转化为矩阵运算的某些步骤,是通过并行乘、加计算执行单元阵列加速执行;

对于上述算法中的非矩阵算子,若无法转化为矩阵运算,则是通过向量或/和标量其他特殊计算执行单元及其存取数据装置来加速执行;

两种计算执行单元,和主存储器之间,是通过各自特定设计的存取数据装置完成数据的随机访问。

本发明的用于通用张量计算的硬件并行加速器的硬件装置进行矩阵运算的实现方法,其特征在于,并行乘、加计算执行单元阵列与数据载入装置中的本地缓存寄存器不是全地址连接、可访问全部缓存空间的,而是结合权利要求3所述的软件可配置的工作方式,设计实现为缓存地址区域局部可访问。

本发明的用于通用张量计算的硬件并行加速器的硬件装置及其数据调度方法,其特征在于:

数据输入输出装置具有片上模块内专用缓存,并可以与其他计算执行单元的相关缓存进行随机访问;

具有一定规模的主存储器将作为主要的性能缓冲器和计算中间结果暂存的空间;

中央控制装置包括一个通用中央处理器和一套可扩展的高性能配置装置,在不同神经网络的算法层、数据宏块层进行调度,对上述子装置进行快速配置。

本发明的效果在于:

1、简化了硬件并行计算单元阵列与输入装置之间的连接复杂度

2、简化了输出装置与主存储之间排布数据的空间复杂度

3、简化了软件排布数据、划分数据宏块的地址计算复杂度

4、提高了硬件并行计算单元阵列的实际应用效率

5、更适合在低成本嵌入式ASIC芯片上实现

附图说明

图1为本发明用于通用张量计算的硬件并行加速器的硬件装置各构成模块与相互关系图;

图2为面向卷积计算的硬件基本算子执行单元结构图;

图3为硬件算子执行单元阵列与输出寄存阵列结构关系图;

图4为硬件算子执行单元阵列与权重输入单元结构关系图;

图5为硬件算子执行单元阵列与输入寄存阵列结构关系图;

图6为本发明深度卷积神经网络硬件并行加速器的硬件装置在加速张量卷积运算的数据流图;

图7为中央控制装置结构并与其他子装置的关系图;

图8为特殊向量或标量算子硬件加速执行单元结构图;

图9为本发明进行卷积层计算的方法示意图;

图10为本发明进行卷积层计算的步骤流程图。

附图标记说明

具体实施方式

下面结合附图对本发明的用于通用张量计算的硬件并行加速器的硬件装置及方法做进一步的详细说明。

图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的数据的能力。

本发明可通过叠加多套所述硬件装置,并行实现性能的成倍提升,只受到存储瓶颈限制着实际性能提升的程度。越高的计算性能意味着越大的数据吞吐需求,也带来存储成本的上升。

本发明可用于众多通用或专用的计算系统环境或配置中,例如:人工智能神经网络加速芯片、异构处理器系统、微处理器系统、服务器系统、手持或便携设备、消费电子设备、工控设备、平板或个人计算机、包括以上系统或设备的分布式计算平台、数据中心等等。

本发明可以在由中央控制器执行的一般或/和扩展指令的一般上下文中描述,例如软件程序。软件程序一般包括执行特定任务或实现特定数据类型的例程、对象、组件、数据结构及参考模型等等。

以上所述介绍了用于通用张量计算的硬件并行加速器的硬件装置及方法,所应理解的是,以上所述用于理解本发明的方法及核心思想,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种用于通用张量计算的硬件加速装置及方法
  • 一种安全计算方法、通用计算引擎、用于安全计算的装置和安全计算系统
技术分类

06120113046547