CN112580792B - 一种神经网络多核张量处理器 - Google Patents
一种神经网络多核张量处理器 Download PDFInfo
- Publication number
- CN112580792B CN112580792B CN202011423696.0A CN202011423696A CN112580792B CN 112580792 B CN112580792 B CN 112580792B CN 202011423696 A CN202011423696 A CN 202011423696A CN 112580792 B CN112580792 B CN 112580792B
- Authority
- CN
- China
- Prior art keywords
- data
- configuration information
- neural network
- controller
- calculation
- 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.)
- Active
Links
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
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
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)。
主控制器的作用是对外提供控制和状态接口,使得外部控制单元(如连接到相同AXI总 线的CPU)可以通过AXI协议总线对张量处理器进行控制,如配置算法数据地址、图像数据 地址、计算使能等。外部控制单元通过主控制器也可以获得张量处理器的内部状态,如计算 结束状态、计算层数等。主控制器通过本地从设备总线与外部系统连接。本地从设备总线的主要作用是实现内核时钟(core clk)与AXI从设备总线时钟(slave clk)的时钟同步功能, 确保读写数据正确传输。
主控制器由寄存器和寄存器存取单元组成。寄存器存取单元接收来自系统外部控制单元 的命令(寄存器地址、读写类型等),完成寄存器模块的写或者读操作。对于寄存器所包含 的控制和状态内容,一种实现方式如下表所示:
重构控制器的主要作用是在计算图编程模型下对数据流计算引擎进行算子类型定义操 作,使数据流计算引擎在每次计算时匹配计算图模型中的某个计算图,从而使神经网络张量 处理器具备通用性。
具体的,重构控制器从外部存储器中获取重构指令、解析重构指令并根据重构指令配置 数据流计算引擎。重构指令的内容与数据流计算引擎的实现相对应,其最终目的是配置数据 流计算引擎中的关键部位,使数据流计算引擎实现某种功能的计算,如卷积计算。
重构控制器可以单独配置每个数据流计算引擎,其配置内容包括输入数据的地址、输入 参数的地址、输出数据的地址以及算子类型。三种配置可以是相互独立的,不必相同。因此, 多个数据流计算引擎间相互独立,多个数据流计算引擎可以被配置为完全相同的算子类型并 针对多个不同的数据进行计算,从而实现多数据并行提高计算吞吐率;也可以配置为不同的算子类型并针对同一个数据的不同部分进行并行计算,从而实现单数据并行降低计算延迟。 各数据流计算引擎通过本地主设备总线共同访问同一个AXI总线。
重构控制器由重构指令获取单元和重构指令解码单元组成。重构控制器接收来自主控制 器的配置信息和起始信号。起始信号有效后,重构指令获取单元根据配置信息主动向外部存 储器(如连接到相同AXI总线的SDRAM)获取重构指令,并由重构指令解码单元完成指令 解码操作,生成配置信息和和起始信号。
数据流计算引擎由4D数据存储访问模块、片上存储器、4D计算模块、1D数据存储访问模块、1D计算模块、直接存储器写模块组成。数据流计算引擎是一种纯数据通路计算模块, 其功能由来自重构控制器的配置信息所决定。
数据流计算引擎接收来自重构控制器的配置信息和起始信号。起始信号有效后,4D数据 存储访问模块主动向外部存储器(如连接到相同AXI总线的SDRAM)获取4D计算模块所 需的数据,1D数据存储访问模主动向外部存储器(如连接到相同AXI总线的SDRAM)获取1D计算模块所需的数据。
4D数据存储访问模块获取的数据包括神经网络计算所需的特征数据和参数数据,都统一 存储在片上存储器中。片上存储器中所缓存的数据会被4D计算模块重复使用,这些数据使 用完毕后会被覆盖以提高片上存储器的利用率。
1D数据存储访问模块获取的数据不经过存储器缓存,直接被1D计算模块使用。
张量处理器所有的计算功能都由顺序连接的4D计算模块和1D计算模块实现。最好情况 下,可以在硬件上实现一个张量算子(如卷积)、一个线性算子(如BN)和一个激活算子(如 Sigmoid)的融合计算。该融合计算优化由编译器自动实现。
计算完成后,数据通过直接存储器写模块主动写入外部存储器。
重构控制器与数据流计算引擎均设置有存储器读写访问接口,这些存储器读写访问接口 统一通过本地主设备总线和主设备适配器与外部系统连接。本地主设备总线主要实现多对一 和一对多的仲裁选择。主设备适配器主要起着时钟同步与数据位宽转换功能,其所连接的两 路时钟主设备总线时钟master clk与内核时钟core clk是完全异步的,其所连接外部系统总线 的数据位宽可以根据具体设计在64bit、128bit、256bit、512bit间进行选择,概括地说,适于 大量数据计算的外部系统总线采用的数据位宽通常为64bit的2N倍,其中N为非负整数。
一个神经网络算法由多个不同功能的算子组成,完成一个神经网络算法的计算任务就是 按一定顺序完成多个不同功能算子的运算任务。
进一步的,神经网络多核张量处理器一次运算实现1xN~3xN个算子功能,其中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.一种神经网络多核张量处理器,其特征在于,包括主控制器、重构控制器和多个数据流计算引擎;所述主控制器用于向外部控制单元提供所述神经网络多核张量处理器的控制和状态接口,及提供第一配置信息和第一起始信号给重构控制器;所述重构控制器接收来自主控制器的所述第一配置信息和所述第一起始信号,并在所述第一起始信号有效后,获取外部存储器的重构指令,并解析重构指令生成多组第二配置信息和第二起始信号;所述数据流计算引擎接收来自重构控制器的所述第二配置信息和所述第二起始信号,根据第二配置信息进行功能配置,并在所述第二起始信号有效后,获取外部存储器的数据和参数以执行运算,并将计算结果写入外部存储器中;
所述数据流计算引擎包括顺序连接的4D数据存储访问模块、片上存储器、4D计算模块,和顺序连接的1D数据存储访问模块、1D计算模块和直接存储器写模块;所述4D计算模块和所述1D计算模块顺序连接,所述4D计算模块的输出为所述1D计算模块的第二输入;
所述4D计算模块用于实现一个张量算子;
所述1D计算模块用于实现一个线性算子和/或一个非线性算子;
所述数据流计算引擎接收来自重构控制器的所述第二配置信息和所述第二起始信号,所述第二起始信号有效后,所述4D数据存储访问模块从外部存储器获取4D计算模块所需的数据;所述1D数据存储访问模块从外部存储器获取所述1D计算模块所需的数据;
所述片上存储器用于缓存所述4D计算模块所需数据;
所述直接存储器写模块用于将所述1D计算模块的输出写入外部存储器中。
2.如权利要求1所述的神经网络多核张量处理器,其特征在于,所述主控制器包括寄存器存取单元和寄存器单元;所述寄存器存取单元接收来自外部控制单元的命令;根据外部控制单元的命令中给出的寄存器地址和读写类型,完成所述寄存器单元的写操作或者读操作;所述寄存器单元存储有所述第一配置信息,所述第一配置信息包括算法配置基地址、数据基地址和参数基地址。
3.如权利要求1所述的神经网络多核张量处理器,其特征在于,所述重构控制器包括重构指令获取单元和重构指令解码单元,所述重构控制器接收来自所述主控制器的所述第一配置信息和所述第一起始信号,所述第一起始信号有效后,所述重构指令获取单元根据所述第一配置信息主动向外部存储器获取重构指令,并由所述重构指令解码单元完成重构指令解码操作,生成多组所述第二配置信息和所述第二起始信号,每组所述第二配置信息和所述第二起始信号对应一个所述数据流计算引擎。
4.如权利要求3所述的神经网络多核张量处理器,其特征在于,多个所述数据流计算引擎被配置为完全相同的算子类型并针对多个不同的数据进行计算;或配置为不同的算子类型并针对同一个数据的不同部分进行并行计算。
5.如权利要求3所述的神经网络多核张量处理器,其特征在于,所述第二配置信息包括所述数据流计算引擎的输入数据的地址、输入参数的地址、输出数据的地址以及算子类型。
6.如权利要求1所述的神经网络多核张量处理器,其特征在于,还包括本地主设备总线和主设备适配器,所述重构控制器与所述数据流计算引擎均设置有存储器读写访问接口,各所述存储器读写访问接口统一通过所述本地主设备总线和所述主设备适配器与外部系统总线连接;
所述本地主设备总线用于实现多对一和一对多的仲裁选择;
所述主设备适配器用于外部主设备总线时钟和所述神经网络张量处理器的内核时钟的时钟同步以及所述本地主设备总线和外部系统总线的数据位宽转换功能。
7.如权利要求6所述的神经网络多核张量处理器,其特征在于,所述主控制器通过本地从设备总线和外部系统连接,所述本地从设备总线用于外部从设备总线时钟和所述内核时钟的时钟同步。
8.如权利要求6所述的神经网络多核张量处理器,其特征在于,所述主设备适配器与外部系统总线连接的数据位宽为64×2N位,其中N为非负整数。
9.如权利要求6所述的神经网络多核张量处理器,其特征在于,所述主设备适配器连接的外部系统总线是AXI3或AXI4协议总线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011423696.0A CN112580792B (zh) | 2020-12-08 | 2020-12-08 | 一种神经网络多核张量处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011423696.0A CN112580792B (zh) | 2020-12-08 | 2020-12-08 | 一种神经网络多核张量处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112580792A CN112580792A (zh) | 2021-03-30 |
CN112580792B true CN112580792B (zh) | 2023-07-25 |
Family
ID=75127689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011423696.0A Active CN112580792B (zh) | 2020-12-08 | 2020-12-08 | 一种神经网络多核张量处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112580792B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113642713B (zh) * | 2021-08-19 | 2023-08-01 | 厦门壹普智慧科技有限公司 | 一种用于神经网络张量处理器的4d计算装置 |
CN114118389B (zh) * | 2022-01-28 | 2022-05-10 | 深圳鲲云信息科技有限公司 | 神经网络数据处理方法、设备及存储介质 |
CN116362316B (zh) * | 2023-05-29 | 2023-12-12 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927219A (zh) * | 2014-05-04 | 2014-07-16 | 南京大学 | 可重构专用处理器核的周期精确的仿真模型及其硬件架构 |
CN105630735A (zh) * | 2015-12-25 | 2016-06-01 | 南京大学 | 一种基于可重构计算阵列的协处理器 |
CN105930201A (zh) * | 2016-04-25 | 2016-09-07 | 南京大学 | 一种可重构专用处理器核的功能模拟器 |
CN110096474A (zh) * | 2019-04-28 | 2019-08-06 | 北京超维度计算科技有限公司 | 一种基于可重构计算的高性能弹性计算架构及方法 |
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
PL3607453T3 (pl) * | 2017-04-07 | 2022-11-28 | Intel Corporation | Sposoby i urządzenie dla potoku wykonawczego sieci głębokiego uczenia na platformie multiprocesorowej |
US11367010B2 (en) * | 2018-05-02 | 2022-06-21 | IonQ, Inc. | Quantum computer simulator characterization |
-
2020
- 2020-12-08 CN CN202011423696.0A patent/CN112580792B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927219A (zh) * | 2014-05-04 | 2014-07-16 | 南京大学 | 可重构专用处理器核的周期精确的仿真模型及其硬件架构 |
CN105630735A (zh) * | 2015-12-25 | 2016-06-01 | 南京大学 | 一种基于可重构计算阵列的协处理器 |
CN105930201A (zh) * | 2016-04-25 | 2016-09-07 | 南京大学 | 一种可重构专用处理器核的功能模拟器 |
CN110096474A (zh) * | 2019-04-28 | 2019-08-06 | 北京超维度计算科技有限公司 | 一种基于可重构计算的高性能弹性计算架构及方法 |
CN110633153A (zh) * | 2019-09-24 | 2019-12-31 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
Non-Patent Citations (1)
Title |
---|
张潇 等.面向多核处理器的机器学习推理框架.计算机研究与发展.2019,第56卷(第9期),第1977-1987页. * |
Also Published As
Publication number | Publication date |
---|---|
CN112580792A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112580792B (zh) | 一种神经网络多核张量处理器 | |
CN112381220A (zh) | 一种神经网络张量处理器 | |
Kapasi et al. | The Imagine stream processor | |
US5418952A (en) | Parallel processor cell computer system | |
US20080250227A1 (en) | General Purpose Multiprocessor Programming Apparatus And Method | |
US20130226535A1 (en) | Concurrent simulation system using graphic processing units (gpu) and method thereof | |
WO2020083050A1 (zh) | 一种数据流处理方法及相关设备 | |
US11403104B2 (en) | Neural network processor, chip and electronic device | |
US8615770B1 (en) | System and method for dynamically spawning thread blocks within multi-threaded processing systems | |
US20220043770A1 (en) | Neural network processor, chip and electronic device | |
US8370845B1 (en) | Method for synchronizing independent cooperative thread arrays running on a graphics processing unit | |
CN114402285A (zh) | 机器学习的内核融合 | |
CN114035916A (zh) | 计算图的编译、调度方法及相关产品 | |
US8413151B1 (en) | Selective thread spawning within a multi-threaded processing system | |
CN112051981B (zh) | 一种数据流水线计算路径结构及单线程数据流水线系统 | |
CN114365086A (zh) | 设备链路管理 | |
US8959497B1 (en) | System and method for dynamically spawning thread blocks within multi-threaded processing systems | |
US8473948B1 (en) | Method for synchronizing independent cooperative thread arrays running on a graphics processing unit | |
Lin et al. | swFLOW: A dataflow deep learning framework on sunway taihulight supercomputer | |
Ruggiero | Throttle Mechanisms for the Manchester Dataflow Machine | |
Wang et al. | An automatic-addressing architecture with fully serialized access in racetrack memory for energy-efficient CNNs | |
Diamantopoulos et al. | A system-level transprecision FPGA accelerator for BLSTM using on-chip memory reshaping | |
Bai et al. | An OpenCL-based FPGA accelerator with the Winograd’s minimal filtering algorithm for convolution neuron networks | |
Liang et al. | Design of 16-bit fixed-point CNN coprocessor based on FPGA | |
US7823159B2 (en) | Intelligent memory device clock distribution architecture |
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 |