CN117634577A - 向量处理器、神经网络加速器、芯片及电子设备 - Google Patents
向量处理器、神经网络加速器、芯片及电子设备 Download PDFInfo
- Publication number
- CN117634577A CN117634577A CN202410101510.1A CN202410101510A CN117634577A CN 117634577 A CN117634577 A CN 117634577A CN 202410101510 A CN202410101510 A CN 202410101510A CN 117634577 A CN117634577 A CN 117634577A
- Authority
- CN
- China
- Prior art keywords
- input
- module
- vector
- data
- output
- 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
Links
- 239000013598 vector Substances 0.000 title claims abstract description 215
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 38
- 238000004364 calculation method Methods 0.000 claims abstract description 135
- 238000013139 quantization Methods 0.000 claims abstract description 81
- 238000012545 processing Methods 0.000 claims abstract description 30
- 239000000872 buffer Substances 0.000 claims description 37
- 230000003139 buffering effect Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 description 11
- 238000000034 method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000009510 drug design Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本发明公开一种向量处理器、神经网络加速器、芯片及电子设备,涉及神经网络技术领域,解决向量处理器所需面积和功耗较高的技术问题。该向量处理器包括顶层控制器及元素处理单元;元素处理单元包括向量元素数据交换器、向量计算模块、量化模块、及反量化模块;反量化模块将低比特位的输入数据转换为高比特位,并输入向量元素数据交换器;向量元素数据交换器使输入数据选择至少一种类型进行计算,并将计算结果输出至量化模块;量化模块将计算结果转换为输出数据;顶层控制器用于控制向量元素数据交换器。本发明通过顶层控制器、向量元素数据交换器实现了量化模块、反量化模块共用,降低了向量处理器所需的面积和功耗。
Description
技术领域
本发明涉及神经网络技术领域,尤其涉及一种向量处理器、神经网络加速器、芯片及电子设备。
背景技术
深度神经网络(Deep Neural Network,DNN)是一种基于人工神经网络架构的机器学习方法,人工神经网络(Artificial Neural Networks,ANN)使用相互连接的节点(称为神经元)的层来处理和学习输入数据。深度神经网络是具有多个层的人工神经网络,这些层位于输入层和输出层之间。神经网络总是由相同的组件组成:神经元、突触、权重、偏差和函数,在实际应用中,这些组件通常被称作算子。常见的算子有:卷积、池化、上/下采样、激活函数、元素操作(元素加、元素减、元素乘、元素除)等。深度学习使用多个层来表示数据的不同层次的抽象,从而提高模型的准确性和泛化能力,已经广泛应用于运算机视觉、语音识别、自然语言处理、机器翻译、生物信息学、药物设计、医学图像分析等领域,产生了与人类专家水平相当甚至超越的结果。随着数据量不断地累积,以神经网络为主题的人工智能技术得到越来越广泛的应用。尽管神经网络已经被证明能够成功解决自动驾驶、人脸识别等实际问题,但由于传统硬件平台运算性能的局限性,使得神经网络在传统硬件难以高效部署。因此,需要专门为神经网络算法设计定制的硬件平台,这中硬件平台被称为神经网络加速器,其核心通常是一组专用的集成电路芯片,这种芯片被称为神经网络加速器芯片。
随着深度神经网络算法层数、分支和规模增加,深层输入特征图需要融合前层或其他分支的输出特征图,该融合过程需要通过向量处理器进行元素操作运算。具体而言,元素操作运算是对两张特征图之间的每一个点进行点对点运算,具体运算包括加法、乘法、减法和除法等,现有的元素操作运算过程一般采用浮点数32比特的数据格式,向量处理器需要有与该数据格式匹配的存储模块和传输电路等,由此出现了量化算法以降低存储需求和传输电路的需求。神经网络量化算法是一种在保持神经网络效果不变的前提下将浮点数32比特的输入、输出和权重压缩到更低比特的输入、输出和权重的技术。一般而言,量化每一层会存在一组量化参数,量化参数代表不同的取值范围。在两个特征图进行点对点的元素操作运算时,通常还需要进行反量化,从低比特还原回高比特进行运算,运算结束后再量化到低比特。向量处理器进行计算时,当每个计算模块支持不同比特数的运算时,需要在每个计算模块实现比特数转换模块,即每个计算模块都需要设置对应的量化模块和反量化模块,这带来了向量处理器的电路面积和功耗增加问题。因此,亟需一种新的设计,改进向量处理器,以降低向量处理器所需的面积和功耗。
发明内容
本发明的目的在于提供一种向量处理器、神经网络加速器、芯片及电子设备,以至少解决上述技术问题。本发明提供的诸多技术方案中的优选技术方案所能产生的诸多技术效果详见下文阐述。
为实现上述目的,本发明提供了以下技术方案:
本发明提供的一种向量处理器,包括:顶层控制器及与其连接的至少一个元素处理单元,所述元素处理单元用于进行向量运算中的元素操作;所述元素处理单元包括向量元素数据交换器、向量计算模块、量化模块、及反量化模块;所述向量计算模块用于进行至少两种类型的向量计算;所述反量化模块用于将低比特位的输入数据转换为高比特位的输入数据,并输入至所述向量元素数据交换器;所述向量元素数据交换器使高比特位的输入数据从所述向量计算模块中选择至少一种类型进行计算,并将高比特位的计算结果输出至所述量化模块;所述量化模块用于将高比特位的计算结果转换为低比特位的输出数据;所述顶层控制器用于控制所述向量元素数据交换器,使高比特位的输入数据对计算类型进行选择。
优选的,所述向量元素数据交换器包括第一输入选择器、第二输入选择器,所述第一输入选择器、第二输入选择器均与所述顶层控制器、向量计算模块连接;所述顶层控制器控制所述第一输入选择器,使输入数据进入所述向量计算模块中进行不同类型的计算;所述顶层控制器控制所述第二输入选择器,使所述向量计算模块的中间计算结果返回或输入数据进入所述向量计算模块中,进行不同类型的计算。
优选的,所述向量元素数据交换器还包括输出选择器,所述输出选择器与所述顶层控制器、向量计算模块连接;所述顶层控制器控制所述输出选择器,使所述输出选择器选择量化模块进行计算结果输出或直接进行计算结果输出。
优选的,所述第一输入选择器、第二输入选择器与所述向量计算模块之间至少连接有两个输入开关;不同的所述输入开关与所述向量计算模块中不同类型的计算模块一对一连接,并均与所述顶层控制器连接;所述顶层控制器通过所述输入开关控制不同类型的所述向量计算模块的启用或关闭,并控制输入数据进入所述向量计算模块。
优选的,所述向量元素数据交换器还包括输出缓冲器及至少两个输入缓冲器;所述输入缓冲器与所述输入开关一对一连接,且每个所述输入缓冲器均与所述第一输入选择器、第二输入选择器连接;所述输出缓冲器与所述输出选择器、向量计算模块连接;所述输入缓冲器、输出缓冲器分别用于对所述向量计算模块的输入数据、输出数据进行数据缓冲。
优选的,所述向量计算模块至少包括向量加法模块、向量乘法模块、向量除法模块中的任意两种,所述向量加法模块、向量乘法模块、向量除法模块分别用于进行两个向量或一个向量与一个标量之间的加法运算、乘法运算和除法运算。
优选的,所述元素处理单元还包括直接输入模块、直接输出模块;所述高比特位的位数、低比特位的位数分别为H和L,且H>L;若所述输入数据为L位比特数据,输入数据通过所述直接输入模块输入至所述向量元素数据交换器;若所述输出数据为H位比特数据,输出数据通过所述直接输出模块进行输出。
优选的,所述元素处理单元还包括第一输入选择模块、第二输入选择模块,所述第一输入选择模块、第二输入选择模块均与所述顶层控制器连接;所述第一输入选择模块、第二输入选择模块独立连接不同的所述反量化模块、以及不同的所述直接输入模块;所述顶层控制器通过所述第一输入选择模块、第二输入选择模块对输入数据的数据流方向进行选择控制。
优选的,所述元素处理单元还包括输出选择模块,所述输出选择模块与所述顶层控制器连接;所述顶层控制器对输出数据的数据流方向进行选择控制;所述输出选择模块与所述量化模块、直接输出模块连接。
优选的,所述向量处理器还包括输入模块和输入/输出模块;所述输入模块与所述第一输入选择模块连接,用于进行输入数据的输入;所述输入/输出模块与所述第二输入选择模块、输出选择模块连接,用于接收所述输出选择模块的输出数据,并将输入数据输入至所述第二输入选择模块。
优选的,所述向量处理器还包括寄存器,所述顶层控制器能够对所述寄存器进行配置,使所述第一输入选择模块、第二输入选择模块的输入数据分别进入反量化模块或直接输入模块,以及所述输出选择模块的输出数据来自所述量化模块或直接输出模块。
一种神经网络加速器,包括以上任一项所述的向量处理器。
一种芯片,包括以上任一项所述的向量处理器。
一种电子设备,包括以上任一项所述的向量处理器或以上所述的芯片。
实施本发明上述技术方案中的一个技术方案,具有如下优点或有益效果:
本发明中,通过顶层控制器、向量元素数据交换器实现了至少两种类型的向量计算模块共用同样的量化模块、反量化模块,而现有技术中每种类型的向量计算模块均需单独设置量化模块、反量化模块,从而较现有技术节省了量化模块、反量化模块的使用数量,降低了向量处理器所需的面积和功耗。同时,本发明的架构优势还在于节省从存储器搬运到向量计算模块或计算单元之间的带宽,在相同数据量m和计算并行度n的前提下,可将存储器搬与向量计算模块之间的数据带宽由现有技术的32比特降为8比特,从而节约了向量处理器的传输带宽与存储空间,进一步降低了向量处理器所需的功耗和成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,附图中:
图1是本发明实施例一向量处理器中的元素处理单元与输入模块、输入/输出模块及顶层控制器的连接示意图一;
图2是本发明实施例一向量处理器中数据流的架构示意图;
图3是本发明实施例一向量处理器中的元素处理单元与输入模块、输入/输出模块及顶层控制器的连接示意图二;
图4是本发明实施例一向量处理器中的元素操作顶层模块与向量处理器的全集交换模块、顶层控制器连接的示意图;
图5是本发明实施例一向量处理器中的向量处理单元与顶层控制器、行缓冲器及输入输出交互界面的连接示意图;
图6是本发明实施例一的向量处理器与CIM集群、寄存器总线及共享存储器的连接示意图;
图7是本发明实施例二的神经网络加速器与外部存储器的连接示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下文将要描述的各种示例性实施例将要参考相应的附图,这些附图构成了示例性实施例的一部分,其中描述了实现本发明可能采用的各种示例性实施例。除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。应明白,它们仅是与如所附权利要求书中所详述的、本发明公开的一些方面相一致的流程、方法和装置等的例子,还可使用其他的实施例,或者对本文列举的实施例进行结构和功能上的修改,而不会脱离本发明的范围和实质。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”等指示的是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的元件必须具有的特定的方位、以特定的方位构造和操作。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。术语“多个”的含义是两个或两个以上。术语“相连”、“连接”应做广义理解,例如,可以是固定连接、可拆卸连接、一体连接、机械连接、电连接、通信连接、直接相连、通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明,仅示出了与本发明实施例相关的部分。
实施例一:本发明提供了一种向量处理器,如图1所示,包括:顶层控制器及与其连接的至少一个元素处理单元,元素处理单元用于执行向量运算中的元素操作(element-wise),元素操作是神经网络编程中常见的张量操作,对两个张量内相应位置的每一对元素进行相应操作,产生一个新的相同形状的张量,如所有的算术运算,加、减、乘、除都是元素操作,顶层控制器对元素操作中数据流的量化操作及反量化操作进行控制。例如:顶层控制器可以分配标量到向量计算模块中的向量加法模块、向量乘法模块和除法模块进行标量和向量之间的运算;顶层控制器可以通过配置寄存器的方法控制两个输入选择模块,使得两个输入数据分别进入反量化模块或直接输入模块;顶层控制器可以通过配置寄存器的方法控制输出模块,使得输出来自量化模块或直接输出模块。元素处理单元主要功能为在向量处理器中处理两个向量之间加法运算、乘法运算和除法运算以及一个向量和一个标量之间的加法运算、乘法运算和除法运算。元素处理单元包括向量元素数据交换器(用于进行向量计算模块的输入数据流和输入数据流控制)、向量计算模块、量化模块、及反量化模块。向量计算模块用于进行至少两种类型的向量计算,具体的类型可根据需要进行选择设定。反量化模块用于将高比特位的输入数据转换为低比特位的输入数据,并输入至向量元素数据交换器,便于向量计算模块直接进行计算。顶层控制器控制向量元素数据交换器,使低比特位的输入数据从向量计算模块中选择一种类型进行计算,即向量元素数据交换器负责控制数据流方向,将低比特位的输入数据送入所需进行的对应类型的计算模块中,顶层控制器控制通过控制将高比特位的计算结果经向量元素数据交换器输出至量化模块,转换为低比特位的输出数据,从而实现了输出数据的定向流动控制,便于向量计算模块的后续计算使用。
本发明中,通过顶层控制器、向量元素数据交换器、向量计算模块、量化模块、及反量化模块实现了至少两种类型的向量计算模块共用同样的量化模块、反量化模块,而现有技术中每种类型的向量计算模块均需单独设置量化模块、反量化模块,从而较现有技术节省了量化模块、反量化模块的数量,从而降低了向量处理器的面积和功耗。如图2所示,本发明的架构优势还在于节省从存储器搬运到向量计算模块或计算单元之间的带宽,从而节约了向量处理器的传输带宽与存储空间,进而进一步降低了向量处理器所需的功耗和成本。如现有技术一般采用的是从存储器直接搬运32比特数据到计算单元,本发明通过向量元素数据交换器、向量计算模块、量化模块、及反量化模块可将数据改为8比特甚至更低,节省了75%的数据传输带宽和存储空间,当然也可以根据需要改为其他比特位,如4比特,16比特等。图2中n代表的是计算并行度,即一次能够获取和运算的数据个数,m代表存储的数据量。本发明在相同m和n的前提下,可将存储器搬与向量计算模块之间的数据带宽由32比特降为8比特,而使用数量较少的比特意味着更少的面积和功耗消耗,从而可以实现存储器和传输电路耗费的面积是现有方案的四分之一,在使用相同存储器和传输电路架构下,也可以实现静态功耗是现有方案的四分之一。同时,反量化模块付出的面积和功耗的代价也远远小于存储器的m x n x 1比特,从而整个向量处理器的成本实现了降低。
本发明结合改进向量处理器中的量化模块和反量化模块设计,在向量运算前,数据传输为低比特数据,经反量化模块转换为高比特数据再进行向量运算,对高比特数据进行向量运算后,向量运算结果也为高比特数据,经量化模块转换为低比特数据进行数据传输及数据存储。因此,通过本发明的量化模块和反量化模块设计,使得在神经网络运算过程中的绝大多数存储过程和传输过程只需要低比特数据,这种低比特数据可实现更少的面积和更低功耗,降低计算时的存储需求和传输电路需求,进而降低向量处理器在数据传输和存储过程中所需的面积和功耗,提升系统级算力。
作为可选的实施方式,如图3所示,向量元素数据交换器包括第一输入选择器、第二输入选择器,第一输入选择器、第二输入选择器均与顶层控制器、向量计算模块连接,第一输入选择器、第二输入选择器分别用于进行向量计算模块计算所需的两组输入数据的输入,但两组输入数据的来源不同。顶层控制器控制第一输入选择器,使输入数据进入向量计算模块中进行不同类型的计算,该数据从元素处理单元的外部输入,如从行缓冲器中输入。顶层控制器控制第二输入选择器,使向量计算模块的中间计算结果返回或输入数据进入向量计算模块中,进行不同的类型计算,这次计算的输入数据即可以为第一输入选择器对应的中计算结果,当然下一次计算可以是上一次计算的同一种类型,也可以不同,从而实现向量计算模块中数据的循环计算,也以为输入元素处理单元的新的输入数据。通过第一输入选择器、第二交换器,实现了进行向量计算模块中不同类型计算所需的两组数据输入,且两组数据均能自由选择向量计算模块中的任意一种计算类型,从而元素处理单元实现了量化模块、及反量化模块的高效共用,节省了元素处理单元对应的面积和功耗。
作为可选的实施方式,如图3所示,向量元素数据交换器还包括输出选择器,输出选择器与顶层控制器、向量计算模块连接;顶层控制器控制输出选择器,使输出选择器选择量化模块进行计算结果输出或直接进行计算结果输出,通过输出选择器,使得向量计算模块的中间计算结果或最终计算结果可以根据需要选择执行量化进行输出,或直接进行输出,从而便于后续对该计算结果数据的使用。
作为可选的实施方式,如图3所示,第一输入选择器、第二输入选择器与向量计算模块之间至少连接有两个输入开关;不同的输入开关与向量计算模块中不同类型的计算模块一对一连接,即每个类型的计算模块均设有一个输入开关,并均与顶层控制器连接,从而顶层控制器可对输入开关的工作进行控制。顶层控制器通过输入开关控制不同类型的向量计算模块的启用或关闭,即输入开关可以对向量计算模块中不同类型计算模块的时钟信号进行开启或关闭(在不启用该类型计算模块时,该计算模块的时钟信号保持在低电位即可),从而使该计算模块能够参与或不能参与相应计算,并控制输入数据进入向量计算模块。因此,根据输入数据所需进行计算的类型,顶层控制器开启相应的计算模块,并关闭其他的计算模块,即实现输入数据流的输入控制,从而与量化模块配合后实现量化模块在多个计算模块中的共用,节省了元素处理单元对应的面积和功耗。
作为可选的实施方式,如图3所示,向量元素数据交换器还包括输出缓冲器及至少两个输入缓冲器;输入缓冲器与输入开关一对一连接,因此,输入缓冲器的数量与输入开关、向量计算模块中的类型数量相同,从而输入缓冲器可对每一种类型计算模块的输入数据进行数据缓冲。每个输入缓冲器均与第一输入选择器、第二输入选择器连接,从而第一输入选择器、第二输入选择器均可将输入数据输入任意一种类型的计算模块。输出缓冲器与输出选择器、向量计算模块连接,用于对向量计算模块的计算结果进行数据缓冲。输入缓冲器、输出缓冲器分别用于对向量计算模块的输入数据、输出数据进行数据缓冲,将数据缓存一个或多个周期后,可用于解决不同频率产品需求下可能产生的建立时间违例或保持时间违例,进而提高整个向量处理器的运算效率。
作为可选的实施方式,如图3所示,向量计算模块至少包括向量加法模块、向量乘法模块、向量除法模块中的任意两种,优选为以上三种,当然也可以根据实际运算需要加入其他的计算模块。向量加法模块、向量乘法模块、向量除法模块分别用于进行两个向量或一个向量与一个标量之间的加法运算、乘法运算和除法运算,即三种计算模块均能进行向量与向量、向量与标量的计算,从而能够更好适应多种神经网络应用场景的计算需要。
作为可选的实施方式,如图3所示,输入开关包括第一输入开关、第二输入开关、及第三输入开关,输入缓冲器包括第一输入缓冲器、第二输入缓冲器、及第三输入缓冲器;第一输入缓冲器、第二输入缓冲器、及第三输入缓冲器分别与第一输入开关、第二输入开关、及第三输入开关连接。第一输入开关、第二输入开关、及第三输入开关分别与向量加法模块、向量乘法模块、向量除法模块连接,从而三个输入缓冲器、三个输入开关与三种计算模块实现了一对一连接,通过顶层控制器的控制即可实现对输入数据流的定向控制。当然,此处的第一、第二、第三只是为了命名区分,实际可根据需要通过其他组合进行连接,如第一输入缓冲器、第二输入开关、向量除法模块顺次连接等。
作为可选的实施方式,如图3所示,元素处理单元还包括直接输入模块、直接输出模块;高比特位的位数、低比特位的位数分别为H和L,且H>L,优选H为32,L为8,当然也可根据实际计算需要设置其他H和L数值,如H为64,L为4等。若输入数据为H位比特数据,即输入数据为高比特位数据,输入数据通过直接输入模块输入至向量元素数据交换器,此时向量计算模块可直接对高比特位输入数据进行向量计算。若输出数据为L位比特数据,即向量计算模块的计算结果为低比特位数据,输出数据通过直接输出模块进行输出。通过设置直接输入模块、直接输出模块,对于不需要进行量化、反量化操作的数据进行快速输入或输出,提高了输入数据和输出数据的处理效率,此时量化模块、反量化模块可以同时进行工作,即与直接输入模块或直接输出模块并行,从而可进行更高速的数据流,提高模块的利用率。
作为可选的实施方式,如图3所示,元素处理单元还包括第一输入选择模块、第二输入选择模块,第一输入选择模块、第二输入选择模块均与顶层控制器连接。第一输入选择模块、第二输入选择模块独立连接不同的反量化模块、以及不同的直接输入模块,即第一输入选择模块连接一组反量化模块、直接输入模块,第二输入选择模块连接另一组反量化模块、直接输入模块。顶层控制器通过第一输入选择模块、第二输入选择模块对输入数据的数据流方向进行选择控制,即顶层控制器对输入数据的比特位位数进行判断,输入数据为高比特位或低比特位,从而选择对应的输入通道。如输入数据为高比特位时,输入数据流选择直接输入模块,而输入数据为低比特位时,输入数据流选择反量化模块,从而根据输入数据流的比特位数实现了数据分流,提高了数据流操作效率。
作为可选的实施方式,如图3所示,元素处理单元还包括输出选择模块,输出选择模块与顶层控制器连接。顶层控制器对输出数据的数据流方向进行选择控制;输出选择模块与量化模块、直接输出模块连接。当输出数据流(向量计算模块的计算结果)为高比特位时,选择量化模块进行数据输出,当输出数据流为低比特位时,选择直接输出模块进行数据输出,从而根据输出数据流的比特位数实现了数据分流,提高了数据流操作效率。
作为可选的实施方式,如图3、图4、图6所示,向量处理器还包括输入模块、输入/输出模块,元素处理单元与输入模块、输入/输出模块共同作为元素顶层操作模块中的单元模块,而元素操作顶层模块又为向量处理器的向量处理单元中的一个功能模块。输入模块与第一输入选择模块连接,用于进行输入数据的输入。输入/输出模块与第二输入选择模块、输出选择模块连接,用于接收输出选择模块的输出数据,并将输入数据输入至第二输入选择模块,与输入模块的输入数据共同作为输入数据,进行下一次的向量计算。图5中,N x 32bits表示N个32比特的数据线。N x 8 bits表示N个8比特的数据线。
作为可选的实施方式,如图5所示,向量处理器还包括寄存器,顶层控制器能够对寄存器进行配置,使第一输入选择模块、第二输入选择模块的输入数据分别进入反量化模块或直接输入模块,以及输出选择模块的输出数据来自量化模块或直接输出模块。通过寄存器可对高比特位、低比特位进行划分,使输入数据、输出数据根据比特位数选择相应的数据通道进行数据输入及输出,同时,寄存器还可根据计算需要对高比特位、低比特位划分的规则进行调整,以适应更广泛的计算场景。
实施例仅是一个特例,并不表明本发明就这样一种实现方式。
实施例二:一种神经网络加速器,包括实施例一中的向量处理器。如图7所示,神经网络加速器还包括前处理模块、存内计算矩阵、共享存储器,其中前处理模块与存内计算矩阵连接,存内计算矩阵与向量处理器连接,共享存储器与前处理模块、存内计算矩阵单向连接,还与向量处理器连接。存内计算矩阵可以是由多个CIM(computing in memory,存内计算)形成的矩阵,通过采用实施例一中的向量处理器(该向量处理器为可以实现融合多个算子的多算子融合向量处理器),神经网络加速器的面积和功耗都得到有效降低,便于进行使用。
另外,存内计算可以解决内存墙问题。冯诺依曼架构的计算机系统把存储器和处理器分割成了两个部分,而处理器频繁访问存储器的开销就形成了内存墙,而且高频的数据搬运往往是芯片,尤其是AI领域芯片占据功耗的首要原因,进而影响芯片算力、效率和功耗等。存内计算的基本思路就是把计算和存储合二为一,从而实现减少处理器访问存储器的频率(因为计算已经在存储器内完成了大部分,所以,本发明提供的含有感存算一体技术(集传感、储存和运算为一体)的神经网络加速器可以具有超高的算力、效率和能效比。所以,本发明提供的神经网络加速器可以在不影响其本身功能的情况下,改善其面积和功耗的性能。本发明提供的神经网络加速器可以广泛的应用于诸多AI领域,例如基于感存算一体技术架构实现的模数混合AI视觉芯片,使该AI视觉芯片具有更低功耗与更高的能效。
实施例三:一种芯片,包括实施例一中的向量处理器。通过采用实施例一中的向量处理器,芯片的面积、成本和功耗均得到了降低,从而可以在芯片上集成更多样、更复杂的功能,从而芯片的适用性更强,便于在更复杂的工作场景中使用。本发明提供的芯片,例如可以为AI视觉芯片,芯片中各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算设备中的处理器中,也可以以软件形式存储于计算设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作,可有效降低芯片面积、成本和功耗。
实施例四:一种电子设备,包括实施例一中的向量处理器或实施例三中的芯片,便于降低电子设备的功耗和成本。本发明提供的芯片可应用于自动驾驶、AR、VR、激光雷达,以及智能手机、平板电脑、可穿戴电子装备、智能家居电子产品、工业或医疗或电池供电类等一系列对低功耗与高能效比有较高需求的电子设备。
以上所述仅为本发明的较佳实施例而已,本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等同替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明的保护范围。
Claims (14)
1.一种向量处理器,其特征在于,包括:顶层控制器及与其连接的至少一个元素处理单元,所述元素处理单元用于进行向量运算中的元素操作;所述元素处理单元包括向量元素数据交换器、向量计算模块、量化模块、及反量化模块;所述向量计算模块用于进行至少两种类型的向量计算;所述反量化模块用于将低比特位的输入数据转换为高比特位的输入数据,并输入至所述向量元素数据交换器;所述向量元素数据交换器使高比特位的输入数据从所述向量计算模块中选择至少一种类型进行计算,并将高比特位的计算结果输出至所述量化模块;所述量化模块用于将高比特位的计算结果转换为低比特位的输出数据;所述顶层控制器用于控制所述向量元素数据交换器,使高比特位的输入数据对计算类型进行选择。
2.根据权利要求1所述的一种向量处理器,其特征在于,所述向量元素数据交换器包括第一输入选择器、第二输入选择器,所述第一输入选择器、第二输入选择器均与所述顶层控制器、向量计算模块连接;所述顶层控制器控制所述第一输入选择器,使输入数据进入所述向量计算模块中进行不同类型的计算;所述顶层控制器控制所述第二输入选择器,使所述向量计算模块的中间计算结果返回或输入数据进入所述向量计算模块中,进行不同类型的计算。
3.根据权利要求2所述的一种向量处理器,其特征在于,所述向量元素数据交换器还包括输出选择器,所述输出选择器与所述顶层控制器、向量计算模块连接;所述顶层控制器控制所述输出选择器,使所述输出选择器选择量化模块进行计算结果输出或直接进行计算结果输出。
4.根据权利要求2所述的一种向量处理器,其特征在于,所述第一输入选择器、第二输入选择器与所述向量计算模块之间至少连接有两个输入开关;不同的所述输入开关与所述向量计算模块中不同类型的计算模块一对一连接,并均与所述顶层控制器连接;所述顶层控制器通过所述输入开关控制不同类型的所述向量计算模块的启用或关闭,并控制输入数据进入所述向量计算模块。
5.根据权利要求4所述的一种向量处理器,其特征在于,所述向量元素数据交换器还包括输出缓冲器及至少两个输入缓冲器;所述输入缓冲器与所述输入开关一对一连接,且每个所述输入缓冲器均与所述第一输入选择器、第二输入选择器连接;所述输出缓冲器与所述输出选择器、向量计算模块连接;所述输入缓冲器、输出缓冲器分别用于对所述向量计算模块的输入数据、输出数据进行数据缓冲。
6.根据权利要求5所述的一种向量处理器,其特征在于,所述向量计算模块至少包括向量加法模块、向量乘法模块、向量除法模块中的任意两种,所述向量加法模块、向量乘法模块、向量除法模块分别用于进行两个向量或一个向量与一个标量之间的加法运算、乘法运算和除法运算。
7.根据权利要求1-6任一项所述的一种向量处理器,其特征在于,所述元素处理单元还包括直接输入模块、直接输出模块;所述高比特位的位数、低比特位的位数分别为H和L,且H>L;若所述输入数据为L位比特数据,输入数据通过所述直接输入模块输入至所述向量元素数据交换器;若所述输出数据为H位比特数据,输出数据通过所述直接输出模块进行输出。
8.根据权利要求7所述的一种向量处理器,其特征在于,所述元素处理单元还包括第一输入选择模块、第二输入选择模块,所述第一输入选择模块、第二输入选择模块均与所述顶层控制器连接;所述第一输入选择模块、第二输入选择模块独立连接不同的所述反量化模块、以及不同的所述直接输入模块;所述顶层控制器通过所述第一输入选择模块、第二输入选择模块对输入数据的数据流方向进行选择控制。
9.根据权利要求8所述的一种向量处理器,其特征在于,所述元素处理单元还包括输出选择模块,所述输出选择模块与所述顶层控制器连接;所述顶层控制器对输出数据的数据流方向进行选择控制;所述输出选择模块与所述量化模块、直接输出模块连接。
10.根据权利要求9所述的一种向量处理器,其特征在于,所述向量处理器还包括输入模块和输入/输出模块;所述输入模块与所述第一输入选择模块连接,用于进行输入数据的输入;所述输入/输出模块与所述第二输入选择模块、输出选择模块连接,用于接收所述输出选择模块的输出数据,并将输入数据输入至所述第二输入选择模块。
11.根据权利要求8所述的一种向量处理器,其特征在于,所述向量处理器还包括寄存器,所述顶层控制器能够对所述寄存器进行配置,使所述第一输入选择模块、第二输入选择模块的输入数据分别进入反量化模块或直接输入模块,以及所述输出选择模块的输出数据来自所述量化模块或直接输出模块。
12.一种神经网络加速器,其特征在于,包括权利要求1-11中任一项所述的向量处理器。
13.一种芯片,其特征在于,包括权利要求1-11中任一项所述的向量处理器。
14.一种电子设备,其特征在于,包括权利要求1-11中任一项所述的向量处理器或权利要求13中所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410101510.1A CN117634577A (zh) | 2024-01-25 | 2024-01-25 | 向量处理器、神经网络加速器、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410101510.1A CN117634577A (zh) | 2024-01-25 | 2024-01-25 | 向量处理器、神经网络加速器、芯片及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117634577A true CN117634577A (zh) | 2024-03-01 |
Family
ID=90018448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410101510.1A Pending CN117634577A (zh) | 2024-01-25 | 2024-01-25 | 向量处理器、神经网络加速器、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117634577A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111937010A (zh) * | 2018-03-23 | 2020-11-13 | 亚马逊技术股份有限公司 | 加速的量化乘法和加法运算 |
CN114418057A (zh) * | 2020-10-28 | 2022-04-29 | 华为技术有限公司 | 卷积神经网络的运算方法及相关设备 |
WO2022088063A1 (zh) * | 2020-10-30 | 2022-05-05 | 华为技术有限公司 | 神经网络模型的量化方法和装置、数据处理的方法和装置 |
CN114781618A (zh) * | 2022-04-29 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种神经网络量化处理方法、装置、设备及可读存储介质 |
CN116611488A (zh) * | 2023-05-24 | 2023-08-18 | 奥比中光科技集团股份有限公司 | 一种矢量处理单元、神经网络处理器及深度相机 |
CN117195989A (zh) * | 2023-11-06 | 2023-12-08 | 深圳市九天睿芯科技有限公司 | 向量处理器、神经网络加速器、芯片及电子设备 |
-
2024
- 2024-01-25 CN CN202410101510.1A patent/CN117634577A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111937010A (zh) * | 2018-03-23 | 2020-11-13 | 亚马逊技术股份有限公司 | 加速的量化乘法和加法运算 |
CN114418057A (zh) * | 2020-10-28 | 2022-04-29 | 华为技术有限公司 | 卷积神经网络的运算方法及相关设备 |
WO2022088063A1 (zh) * | 2020-10-30 | 2022-05-05 | 华为技术有限公司 | 神经网络模型的量化方法和装置、数据处理的方法和装置 |
CN114781618A (zh) * | 2022-04-29 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种神经网络量化处理方法、装置、设备及可读存储介质 |
CN116611488A (zh) * | 2023-05-24 | 2023-08-18 | 奥比中光科技集团股份有限公司 | 一种矢量处理单元、神经网络处理器及深度相机 |
CN117195989A (zh) * | 2023-11-06 | 2023-12-08 | 深圳市九天睿芯科技有限公司 | 向量处理器、神经网络加速器、芯片及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guo et al. | Software-hardware codesign for efficient neural network acceleration | |
CN109858620B (zh) | 一种类脑计算系统 | |
CN109543832B (zh) | 一种计算装置及板卡 | |
CN106529670B (zh) | 一种基于权重压缩的神经网络处理器、设计方法、芯片 | |
CN109522052B (zh) | 一种计算装置及板卡 | |
WO2018192500A1 (zh) | 处理装置和处理方法 | |
EP1149359B1 (en) | Neural processing element for use in a neural network | |
CN107609641A (zh) | 稀疏神经网络架构及其实现方法 | |
CN108090560A (zh) | 基于fpga的lstm递归神经网络硬件加速器的设计方法 | |
CN109409510B (zh) | 神经元电路、芯片、系统及其方法、存储介质 | |
CN109472356A (zh) | 一种可重构神经网络算法的加速装置及方法 | |
CN110163359A (zh) | 一种计算装置及方法 | |
CN107766935B (zh) | 多层人造神经网络 | |
TW201807621A (zh) | 人造神經網路、人造神經元及其控制方法 | |
CN110383300A (zh) | 一种计算装置及方法 | |
CN111047045B (zh) | 机器学习运算的分配系统及方法 | |
CN117195989A (zh) | 向量处理器、神经网络加速器、芯片及电子设备 | |
CN110909870B (zh) | 训练装置及方法 | |
CN110399211A (zh) | 机器学习的分配系统、方法及装置、计算机设备 | |
CN108320018A (zh) | 一种人工神经网络运算的装置及方法 | |
Geng et al. | CQNN: a CGRA-based QNN framework | |
Wang et al. | LSMCore: a 69k-synapse/mm 2 single-core digital neuromorphic processor for liquid state machine | |
CN111831354A (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN109670581B (zh) | 一种计算装置及板卡 | |
CN112051981B (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 |