CN112381220A - 一种神经网络张量处理器 - Google Patents
一种神经网络张量处理器 Download PDFInfo
- Publication number
- CN112381220A CN112381220A CN202011421828.6A CN202011421828A CN112381220A CN 112381220 A CN112381220 A CN 112381220A CN 202011421828 A CN202011421828 A CN 202011421828A CN 112381220 A CN112381220 A CN 112381220A
- Authority
- CN
- China
- Prior art keywords
- data
- neural network
- configuration information
- module
- controller
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 50
- 238000004364 calculation method Methods 0.000 claims abstract description 92
- 230000006870 function Effects 0.000 claims abstract description 20
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 11
- 238000013500 data storage Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 3
- QGWYLXFVPIMLDO-UHFFFAOYSA-N ethyl n-[4-[benzyl(2-phenylethyl)amino]-2-(2,4,5-trimethoxyphenyl)-1h-imidazo[4,5-c]pyridin-6-yl]carbamate Chemical compound N=1C(NC(=O)OCC)=CC=2NC(C=3C(=CC(OC)=C(OC)C=3)OC)=NC=2C=1N(CC=1C=CC=CC=1)CCC1=CC=CC=C1 QGWYLXFVPIMLDO-UHFFFAOYSA-N 0.000 claims 1
- 241000282414 Homo sapiens Species 0.000 description 11
- 238000000034 method Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 7
- 210000004556 brain Anatomy 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 235000019580 granularity Nutrition 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种神经网络张量处理器,包括主控制器、重构控制器和数据流计算引擎;主控制器用于向外部控制单元提供所述神经网络张量处理器的控制和状态接口,及提供第一配置信息和第一起始信号给重构控制器;重构控制器接收第一配置信息和第一起始信号,在第一起始信号有效后,获取外部存储器的重构指令,并解析重构指令生成第二配置信息和第二起始信号;数据流计算引擎接收第二配置信息和第二起始信号,根据第二配置信息进行功能配置,在第二起始信号有效后,获取外部存储器的数据和参数以执行运算,并将计算结果写入外部存储器中。本发明的张量处理器适用于对神经网络算法进行集中化计算,具备通用性和可扩展性。
Description
技术领域
本发明涉及人工智能芯片技术领域,尤其涉及一种神经网络张量处理器。
背景技术
处理器技术是人类科技进步的重大体现之一。然而,处理器的抽象模型却十分简单:(1)处理器都由存储器、输入/输出接口、控制单元和计算单元组成;(2)处理器循环执行下列操作:“取指令/数据、执行指令、写数据”;(3)处理器的行为完全由指令和数据决定。无论处理器多复杂,无论是CPU、GPU或DSP,上述模型全部适用。这个处理器抽象模型就是著名的“冯诺依曼结构”,其核心是把用于控制的程序当作数据来存储,这种基于存储程序的计算模型一直沿用至今,无论半导体工艺多先进,处理器结构多复杂,存储程序型计算从未改变。
在存储程序计算中,指令和数据是所有操作的核心,直观地按照指令和数据来划分,传统计算体系结构可以分为四类:
1)SISD(单指令单数据):最早的计算体系结构,任何时刻,只有一条指令执行,处理一个数据。
2)SIMD(单指令多数据):一种并行计算体系,任何时刻,只有一条指令执行,处理多个数据。大多数现代处理器都拥有这类体系结构扩展(例如ARM NEON扩展指令和X86MMX/SSE扩展指令)。
3)MISD(多指令单数据):多条指令处理一个数据,目前未被普遍使用。
4)MIMD(多指令多数据):一种并行计算体系,多个核心(运行不同指令)处理多个数据,大多数MIMD体系实际由包含SIMD的多个核心组成。
然而,随着数据密集型任务的出现,数据并行成为计算性能的关键瓶颈。SIMD架构是用于增加数据并行的直观选择,然而,把多个数据同步打包成一个向量数据并用一条指令执行,这极大地限制了数据并行度的发掘。
对此,英伟达提出了SIMT(单指令多线程)架构。相比于SIMD,SIMT的数据由不同线程维护,数据之间是完全异步的关系,各自完全独立,可以实现大量异步数据的完全并行,也即线程级的数据并行。这样的架构极大地增加了数据的并行维度。典型的,1个16核现代先进CPU通常只能同时执行16或32个线程,而一个现代先进GPU同时执行的线程数高达几千个。
显而易见的,在存储程序计算中,提高计算性能就是提高指令和数据的执行性能。在过去的近50年发展历程中,以英特尔、英伟达为代表的美国企业引领了处理器技术的重要发展。根据计算任务的特点:指令密集型或数据密集型,处理器架构也按照指令优化和数据优化两大方向发展,并衍生出CPU、GPU两大处理器类型。CPU是最早的处理器,其技术发展主要面向指令执行效率的优化,包括更高的频率、更高效的指令集(RISC)、更多的指令级并行(超标量)、更多的任务级并行(超线程、多核)等。GPU是随着数据密集型任务的增多而逐渐发展起来的处理器,其技术发展主要面向数据执行效率的优化,包括更多核心数,更多线程(SIMT)、更高效的内存结构,更高效的编程模型等。
在通用并行计算这条路上,CPU/GPU架构探索了近50年,拥有一系列复杂的“组合拳”来完成多种粒度的并行计算,从而实现最高能效比的高性能计算,软硬件技术壁垒之高很难打破。
从一开始,计算机编程就存在两种模型,一种模拟人类行为结果,一种模拟人类大脑。
1)模拟人类行为结果的编程模型(称为传统编程模型),本质是基于人类认知的数学抽象进行编程。在该模型下,计算机的一切行为由人类的抽象思维决定,人类编写的程序代码变成确定的执行序列,并被特定的硬件使用。
2)模拟人类大脑的编程模型(称为神经网络编程模型),本质是基于人类大脑的生物抽象进行编程。在该模型下,计算机的一切行为由神经网络结构和知识参数决定,训练获得的知识通过数据的形式存储,并被特定硬件使用。
在过去的70年间,由于各种原因,模拟人类行为结果的编程模型得到蓬勃发展,并成为如今主流,目前几乎所有软件编程都属于此类。而模拟人类大脑的编程模型则历经几次浪潮与寒冬,进展缓慢,目前基于神经网络/深度学习技术的编程属于此类。
CPU/GPU是基于传统编程模型打造的处理器。CPU/GPU也可以运行神经网络算法,但这是通过把神经网络算法转换成传统编程模型后实现的。大量事实证明,神经网络编程模型十分重要,是下一代智能计算体系的核心关键。如此重要的体系需要一种比CPU、GPU更高效的架构来执行。
神经网络编程模型的本质是计算图模型,计算图的输入/输出是张量数据,计算图的类型代表操作类型。因此,直观的,最适合于神经网络编程模型的计算体系结构,是Graph/Tensor计算体系,其中,处理器的功能由计算图类型决定,而数据则是计算图的输入/输出张量。然而,计算图这一层级的粒度太粗,各类型间并没有太大的相关性,一个典型的神经网络计算由Convolution、Pooling、BN、Scale、RELU等组成,它们之间的行为差异巨大,如果处理器按照计算图操作的粒度去设计,这就意味着需要为每一个计算图操作(或某几个)设计专门的计算硬件(正如NVIDIA DLA那样,NVDLA为卷积、池化和BN专门设计了不同的计算电路),这样的代价是巨大的,而且也不具备可扩展性。
由于人工智能计算任务是数据密集型任务,传统处理器的指令流水线架构会引入过多的指令冗余,不利于计算效率的提高。因此,人工智能计算更适合于数据流水线架构。
发明内容
本发明旨在克服上述现有技术的至少一种缺陷(不足),提供一种神经网络张量处理器,用于对神经网络算法进行集中化计算。
一种神经网络张量处理器,包括主控制器、重构控制器和数据流计算引擎;所述主控制器用于向外部控制单元提供所述神经网络张量处理器的控制和状态接口,及提供第一配置信息和第一起始信号给重构控制器;所述重构控制器接收来自所述主控制器的所述第一配置信息和所述第一起始信号,并在所述第一起始信号有效后,获取外部存储器的重构指令,并解析重构指令生成第二配置信息和第二起始信号;所述数据流计算引擎接收来自重构控制器的所述第二配置信息和所述第二起始信号,根据所述第二配置信息进行功能配置,并在所述第二起始信号有效后,获取外部存储器的数据和参数以执行运算,并将计算结果写入外部存储器中。
张量处理器采用主控制器、重构控制器和数据流计算引擎组成的三层结构。其中,主控制器的主要作用是为外部控制单元提供传统的软件控制和状态接口,也即在传统编程模型下,通过如C语言等软件程序实现对张量处理器的配置与启动控制等操作;重构控制器的主要作用是在计算图编程模型下对数据流计算引擎进行算子类型定义操作,使数据流计算引擎在每次计算时匹配计算图模型中的某个计算图,从而使神经网络张量处理器具备通用性。
张量处理器在实现一次运算前,通过重构控制器对数据流计算引擎进行功能配置,从而在数据流计算引擎的计算过程中无须主控制器等内部或外部控制单元的干预,从而可以大大提高神经网络的计算效率。
进一步的,所述主控制器包括寄存器存取单元和寄存器单元;所述寄存器存取单元接收来自外部控制单元的命令;根据外部控制单元的命令中给出的寄存器地址和读写类型,完成所述寄存器单元的写操作或者读操作;所述寄存器单元存储有所述第一配置信息,所述第一配置信息包括算法配置基地址、数据基地址和参数基地址。
主控制器仅需要提供少量的第一配置信息即可完成重构控制器的配置和计算指令的发布。
进一步的,所述重构控制器包括重构指令获取单元和重构指令解码单元,所述重构控制器接收来自所述主控制器的所述第一配置信息和所述第一起始信号,所述第一起始信号有效后,所述重构指令获取单元根据所述第一配置信息向外部存储器获取重构指令,并由所述重构指令解码单元完成重构指令解码操作,生成所述第二配置信息和所述第二起始信号。
进一步的,所述第二配置信息包括所述数据流计算引擎的输入数据的地址、输入参数的地址、输出数据的地址以及算子类型。数据流计算引擎通过功能配置和输入输出的接口配置,从而在数据流计算引擎的计算过程中无须主控制器等内部或外部控制单元干预,从而可以大大提高神经网络的计算效率。
进一步的,所述数据流计算引擎包括顺序连接的4D数据存储访问模块、片上存储器、4D计算模块,和顺序连接的1D数据存储访问模块、1D计算模块和直接存储器写模块;所述4D计算模块和所述1D计算模块顺序连接,所述4D计算模块的输出为所述1D计算模块的第二输入;
所述4D计算模块用于实现一个张量算子;
所述1D计算模块用于实现一个线性算子和/或一个非线性算子;
所述数据流计算引擎接收来自重构控制器的所述第二配置信息和所述第二起始信号,所述第二起始信号有效后,所述4D数据存储访问模块从外部存储器获取4D计算模块所需的数据;所述1D数据存储访问模块从外部存储器获取所述1D计算模块所需的数据;
所述片上存储器用于缓存所述4D计算模块所需数据;
所述直接存储器写模块用于将所述1D计算模块的输出写入外部存储器中。
一个神经网络算法通常由多种不同类型的神经网络计算层组成,如卷积、池化、线性激活、非线性激活、全连接等。本发明所述的张量处理器的数据流引擎提供了4D计算模块和1D计算模块,可以匹配大部分的神经网络计算层,如卷积、池化、线性激活、非线性激活、全连接等计算层,故而该数据流引擎能够通用于神经网络算法计算。同时所述数据流计算引擎一体化集成了4D数据存储访问模块、片上存储器、4D计算模块、1D数据存储访问模块和1D计算模块,可以使得计算高效、简单,使得运行该数据流引擎的计算电路可以运行在较高的频率,再配合高效的数据控制系统(包括高效的软件编译器系统),可以实现较高的乘法累加单元利用率。片上存储器中所缓存的数据会被4D计算模块重复使用,这些数据使用完毕后会被覆盖以提高片上存储器的利用率。
进一步的,所述神经网络张量处理器还包括本地主设备总线和主设备适配器,所述重构控制器与所述数据流计算引擎均设置有存储器读写访问接口,各所述存储器读写访问接口统一通过所述本地主设备总线和所述主设备适配器与外部系统总线连接;
所述本地主设备总线用于实现多对一和一对多的仲裁选择;
所述主设备适配器用于外部主设备总线时钟和所述神经网络张量处理器的内核时钟的时钟同步以及所述本地主设备总线和外部系统总线的数据位宽转换功能。
为了提高系统整合的灵活度,张量处理器采用系统内核与AXI总线接口异步时钟的方案,以实现张量处理器内核与外部系统间的隔离。外部主设备总线时钟和神经网络张量处理器的内核时钟是异步时钟,需要通过适配器进行匹配。同时外部系统总线通常为标准总线,其外部主设备总线的数据位宽需要和系统中的其他外部设备协调并保持一致,根据不同的系统需求,外部主设备总线数据位宽变化多样,因此需要通过适配器进行匹配。
进一步的,所述主控制器通过本地从设备总线和外部系统连接,所述本地从设备总线用于外部从设备总线时钟和所述内核时钟的时钟同步,以确保读写数据的正确传输。
进一步的,所述主设备适配器与外部系统总线连接的数据位宽为64×2N位,其中N为非负整数。在目前应用中,外部系统总线的数据位宽可以采用64位、128位、256位和512位中的一种。
进一步的,所述主设备适配器连接的外部系统总线是AXI3或AXI4协议总线。AXI是高级扩展接口,是一种常用的总线标准,协议总线适用于本发明的张量处理器等以数据为主导的大量数据的传输应用,同时也有利于与其他系统的方便对接。
附图说明
图1是本发明的神经网络张量处理器的硬件架构框图;
图2是本发明的神经网络张量处理器的一次运算的重构配置过程;
图3是本发明的神经网络张量处理器的一次运算的计算过程。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
实施例1
如图1所示,本实施例技术方案是提供一种神经网络张量处理器的硬件架构,图1所示。其主要由主控制器(Host Controller)、重构控制器(ReconfigurationController)、数据流计算引擎(Data-flow Computing Engine)三部分组成。
为了提高系统整合的灵活度,张量处理器采用系统内核与AXI总线接口异步时钟的方案,系统使用四路完全独立的异步时钟来实现张量处理器内核与外部系统间的隔离。其中,AXI从设备接口使用一路AXI从设备总线时钟(slave clk),AXI主设备接口使用两路AXI主设备总线时钟(master0 clk和master1 clk),张量处理器内核使用内核时钟(coreclk)。
主控制器的主要作用是对外部控制单元提供传统的软件控制和状态接口,也即在传统编程模型下,通过如C语言等软件程序实现对张量处理器的配置与启动控制等操作,使得外部控制单元(如连接到相同AXI总线的CPU)可以通过AXI协议总线对张量处理器进行控制,如配置算法数据地址、图像数据地址、计算使能等。外部控制单元通过主控制器也可以获得张量处理器的内部状态,如计算结束状态、计算层数等。主控制器通过本地从设备总线与外部系统连接。本地从设备总线的主要作用是实现内核时钟(core clk)与AXI从设备总线时钟(slave clk)的时钟同步功能,确保读写数据正确传输。
主控制器由寄存器和寄存器存取单元组成。寄存器存取单元接收来自系统外部控制单元的命令(寄存器地址、读写类型等),完成寄存器模块的写或者读操作。对于寄存器所包含的控制和状态内容,一种实现方式如下表所示:
重构控制器的主要作用是在计算图编程模型下对数据流计算引擎进行算子类型定义操作,使数据流计算引擎在每次计算时匹配计算图模型中的某个计算图,从而使神经网络张量处理器具备通用性。
具体的,重构控制器从外部存储器中获取重构指令、解析重构指令并根据重构指令配置数据流计算引擎。重构指令的内容与数据流计算引擎的实现相对应,其最终目的是配置数据流计算引擎中的关键部位,使数据流计算引擎实现某种功能的计算,如卷积计算。
重构控制器的配置内容包括:数据流计算引擎的输入数据的地址、输入参数的地址、输出数据的地址以及算子类型。
重构控制器由重构指令获取单元和重构指令解码单元组成。重构控制器接收来自主控制器的配置信息和起始信号。起始信号有效后,重构指令获取单元根据配置信息主动向外部存储器(如连接到相同AXI总线的SDRAM)获取重构指令,并由重构指令解码单元完成指令解码操作,生成配置信息和起始信号。
数据流计算引擎由4D数据存储访问模块、片上存储器、4D计算模块、1D数据存储访问模块、1D计算模块、直接存储器写模块组成。数据流计算引擎是一种纯数据通路计算模块,其功能由来自重构控制器的配置信息所决定。
数据流计算引擎接收来自重构控制器的配置信息和起始信号。起始信号有效后,4D数据存储访问模块主动向外部存储器(如连接到相同AXI总线的SDRAM)获取4D计算模块所需的数据,1D数据存储访问模主动向外部存储器(如连接到相同AXI总线的SDRAM)获取1D计算模块所需的数据。
4D数据存储访问模块获取的数据包括神经网络计算所需的特征数据和参数数据,都统一存储在片上存储器中。片上存储器中所缓存的数据会被4D计算模块重复使用,这些数据使用完毕后会被覆盖以提高片上存储器的利用率。
1D数据存储访问模块获取的数据不经过存储器缓存,直接被1D计算模块使用。
张量处理器所有的计算功能都由顺序连接的4D计算模块和1D计算模块实现。最好情况下,可以在硬件上实现一个张量算子(如卷积层)、一个线性算子(如BN层(BatchNormalization))和一个激活算子(如Sigmoid激活函数)的融合计算。该融合计算优化由编译器自动实现。
计算完成后,数据通过直接存储器写模块主动写入外部存储器。
重构控制器与数据流计算引擎均设置有存储器读写访问接口,这些存储器读写访问接口统一通过本地主设备总线和主设备适配器与外部系统连接。本地主设备总线主要实现多对一和一对多的仲裁选择。主设备适配器主要起着时钟同步与数据位宽转换功能,其所连接的两路时钟主设备总线时钟master clk与内核时钟core clk是完全异步的,其所连接外部系统总线的数据位宽可以根据具体设计在64bit、128bit、256bit、512bit间进行选择,概括地说,适于大量数据计算的外部系统总线采用的数据位宽通常为64bit的2N倍,其中N为非负整数。
一个神经网络算法由多个不同功能的算子组成,完成一个神经网络算法的计算任务就是按一定顺序完成多个不同功能算子的运算任务。
进一步的,神经网络张量处理器的一次运算实现1~3个算子功能(最大情况下,在4D计算模块中实现一个张量算子,在1D计算模块中实现一个线性算子和一个激活算子)。
一次算子运算分为重构配置和计算两部分。首先,在算子运算的开始阶段,重构控制器完成重构指令的获取以及数据流计算引擎的配置工作,如图2所示。
配置完成后,数据流计算引擎将根据具体配置实现1~3个算子功能,并按照数据流的方式执行获取数据、计算、输出数据的操作,如图3所示。
所有数据计算完成后,该次运算结束。重构控制器接着获取下一个算子所需的配置信息,从而开启新的算子运行任务。
信号列表
神经网络张量处理器的I/O信号接口整体框图如下表所示,其中AXI从设备接口的信号统一命名为为s00_axi_*,AXI主设备P0接口的信号统一命名为MDBB_AXI_*,AXI主设备P1接口的信号统一命名为MDBS_AXI_*。
信号列表及描述如下:
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (9)
1.一种神经网络张量处理器,其特征在于,包括主控制器、重构控制器和数据流计算引擎;所述主控制器用于向外部控制单元提供所述神经网络张量处理器的控制和状态接口,及提供第一配置信息和第一起始信号给重构控制器;所述重构控制器接收来自所述主控制器的所述第一配置信息和所述第一起始信号,并在所述第一起始信号有效后,获取外部存储器的重构指令,并解析重构指令生成第二配置信息和第二起始信号;所述数据流计算引擎接收来自重构控制器的所述第二配置信息和所述第二起始信号,根据所述第二配置信息进行功能配置,并在所述第二起始信号有效后,获取外部存储器的数据和参数以执行运算,并将计算结果写入外部存储器中。
2.如权利要求1所述的神经网络张量处理器,其特征在于,所述主控制器包括寄存器存取单元和寄存器单元;所述寄存器存取单元接收来自外部控制单元的命令;根据外部控制单元的命令中给出的寄存器地址和读写类型,完成所述寄存器单元的写操作或者读操作;所述寄存器单元存储有所述第一配置信息,所述第一配置信息包括算法配置基地址、数据基地址和参数基地址。
3.如权利要求1所述的神经网络张量处理器,其特征在于,所述重构控制器包括重构指令获取单元和重构指令解码单元,所述重构控制器接收来自所述主控制器的所述第一配置信息和所述第一起始信号,所述第一起始信号有效后,所述重构指令获取单元根据所述第一配置信息向外部存储器获取重构指令,并由所述重构指令解码单元完成重构指令解码操作,生成所述第二配置信息和所述第二起始信号。
4.如权利要求3所述的神经网络张量处理器,其特征在于,所述第二配置信息包括所述数据流计算引擎的输入数据的地址、输入参数的地址、输出数据的地址以及算子类型。
5.如权利要求1所述的神经网络张量处理器,其特征在于,所述数据流计算引擎包括顺序连接的4D数据存储访问模块、片上存储器、4D计算模块,和顺序连接的1D数据存储访问模块、1D计算模块和直接存储器写模块;所述4D计算模块和所述1D计算模块顺序连接,所述4D计算模块的输出为所述1D计算模块的第二输入;
所述4D计算模块用于实现一个张量算子;
所述1D计算模块用于实现一个线性算子和/或一个非线性算子;
所述数据流计算引擎接收来自重构控制器的所述第二配置信息和所述第二起始信号,所述第二起始信号有效后,所述4D数据存储访问模块从外部存储器获取4D计算模块所需的数据;所述1D数据存储访问模块从外部存储器获取所述1D计算模块所需的数据;
所述片上存储器用于缓存所述4D计算模块所需数据;
所述直接存储器写模块用于将所述1D计算模块的输出写入外部存储器中。
6.如权利要求1所述的神经网络张量处理器,其特征在于,还包括本地主设备总线和主设备适配器,所述重构控制器与所述数据流计算引擎均设置有存储器读写访问接口,各所述存储器读写访问接口统一通过所述本地主设备总线和所述主设备适配器与外部系统总线连接;
所述本地主设备总线用于实现多对一和一对多的仲裁选择;
所述主设备适配器用于外部主设备总线时钟和所述神经网络张量处理器的内核时钟的时钟同步以及所述本地主设备总线和外部系统总线的数据位宽转换功能。
7.如权利要求6所述的神经网络张量处理器,其特征在于,所述主控制器通过本地从设备总线和外部系统连接,所述本地从设备总线用于外部从设备总线时钟和所述内核时钟的时钟同步。
8.如权利要求6所述的神经网络张量处理器,其特征在于,所述主设备适配器与外部系统总线连接的数据位宽为64×2N位,其中N为非负整数。
9.如权利要求8所述的神经网络张量处理器,其特征在于,所述主设备适配器连接的外部系统总线是AXI3或AXI4协议总线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011421828.6A CN112381220B (zh) | 2020-12-08 | 2020-12-08 | 一种神经网络张量处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011421828.6A CN112381220B (zh) | 2020-12-08 | 2020-12-08 | 一种神经网络张量处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112381220A true CN112381220A (zh) | 2021-02-19 |
CN112381220B CN112381220B (zh) | 2024-05-24 |
Family
ID=74589467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011421828.6A Active CN112381220B (zh) | 2020-12-08 | 2020-12-08 | 一种神经网络张量处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112381220B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113191491A (zh) * | 2021-03-16 | 2021-07-30 | 杭州慧芯达科技有限公司 | 多维度并行的人工智能处理器架构 |
CN113379047A (zh) * | 2021-05-25 | 2021-09-10 | 北京微芯智通科技合伙企业(有限合伙) | 一种实现卷积神经网络处理的系统及方法 |
CN114118389A (zh) * | 2022-01-28 | 2022-03-01 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、设备及存储介质 |
CN114372012A (zh) * | 2021-12-21 | 2022-04-19 | 中国科学院深圳先进技术研究院 | 一种通用、可配置的高能效池化计算单行输出系统和方法 |
CN115599442A (zh) * | 2022-12-14 | 2023-01-13 | 成都登临科技有限公司(Cn) | 一种ai芯片、电子设备及张量处理方法 |
CN116362316A (zh) * | 2023-05-29 | 2023-06-30 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN117724664A (zh) * | 2024-02-18 | 2024-03-19 | 芯来智融半导体科技(上海)有限公司 | 数据写入方法、装置、设备及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370616B1 (en) * | 2000-04-04 | 2002-04-09 | Compaq Computer Corporation | Memory interface controller for datum raid operations with a datum multiplier |
JP2011103025A (ja) * | 2009-11-10 | 2011-05-26 | Renesas Electronics Corp | データ入出力装置およびそれを用いたデータ処理装置 |
CN105630735A (zh) * | 2015-12-25 | 2016-06-01 | 南京大学 | 一种基于可重构计算阵列的协处理器 |
CN105930201A (zh) * | 2016-04-25 | 2016-09-07 | 南京大学 | 一种可重构专用处理器核的功能模拟器 |
CN105930598A (zh) * | 2016-04-27 | 2016-09-07 | 南京大学 | 一种基于控制器流水架构的层次化信息处理方法及电路 |
CN105955923A (zh) * | 2016-04-27 | 2016-09-21 | 南京大学 | 一种可配置流水信号处理核的高效率控制器及控制方法 |
CN106933510A (zh) * | 2017-02-27 | 2017-07-07 | 华中科技大学 | 一种存储控制器 |
CN109472356A (zh) * | 2018-12-29 | 2019-03-15 | 南京宁麒智能计算芯片研究院有限公司 | 一种可重构神经网络算法的加速装置及方法 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN111160545A (zh) * | 2019-12-31 | 2020-05-15 | 北京三快在线科技有限公司 | 人工神经网络处理系统及其数据处理方法 |
CN111401511A (zh) * | 2019-09-24 | 2020-07-10 | 上海寒武纪信息科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN111813449A (zh) * | 2019-04-12 | 2020-10-23 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN112580792A (zh) * | 2020-12-08 | 2021-03-30 | 厦门壹普智慧科技有限公司 | 一种神经网络多核张量处理器 |
-
2020
- 2020-12-08 CN CN202011421828.6A patent/CN112381220B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6370616B1 (en) * | 2000-04-04 | 2002-04-09 | Compaq Computer Corporation | Memory interface controller for datum raid operations with a datum multiplier |
JP2011103025A (ja) * | 2009-11-10 | 2011-05-26 | Renesas Electronics Corp | データ入出力装置およびそれを用いたデータ処理装置 |
CN105630735A (zh) * | 2015-12-25 | 2016-06-01 | 南京大学 | 一种基于可重构计算阵列的协处理器 |
CN105930201A (zh) * | 2016-04-25 | 2016-09-07 | 南京大学 | 一种可重构专用处理器核的功能模拟器 |
CN105930598A (zh) * | 2016-04-27 | 2016-09-07 | 南京大学 | 一种基于控制器流水架构的层次化信息处理方法及电路 |
CN105955923A (zh) * | 2016-04-27 | 2016-09-21 | 南京大学 | 一种可配置流水信号处理核的高效率控制器及控制方法 |
CN106933510A (zh) * | 2017-02-27 | 2017-07-07 | 华中科技大学 | 一种存储控制器 |
CN109472356A (zh) * | 2018-12-29 | 2019-03-15 | 南京宁麒智能计算芯片研究院有限公司 | 一种可重构神经网络算法的加速装置及方法 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN111813449A (zh) * | 2019-04-12 | 2020-10-23 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111401511A (zh) * | 2019-09-24 | 2020-07-10 | 上海寒武纪信息科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN111160545A (zh) * | 2019-12-31 | 2020-05-15 | 北京三快在线科技有限公司 | 人工神经网络处理系统及其数据处理方法 |
CN112580792A (zh) * | 2020-12-08 | 2021-03-30 | 厦门壹普智慧科技有限公司 | 一种神经网络多核张量处理器 |
Non-Patent Citations (1)
Title |
---|
张潇等: "面向多核处理器的机器学习推理框架", 计算机研究与发展, vol. 56, no. 9, 30 September 2019 (2019-09-30), pages 1977 - 1987 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113191491A (zh) * | 2021-03-16 | 2021-07-30 | 杭州慧芯达科技有限公司 | 多维度并行的人工智能处理器架构 |
CN113191491B (zh) * | 2021-03-16 | 2022-08-09 | 杭州慧芯达科技有限公司 | 多维度并行的人工智能处理器架构 |
CN113379047A (zh) * | 2021-05-25 | 2021-09-10 | 北京微芯智通科技合伙企业(有限合伙) | 一种实现卷积神经网络处理的系统及方法 |
CN113379047B (zh) * | 2021-05-25 | 2024-04-05 | 北京微芯智通科技合伙企业(有限合伙) | 一种实现卷积神经网络处理的系统及方法 |
CN114372012A (zh) * | 2021-12-21 | 2022-04-19 | 中国科学院深圳先进技术研究院 | 一种通用、可配置的高能效池化计算单行输出系统和方法 |
CN114372012B (zh) * | 2021-12-21 | 2024-02-20 | 中国科学院深圳先进技术研究院 | 一种通用、可配置的高能效池化计算单行输出系统和方法 |
CN114118389A (zh) * | 2022-01-28 | 2022-03-01 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、设备及存储介质 |
CN115599442A (zh) * | 2022-12-14 | 2023-01-13 | 成都登临科技有限公司(Cn) | 一种ai芯片、电子设备及张量处理方法 |
CN116362316A (zh) * | 2023-05-29 | 2023-06-30 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN116362316B (zh) * | 2023-05-29 | 2023-12-12 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN117724664A (zh) * | 2024-02-18 | 2024-03-19 | 芯来智融半导体科技(上海)有限公司 | 数据写入方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112381220B (zh) | 2024-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112381220B (zh) | 一种神经网络张量处理器 | |
CN112580792B (zh) | 一种神经网络多核张量处理器 | |
Gschwend | Zynqnet: An fpga-accelerated embedded convolutional neural network | |
Mittal et al. | A survey of deep learning on cpus: opportunities and co-optimizations | |
Kapasi et al. | The Imagine stream processor | |
CN103714039B (zh) | 通用计算数字信号处理器 | |
US20130226535A1 (en) | Concurrent simulation system using graphic processing units (gpu) and method thereof | |
US6237021B1 (en) | Method and apparatus for the efficient processing of data-intensive applications | |
Marowka | Back to thin-core massively parallel processors | |
WO2020062086A1 (zh) | 选择处理器的方法和装置 | |
JPH02183362A (ja) | コンピュータシステム | |
WO2020083050A1 (zh) | 一种数据流处理方法及相关设备 | |
WO2022253075A1 (zh) | 一种编译方法及相关装置 | |
CN114035916A (zh) | 计算图的编译、调度方法及相关产品 | |
Verma et al. | Accelerating workloads on fpgas via opencl: A case study with opendwarfs | |
CN112051981A (zh) | 一种数据流水线计算路径结构及单线程数据流水线系统 | |
Lin et al. | swFLOW: A dataflow deep learning framework on sunway taihulight supercomputer | |
Wang et al. | An automatic-addressing architecture with fully serialized access in racetrack memory for energy-efficient CNNs | |
Inagaki et al. | Performance evaluation of a 3d-stencil library for distributed memory array accelerators | |
Turkington et al. | FPGA based acceleration of the LINPACK benchmark: A high level code transformation approach | |
CN106030517B (zh) | 用于仿真共享内存架构中的长延迟操作的架构 | |
Dey et al. | Embedded support vector machine: Architectural enhancements and evaluation | |
Brandalero et al. | (Special topic submission) enabling domain-specific architectures with an open-source soft-core GPGPU | |
Chen et al. | ARAPrototyper: Enabling rapid prototyping and evaluation for accelerator-rich architectures | |
Yang et al. | Back to Homogeneous Computing: A Tightly-Coupled Neuromorphic Processor With Neuromorphic ISA |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |