本发明专利技术实现了一种用于通用张量计算的硬件加速装置及方法。其装置包括:数据载入DMA装置,对一定范围和形式的输入数据进行提取、排布;数据输出DMA装置,对并行执行阵列的输出数据进行提取、排布、控制存回;处理特定矩阵计算的并行计算执行单元阵列;其他向量或/和标量并行执行单元,可加速各种通用计算步骤;中央控制装置,通过可编程、可扩展的指令,控制、调度上述各个硬件;上述5个子装置中均设置有定制的存储缓冲区域,对张量数据处理的膨胀特点,利用空间和时间相关性原理,实现吸收效果。本发明专利技术在对特定领域的通用算子的硬件化的基础上优化了并行计算单元的计算机制,形成一套以数据调度为中心的计算机制。以数据调度为中心的计算机制。以数据调度为中心的计算机制。
【技术实现步骤摘要】
一种用于通用张量计算的硬件加速装置及方法
[0001]本专利技术属于计算机硬件、人工神经网络算法部署硬件加速的领域,具体涉及一种芯片上用于通用张量计算的加速器的硬件并行运算装置及方法。
技术介绍
[0002]深度卷积神经网络是人工神经网络的一种,属于机器学习算法模型,由多层具体的神经元算法层、隐藏层组成。它可以根据一组数据张量输入,例如图像构成的张量,产生一组数据向量输出,例如分类结果的标志或标签与坐标等信息。它的每一层都对输入数据进行特征抽取、激活、采样等运算,输出给下一层的输入。每一层的构成包括算子、算法结构和计算参数,比如卷积核或计算权重参数,它们是在一套神经网络算法创建后,在针对一组数据做训练的过程中选择、提取得到的。在面对同类数据、专门领域的应用场景中,将上述算子、算法结构和计算参数部署在特定的加速芯片中,就能发挥训练所指向的功能结果,例如输出物体分类结果或所要识别物体的相关信息。
[0003]近年来,深度卷积神经网络在多个应用领域越来越得到深入研究并被广泛接受。它大部分都由卷积计算层构成,还包括一些其他算法层。在终端部署人工智能算法已经成为广泛需求,但芯片的性能、成本等因素已成为了需求的瓶颈要素。专利文件1(公开号CN105488565A)公开了一种加速深度神经网络算法的加速芯片的运算装置及方法,通过全面将算子硬件化、指令化,形成一套AI指令集及其加速处理器。但由于该装置及方法考虑过多计算任务的融合与编程的灵活性,数据处理的颗粒度较小,还需要与其他高性能的数据排布装置配合方能发挥功效,带来其装置芯片化、产品化的总体成本高。
[0004]当前在机器学习算法领域的研究表明,理论算法要与特定领域、产业场景结合,且此前单一的算法之间要进行再联接和在线配合部署,经过多种算法处理的结果才能在实际中应用。因此,既要考虑大量计算数据的存储成本,同时还要在多种人工神经算法之间能够快速切换配置,针对领域、产业场景可配置可裁剪的设计装置,才符合终端人工智能神经网络部署的设计理念。
技术实现思路
[0005]本专利技术的目的在于,提供一种用于通用张量计算的硬件并行加速器的硬件装置及方法,能够以低成本、低功耗的芯片工艺节点和较低的主存储成本提供合理的算力,令多个深度卷积神经网络同时能够部署并切换工作,在特定实时要求时间内完成共同的判断、分类或检测功能。
[0006]本专利技术的深度卷积神经网络硬件并行加速器的硬件装置,包括:并行计算执行单元阵列,例如以执行矩阵或/和向量数据的乘法、加减法的并行运算为主,由一个个乘、加减以及其他基础算子构成的单个神经元硬件模块组成;数据载入装置,对上述深度卷积神经网络算法所需要的大量数据进行提取、排布及输入,以及相关的控制;
数据输出装置,对计算执行单元阵列的输出结果进行提取、排布及存回,以及相关的控制;向量或/和标量其他特殊计算执行单元及其存取数据装置,对深度卷积神经网络算法中的其他关键算子进行加速执行;中央控制装置,通过可编程指令完成对上述4个子装置的总体控制、调度;所述5个子装置中均设置有中间存储及缓冲区域,对主存储器进行读取与写入,对指令以及中间数据进行缓存,同时也能彼此随机访问。
[0007]本专利技术的用于通用张量计算的硬件并行加速器的硬件装置,具有可配置特征,包括以下特点:能够通过软件编程来动态配置并行计算算子的数据调度办法,包括输入数据的部分行驻留、代表神经元突触的权重数据驻留以及临时输出数据驻留;能够通过软件编程来动态配置并行计算的输入和输出数据排布方式,数据格式;能够通过软件编程来动态配置并行计算执行单元的并行效率、并行工作的方式,例如对多种卷积核尺寸、运算间隔数据距离的差别,配合上述调度办法与排布方式进行配置。
[0008]本专利技术的用于通用张量计算的硬件并行加速器的硬件装置进行运算的方法,其设计原则在于:对于深度卷积神经网络算法中的矩阵算子例如卷积、池化、全连接和其他算法可以转化为矩阵运算的某些步骤,是通过并行乘、加计算执行单元阵列加速执行;对于上述算法中的非矩阵算子,若无法转化为矩阵运算,则是通过向量或/和标量其他特殊计算执行单元及其存取数据装置来加速执行;两种计算执行单元,和主存储器之间,是通过各自特定设计的存取数据装置完成数据的随机访问。
[0009]本专利技术的用于通用张量计算的硬件并行加速器的硬件装置进行矩阵运算的实现方法,其特征在于,并行乘、加计算执行单元阵列与数据载入装置中的本地缓存寄存器不是全地址连接、可访问全部缓存空间的,而是结合权利要求3所述的软件可配置的工作方式,设计实现为缓存地址区域局部可访问。
[0010]本专利技术的用于通用张量计算的硬件并行加速器的硬件装置及其数据调度方法,其特征在于:数据输入输出装置具有片上模块内专用缓存,并可以与其他计算执行单元的相关缓存进行随机访问;具有一定规模的主存储器将作为主要的性能缓冲器和计算中间结果暂存的空间;中央控制装置包括一个通用中央处理器和一套可扩展的高性能配置装置,在不同神经网络的算法层、数据宏块层进行调度,对上述子装置进行快速配置。
[0011]本专利技术的效果在于:1、简化了硬件并行计算单元阵列与输入装置之间的连接复杂度2、简化了输出装置与主存储之间排布数据的空间复杂度3、简化了软件排布数据、划分数据宏块的地址计算复杂度4、提高了硬件并行计算单元阵列的实际应用效率
5、更适合在低成本嵌入式ASIC芯片上实现
附图说明
[0012]图1为本专利技术用于通用张量计算的硬件并行加速器的硬件装置各构成模块与相互关系图;图2为面向卷积计算的硬件基本算子执行单元结构图;图3为硬件算子执行单元阵列与输出寄存阵列结构关系图;图4为硬件算子执行单元阵列与权重输入单元结构关系图;图5为硬件算子执行单元阵列与输入寄存阵列结构关系图;图6为本专利技术深度卷积神经网络硬件并行加速器的硬件装置在加速张量卷积运算的数据流图;图7为中央控制装置结构并与其他子装置的关系图;图8为特殊向量或标量算子硬件加速执行单元结构图;图9为本专利技术进行卷积层计算的方法示意图;图10为本专利技术进行卷积层计算的步骤流程图。
[0013]附图标记说明1并行硬件计算单元阵列101卷积计算单元12并行输出寄存阵列121输出寄存器组2输入数据DMA装置201输入数据缓存202并行输入寄存阵列205输入权重缓存3输出数据DMA装置301输出数据缓存4中央控制装置401中央控制单元的数据和指令缓存5数据总线6主存储控制器及主存储器7控制总线装置8向量/标量特殊计算硬件加速单元800向量/标量特殊计算硬件加速单元中的缓存801特殊计算硬件算子802输入DMA803输出DMA804向量/标量特殊计算硬件加速控制器909输入张量数据
具体实施方式
[0014]下面结合附图对本专利技术的用于通用张量计算的硬件并行加速器的硬件装置及方法做进一步的详细说明。
[0015]图1为本专利技术用于通用张量计算的硬件并行加速器的硬件装置各构成模块与相互关系图,该装置包括并行硬件矩阵计算单元阵列1,输入数据装置2,输出数据装置3本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一套用于通用张量计算的硬件处理装置,其特征在于,包括:端到端的连接总线;数据载入DMA装置,对数据进行提取、重排布;并行计算执行单元构成阵列,可执行矩阵或/和向量数据运算;数据输出DMA装置,对计算执行单元阵列的输出结果进行提取、重排布及存回;向量或/和标量计算执行单元及其存取数据装置,对张量计算所需要的其他关键算子进行加速执行;中央控制装置,运行可编程指令,对上述4个子装置控制、调度;所述5个子装置中均设置有存储及缓冲区域,都可以对主存储器进行读取与写入,对指令以及中间数据进行缓存,同时也能彼此随机访问。2.根据权利要求1所述的用于通用张量计算的硬件并行加速器的硬件装置,其特征在于,对于深度卷积神经网络算法中的关键算子例如卷积、池化(pooling)、激活等等,以及关键的张量切分、融合、转置等操作,拆分为硬件算子和数据算子,对算子的控制设计为指令,形成层级、宏块的运算和数据定义,进行指令化封装设计。3.根据权利要求1
‑
2所述的用于通用张量计算的硬件并行加速器的硬件装置,其特征包括:能够通过软件编程来动态配置并行计算算子的数据调度办法,包括输入数据的部分行驻留、代表神经元突触的权重数据驻留以及临时输出数据驻留;能够通过软件编程来动态配置并行计算的输入和输出数据排布方式,数据格式;能够通过软件编程来动态配置并行计算执行单元的并行效率、并行工作的方式,例如对多种卷积核尺寸、运算间隔数据距离的差别,配合上述调度办法与排布方式进行配置。4.根据权利要求1
‑
3所述的处理器硬件设计...
【专利技术属性】
技术研发人员:杨旭光,
申请(专利权)人:苏州芯启微电子科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。