CN108628799A - 可重构的单指令多数据脉动阵列结构、处理器及电子终端 - Google Patents
可重构的单指令多数据脉动阵列结构、处理器及电子终端 Download PDFInfo
- Publication number
- CN108628799A CN108628799A CN201810344156.XA CN201810344156A CN108628799A CN 108628799 A CN108628799 A CN 108628799A CN 201810344156 A CN201810344156 A CN 201810344156A CN 108628799 A CN108628799 A CN 108628799A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- data
- systolic
- matrix
- restructural
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- 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)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
Abstract
本发明提供一种可重构的单指令多数据脉动阵列结构、处理器及电子终端,所述单指令多数据脉动阵列结构包括:呈脉动阵列排布的多个处理单元,每一个所述处理单元对应连接有一个操作数收集器,每一个所述处理单元同与其相邻的所述处理单元均相连;多个数据输出通道,分别对应配置于每一列所述处理单元的顶端,每一列顶端的数据输出通道与对应列的第一个处理单元相连并且各数据输出通道还与每一行所述处理单元的最右侧的所述处理单元一一对应相连。本发明实现了一个可重构、低能耗结合单指令流多数据流(SIMD)、脉动阵列(Systolic Array)的处理器,通过在相邻处理单元之间建立传输通道以及多层级的存储优化,获取更低的能耗。
Description
技术领域
本发明涉及处理器技术领域,特别是涉及一种可重构的单指令多数据脉动阵列结构、处理器及电子终端。
背景技术
在大数据时代,人工智能系统的应用场景越来越多,深度卷积神经网络(CNN)又凭借其在物体识别、检测和场景理解的任务完成达到前所未有的准确性的能力,因此在人工智能系统中被广泛使用。他们具有超高的精度,但代价是计算复杂度高。这种复杂性来自于需要同时处理高维卷积中的数百个滤波器和通道,这涉及到大量的数据移动。因此,在不影响精确性的情况下,找到一个支持并行计算并且数据移动成本较低的数据流对实现高能效CNN处理模式至关重要。
SIMD(Single Instruction Multiple Data,单指令多数据)是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。GPU就是一个典型的由多线程SIMD处理器组成的并行处理器。但目前的SIMD处理中,数据移动需要很大的开销,能耗很高。
脉动阵列(Systolic Array)结构是一种由多个同构的计算处理单元或节点组合而成的同质性的网络。每个节点可以独立的进行计算,并将结果传递给周围的节点。脉动阵列的结构特性使它能够在消耗较小的内存带宽的基础上实现较高的运算吞吐量。而神经网络计算中使用了大量的卷积和矩阵乘的计算,这同样也是脉动阵列架构的优势。但目前的脉动阵列的灵活性较差,不可重构,可配置性、可编程性较低。
现有技术中一种Fermi流式多处理器(SM)的架构如图1所示,一个流式多处理器(SM)中含有32个CUDA Core。每个SM有16个load/store单元,一个时钟周期允许16个线程同时计算源地址和目的地址。每个SM可处理48个warp共计1536个线程。SIMD处理过程如图2所示,通过SM中的Warp调度程序同时向多个SIMD处理器发射指令,通过Operand Collector计算源地址和目的地址,根据地址在寄存器堆中读入数据,在每个处理器中进行计算,计算结果写回寄存器堆中。之后通过互联网络、地址结合单元读写共享内存和全局内存。图2中的SIMD处理过程是通过矩阵乘法的kernel函数,实现A和B两个矩阵相乘,并将结果保存在C矩阵。在对矩阵元素索引时,所有的二维矩阵都用一维数组表示,索引时计算对应下标。对于乘积矩阵C中每一个元素C[row*C.width+col]需要做A.width次循环求和,每个线程完成一个对应的矩阵C中的元素结果的计算,即可得到对应的结果。在原始矩阵相乘的处理过程中,SIMD可以高并行的执行乘法操作,但是每次读写都需要较高的能耗访问内存,而脉动阵列则可以大大降低访问内存的时间和能耗。
图3是google公司发布的TPU(Tensor Processing Unit),指令可以控制寄存器和计算矩阵,通过从左侧流入数据,在256*256的计算矩阵中实现运用Systolic Array的矩阵乘法,在矩阵的下方将结果进行累加。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种可重构的单指令多数据脉动阵列结构、处理器及电子终端,用于解决现有脉动阵列灵活性较差,不可重构而带来的处理器访问内存的时间和能耗较高的问题。
为实现上述目的及他相关目的,本发明提供一种可重构的单指令多数据脉动阵列结构,所述单指令多数据脉动阵列结构包括:呈脉动阵列排布的多个处理单元,每一个所述处理单元对应连接有一个操作数收集器,每一个所述处理单元同与其相邻的所述处理单元均相连;多个数据输出通道,分别对应配置于每一列所述处理单元的顶端,每一列顶端的数据输出通道与对应列的第一个处理单元相连并且各数据输出通道还与每一行所述处理单元的最右侧的所述处理单元一一对应相连。
于本发明的一实施例中,多个所述处理单元呈正方形脉动阵列排布。
于本发明的一实施例中,各所述处理单元根据从所述操作数收集器接收到的控制信号控制是否与相邻的所述处理单元进行数据传输形成脉动阵列。
于本发明的一实施例中,在各所述处理单元未形成脉动阵列时,将各所述处理单元所述划分为多个SIMD执行单元,执行Warp的SIMD指令。
于本发明的一实施例中,脉动阵列排布的多个处理单元根据权值固定方式对输入矩阵和权值矩阵进行处理:权值矩阵固定于各所述操作数收集器中,输入矩阵自上到下流入各所述处理单元,各所述处理单元进行矩阵乘法的计算,将计算结果自左到右依次流出并由最右侧的所述处理单元传输至对应连接的所述数据输出通道。
于本发明的一实施例中,如果输入矩阵大于多个处理单元构成的脉动阵列的大小,将所述输入矩阵分块映射到所述脉动阵列中。
于本发明的一实施例中,脉动阵列排布的多个处理单元根据输出固定方式对输入矩阵和权值矩阵进行处理:各所述处理单元通过对应的所述操作数收集器存储各自的计算结果,通过输入矩阵和权值矩阵流过各所述处理单元,在各所述处理单元中进行计算结果累加运算,得到矩阵相乘的最终结果。
于本发明的一实施例中,如果输入矩阵大于多个处理单元构成的脉动阵列的大小,将所述输入矩阵分块映射到所述脉动阵列中。
本发明的实施例还提供一种处理器,包括如上所述的可重构的单指令多数据脉动阵列结构。
本发明的实施例还提供一种电子终端,包括如上所述的处理器。
如上所述,本发明的一种可重构的单指令多数据脉动阵列结构、处理器及电子终端,具有以下有益效果:
1、本发明实现了一个可重构、低能耗结合单指令流多数据流(SIMD)、脉动阵列(Systolic Array)的处理器,通过在相邻处理单元之间建立传输通道,以及多层级的存储优化,在脉动阵列中加速矩阵乘法、多维卷积等算法,获取更低的能耗,有效解决现有脉动阵列灵活性较差,不可重构而带来的处理器访问内存的时间和能耗较高的问题。
2、建立了一个基于物理层硬件并结合软件层配置,针对神经网络的低能耗,可重构的整体解决方案,在可用于普适性应用的前提下,最大程度降低针对神经网络特殊应用的访存能耗,兼顾了可配置性和能源高效性。
3、本发明的成果可以构建具有商业意义的、基于SIMD和脉动阵列可重构的系统架构,面向用户提供高效的计算服务。
附图说明
图1显示为现有技术中Fermi流式多处理器(SM)的架构示意图。
图2显示为现有技术中Fermi流式多处理器(SM)的处理过程示意图。
图3显示为现有技术中TPU脉动阵列的处理过程示意图。
图4显示为本发明的一种可重构的单指令多数据脉动阵列结构的流程示意图。
图5显示为本发明的一种可重构的单指令多数据脉动阵列结构对应SIMD执行单元的划分示意图。
图6显示为本发明的一种可重构的单指令多数据脉动阵列结构中采用权值固定方式时的矩阵乘法示例图。
图7显示为本发明的可重构的单指令多数据脉动阵列结构中采用权值固定方式时的矩阵的数据时空图。
图8显示为本发明的可重构的单指令多数据脉动阵列结构中采用权值固定方式时将输入矩阵分块映射到所述脉动阵列中的存储方式示意图。
图9显示为本发明的可重构的单指令多数据脉动阵列结构中采用输出固定方式时的矩阵乘法示例图。
图10显示为本发明的可重构的单指令多数据脉动阵列结构中采用输出固定方式时的存储方式示意图。
图11显示为本发明的可重构的单指令多数据脉动阵列结构中处理过程整体流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
本实施例的目的在于提供一种可重构的单指令多数据脉动阵列结构、处理器及电子终端,用于解决现有脉动阵列灵活性较差,不可重构而带来的处理器访问内存的时间和能耗较高的问题。
以下将详细阐述本发明的一种可重构的单指令多数据脉动阵列结构、处理器及电子终端的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的一种可重构的单指令多数据脉动阵列结构、处理器及电子终端。
具体地,本实施例旨在设计并实现物理系统架构,将SIMD(Single InstructionMultiple Data,单指令多数据)与脉动阵列(Systolic Array)的结合,在GPU的基础上进行创新设计,实现可切换的SIMD Systolic架构。
如图4所示,本实施例提供一种可重构的单指令多数据脉动阵列结构100,所述可重构的单指令多数据脉动阵列结构100包括:呈脉动阵列排布的多个处理单元110(图4中所示的PE(Processing Engine)),每一个所述处理单元110对应连接有一个分布式的操作数收集器120(图4中所示的OC(Operand Collector)),每一个所述处理单元110(PE)同与其相邻的所述处理单元110(PE)均相连;多个数据输出通道130,分别对应配置于每一列所述处理单元110的顶端,每一列顶端的数据输出通道130与对应列的第一个处理单元110相连并且各数据输出通道130还与每一行所述处理单元110的最右侧的所述处理单元110一一对应相连。
其中,多个处理单元110呈纵横交错的多行和多列排列,具体地,于本实施例中,多个所述处理单元110优选但不限于呈正方形脉动阵列排布。例如,如图4所示,所述处理单元110的256个,脉动阵列为16行和16列排列,即脉动阵列的大小为16*16。
于本实施例中,每一个所述处理单元110对应连接有一个操作数收集器120(图4中所示的OC),通过将原有的操作数收集器120(OC,Operand Collector)设计成分布式OC,这样可以实现SIMD模式下局部存储和Systolic Array模式下局部存储的物理共享
于本实施例中,如图4所示,每一个所述处理单元110(PE)同与其相邻的所述处理单元110(PE)均相连,将每个所述处理单元110(PE)与它相邻的所述处理单元110(PE)的OC通过进行物理相连,从而实现相邻的所述处理单元110(PE)之间的数据传输的通路,进而通过不同的数据传输的数据流的模式实现不同的计算控制。
于本实施例中,每一列所述处理单元110的顶端设有一数据输出通道130,例如,图4中有16列处理单元110,16行处理单元110,则对应有16个数据输出通道130。
其中,每一行所述处理单元110中最右侧的所述处理单元110(PE)与其所在行数相同的列上方的数据输出通道130相连。即每一行所述处理单元110中最右侧的所述处理单元110(PE)添加连接线,使其输出转置为向上输出。
例如,第一行最右侧的所述处理单元110与第一列的所述处理单元110(PE)上方的数据输出通道130相连,第二行最右侧的所述处理单元110与第二列的所述处理单元110(PE)上方的数据输出通道130相连,第三行最右侧的所述处理单元110与第三列的所述处理单元110(PE)上方的数据输出通道130相连,依次类推,第N行最右侧的所述处理单元110与第N列的所述处理单元110(PE)上方的数据输出通道130相连。
于本实施例中,各所述处理单元110根据从所述操作数收集器120接收到的控制信号控制是否与相邻的所述处理单元110进行数据传输形成脉动阵列。
其中,在各所述处理单元110未形成脉动阵列时,如图5所示,将各所述处理单元110所述划分为多个SIMD执行单元,执行Warp的SIMD指令。
所以本实施例中的单指令多数据脉动阵列结构在不需要使用脉动计算时,各所述处理单元110可以不与相连的所述处理单元110进行数据传输,可以在CUDA程序下运用原有架构进行Warp的调度和计算,简化示意图如图5所示,可以将16*16的PE划分为8个SIMD执行单元,执行Warp的SIMD指令。在需要使用脉动计算时,与相邻的所述处理单元110进行数据传输形成脉动阵列,可以直接切换为脉动阵列结构。
于本实施例中,脉动阵列可以分为两种形式:权值固定和输出固定。
具体地,如图6至图8所示,脉动阵列排布的多个处理单元110根据权值固定方式对输入矩阵和权值矩阵进行处理:权值矩阵固定于各所述操作数收集器120中,输入矩阵自上到下流入各所述处理单元110,各所述处理单元110进行矩阵乘法的计算,将计算结果自左到右依次流出并由最右侧的所述处理单元110传输至对应连接的所述数据输出通道130。
通过分布式OC数据从PE阵列的上部流入,计算完毕后从右侧写回结果,使用PE之间的向右、向下的数据传输通道,PE阵列可以通过脉动的方式完成矩阵乘法的计算。
图6展示了一个普通的矩阵乘法,矩阵X(2*3)与矩阵W(3*2)相乘得到矩阵Y(2*2),脉动阵列的计算过程如图7。
图7是计算过程两个矩阵的数据时空图,其中矩阵W需预取并固定在每个PE的分布式OC中,在计算过程中W值不进行传输。对于矩阵X,在不同时钟周期内将不同的数值传入PE阵列中,计算过程中矩阵X的数值会自上到下流过PE阵列。
以下为每个时钟周期所执行的操作:
Cycle 0:W预取到PE阵列之中。X1,1传入PE1,1,PE1,1计算X1,1*W1,1。
Cycle 1:X2,1,X1,2分别传入PE1,1,PE1,2,X1,1由PE1,1向下传入PE2,1。Cycle 0的计算结果X1,1*W1,1由向右传入PE1,2。PE1,1计算X2,1*W1,1,PE1,2计算X1,2*W2,1+X1,1*W1,1,PE2,1计算X1,1*W1,2。
Cycle 2:类似的,矩阵X在PE阵列中向下传输,计算结果由左侧PE传入右侧PE。Y1,1的结果由PE阵列的右侧流出阵列。
Cycle 3:经过四个周期,PE阵列输出两个结果Y1,2,Y2,1。
Cycle 4:经过五个周期,输出结果Y2,2,矩阵乘法计算完成。
于本实施例中,如果输入矩阵大于多个处理单元110构成的脉动阵列的大小,将所述输入矩阵分块映射到所述脉动阵列中。
也就是说,脉动阵列计算过程中,如果矩阵大于PE阵列的大小,可以将矩阵分块映射到PE阵列中。如图8,三个矩阵分别通过不同的方法传入、传出PE阵列。
矩阵X:矩阵X在Shared Memory中存储。矩阵X不转置并按列存储,16列PE对应16个bank。
矩阵Y:矩阵Y在Shared Memory中存储。计算结构由PE阵列右侧流出并写入bank,写入时不转置并按列存储,16行PE对应16个bank。
矩阵W:矩阵W需进行转置并存储在Register File中,通过OC传入并固定在PE阵列。每个SIMD执行单元对应的PE可以在一个bank中存储,一个bank可以同时读写32个数据满足两行PE。
具体地,如图9和图10所示,脉动阵列排布的多个处理单元110根据输出固定方式对输入矩阵和权值矩阵进行处理:各所述处理单元110通过对应的所述操作数收集器120存储各自的计算结果,通过输入矩阵和权值矩阵流过各所述处理单元110,在各所述处理单元110中进行计算结果累加运算,得到矩阵相乘的最终结果。
在PE阵列中可以将计算结果固定在每个PE的存储单元中,通过矩阵X和矩阵W流过PE,在PE中进行累加运算,可以得到矩阵相乘的最终结果。
如图9所示,X,Y,W都是2*2的矩阵,X向右传输,W向下传输。数据在不同周期流入PE进行乘法运算,乘积固定在PE对应的OC中,与下一个计算结果累加,可以在一个PE中得到一个矩阵元素的结果。
于本实施例中,脉动阵列排布的多个处理单元110根据输出固定方式对输入矩阵和权值矩阵进行处理中,如果输入矩阵大于多个处理单元110构成的脉动阵列的大小,将所述输入矩阵分块映射到所述脉动阵列中。
矩阵Y:固定在PE内的计算结果(矩阵Y)和权值固定中矩阵W的存储方法相同,通过OC写回Register File中。
矩阵W:如图10,矩阵W在Shared Memory中存储,不需要转置并按列存储在bank中,16列PE对应16个bank。
矩阵X:如图10,矩阵X在Shared Memory中存储,需要转置并按行存储在bank中,16行PE对应16个bank。
本发明的实施例还提供一种处理器,包括如上所述的可重构的单指令多数据脉动阵列结构100。上述已经对可重构的单指令多数据脉动阵列结构100进行了详细说明,在此不再赘述。
本发明的实施例还提供一种电子终端,所述电子终端例如为个人电脑,服务器等,所述电子终端包括如上所述的处理器。
本发明在具体使用时的运行整体流程如下:
1)用户与软件层的交互:
a)用户根据用户API层提供的API编写源程序;属于用户API层功能。用户通过调用“用户API层”的API函数,按照编程模型的要求编写代码。析程序参数调用动态链接库:属于编译层功能之一。
b)根据用户所调用的库函数,整理数据在Register File和Shared Memory的内存分布。调用本发明提供的库函数,可以直接使用本发明的硬件模块。配置运行流程调整内存排布:属于编译层功能之一。设置参数,通过参数的调整对内存进行同一排布,将数据拷贝到不同的bank,在硬件模块执行时避免bank读写竞争。
c)经过本地调试和验证正确后,编写正确的程序;编译:属于编译模块功能之一。编译成功判断:属于编译层功能之一。如果编译成功,则由用户决定是否执行;如果编译失败,则返回用户错误信息,直到用户完成代码修正并再次进入编译流程。
2)物理层:
a)根据用户调用的库函数,选择是否调用脉动阵列。使用脉动阵列判断:属于物理系统的功能之一。根据软件系统传递的借口,判断是否调用脉动阵列。
b)在脉动阵列中可以运行矩阵乘法运算;脉动阵列处理矩阵乘法:属于物理系统的功能之一。使用本发明的脉动阵列,使用分布式OC的存储单元,进行矩阵乘法的计算。普适性多核计算:属于物理系统的功能之一,可以使用原有的SIMD模式执行指令。
c)运行时系统返回结果给用户,即输出结果:通过计算得到结果,流程结束。
综上所述,本发明实现了一个可重构、低能耗结合单指令流多数据流(SIMD)、脉动阵列(Systolic Array)的处理器,通过在相邻处理单元110之间建立传输通道,以及多层级的存储优化,在脉动阵列中加速矩阵乘法、多维卷积等算法,获取更低的能耗,有效解决现有脉动阵列灵活性较差,不可重构而带来的处理器访问内存的时间和能耗较高的问题;2、建立了一个基于物理层硬件并结合软件层配置,针对神经网络的低能耗,可重构的整体解决方案,在可用于普适性应用的前提下,最大程度降低针对神经网络特殊应用的访存能耗,兼顾了可配置性和能源高效性;本发明的成果可以构建具有商业意义的、基于SIMD和脉动阵列可重构的系统架构,面向用户提供高效的计算服务。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种可重构的单指令多数据脉动阵列结构,其特征在于,所述单指令多数据脉动阵列结构包括:
呈脉动阵列排布的多个处理单元,每一个所述处理单元对应连接有一个操作数收集器,每一个所述处理单元同与其相邻的所述处理单元均相连;
多个数据输出通道,分别对应配置于每一列所述处理单元的顶端,每一列顶端的数据输出通道与对应列的第一个处理单元相连并且各数据输出通道还与每一行所述处理单元的最右侧的所述处理单元一一对应相连。
2.根据权利要求1所述的可重构的单指令多数据脉动阵列结构,其特征在于,多个所述处理单元呈正方形脉动阵列排布。
3.根据权利要求2所述的可重构的单指令多数据脉动阵列结构,其特征在于,各所述处理单元根据从所述操作数收集器接收到的控制信号控制是否与相邻的所述处理单元进行数据传输形成脉动阵列。
4.根据权利要求3所述的可重构的单指令多数据脉动阵列结构,其特征在于,在各所述处理单元未形成脉动阵列时,将各所述处理单元所述划分为多个SIMD执行单元,执行Warp的SIMD指令。
5.根据权利要求1所述的可重构的单指令多数据脉动阵列结构,其特征在于,脉动阵列排布的多个处理单元根据权值固定方式对输入矩阵和权值矩阵进行处理:权值矩阵固定于各所述操作数收集器中,输入矩阵自上到下流入各所述处理单元,各所述处理单元进行矩阵乘法的计算,将计算结果自左到右依次流出并由最右侧的所述处理单元传输至对应连接的所述数据输出通道。
6.根据权利要求5所述的可重构的单指令多数据脉动阵列结构,其特征在于,如果输入矩阵大于多个处理单元构成的脉动阵列的大小,将所述输入矩阵分块映射到所述脉动阵列中。
7.根据权利要求1所述的可重构的单指令多数据脉动阵列结构,其特征在于,脉动阵列排布的多个处理单元根据输出固定方式对输入矩阵和权值矩阵进行处理:各所述处理单元通过对应的所述操作数收集器存储各自的计算结果,通过输入矩阵和权值矩阵流过各所述处理单元,在各所述处理单元中进行计算结果累加运算,得到矩阵相乘的最终结果。
8.根据权利要求7所述的可重构的单指令多数据脉动阵列结构,其特征在于,如果输入矩阵大于多个处理单元构成的脉动阵列的大小,将所述输入矩阵分块映射到所述脉动阵列中。
9.一种处理器,其特征在于,包括如权利要求1至权利要求8任一项所述的可重构的单指令多数据脉动阵列结构。
10.一种电子终端,其特征在于,包括如权利要求9所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810344156.XA CN108628799B (zh) | 2018-04-17 | 2018-04-17 | 可重构的单指令多数据脉动阵列结构、处理器及电子终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810344156.XA CN108628799B (zh) | 2018-04-17 | 2018-04-17 | 可重构的单指令多数据脉动阵列结构、处理器及电子终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108628799A true CN108628799A (zh) | 2018-10-09 |
CN108628799B CN108628799B (zh) | 2021-09-14 |
Family
ID=63705471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810344156.XA Active CN108628799B (zh) | 2018-04-17 | 2018-04-17 | 可重构的单指令多数据脉动阵列结构、处理器及电子终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108628799B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222818A (zh) * | 2019-05-13 | 2019-09-10 | 西安交通大学 | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 |
CN111897579A (zh) * | 2020-08-18 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 图像数据处理方法、装置、计算机设备和存储介质 |
WO2021036729A1 (zh) * | 2019-08-29 | 2021-03-04 | 华为技术有限公司 | 一种矩阵运算方法、运算装置以及处理器 |
CN112486904A (zh) * | 2020-12-18 | 2021-03-12 | 清华大学 | 可重构处理单元阵列的寄存器堆设计方法及装置 |
CN113076521A (zh) * | 2021-06-03 | 2021-07-06 | 沐曦集成电路(上海)有限公司 | 一种基于gpgpu可重构架构的方法及计算系统 |
CN113344183A (zh) * | 2021-06-03 | 2021-09-03 | 沐曦集成电路(上海)有限公司 | 一种在计算系统中实现卷积运算的方法及计算系统 |
CN115033843A (zh) * | 2022-08-09 | 2022-09-09 | 之江实验室 | 基于三角脉动阵列的协方差矩阵计算的电路实现方法 |
US11580059B2 (en) | 2019-07-31 | 2023-02-14 | Marvell Asia Pte. Ltd. | Multi-port memory architecture for a systolic array |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014085975A1 (zh) * | 2012-12-04 | 2014-06-12 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
US9489338B1 (en) * | 2014-01-24 | 2016-11-08 | Altera Corporation | Systolic array based architecture for branch and bound algorithms |
CN107085562A (zh) * | 2017-03-23 | 2017-08-22 | 中国科学院计算技术研究所 | 一种基于高效复用数据流的神经网络处理器及设计方法 |
CN107454965A (zh) * | 2015-05-21 | 2017-12-08 | 谷歌公司 | 神经网络处理器中的批处理 |
CN107578095A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 神经网络计算装置及包含该计算装置的处理器 |
CN107578098A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 基于脉动阵列的神经网络处理器 |
-
2018
- 2018-04-17 CN CN201810344156.XA patent/CN108628799B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014085975A1 (zh) * | 2012-12-04 | 2014-06-12 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
US9489338B1 (en) * | 2014-01-24 | 2016-11-08 | Altera Corporation | Systolic array based architecture for branch and bound algorithms |
CN107454965A (zh) * | 2015-05-21 | 2017-12-08 | 谷歌公司 | 神经网络处理器中的批处理 |
CN107085562A (zh) * | 2017-03-23 | 2017-08-22 | 中国科学院计算技术研究所 | 一种基于高效复用数据流的神经网络处理器及设计方法 |
CN107578095A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 神经网络计算装置及包含该计算装置的处理器 |
CN107578098A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 基于脉动阵列的神经网络处理器 |
Non-Patent Citations (2)
Title |
---|
钱艺,李占才,李昂,王沁: "一种神经网络并行处理器的体系结构", 《小型微型计算机系统》 * |
钱艺,李昂,王沁,李占才: "一种高速实现BP网络的SIMD处理器", 《数据采集与处理》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222818A (zh) * | 2019-05-13 | 2019-09-10 | 西安交通大学 | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 |
US11580059B2 (en) | 2019-07-31 | 2023-02-14 | Marvell Asia Pte. Ltd. | Multi-port memory architecture for a systolic array |
WO2021036729A1 (zh) * | 2019-08-29 | 2021-03-04 | 华为技术有限公司 | 一种矩阵运算方法、运算装置以及处理器 |
CN111897579A (zh) * | 2020-08-18 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 图像数据处理方法、装置、计算机设备和存储介质 |
CN111897579B (zh) * | 2020-08-18 | 2024-01-30 | 腾讯科技(深圳)有限公司 | 图像数据处理方法、装置、计算机设备和存储介质 |
CN112486904A (zh) * | 2020-12-18 | 2021-03-12 | 清华大学 | 可重构处理单元阵列的寄存器堆设计方法及装置 |
CN113076521A (zh) * | 2021-06-03 | 2021-07-06 | 沐曦集成电路(上海)有限公司 | 一种基于gpgpu可重构架构的方法及计算系统 |
CN113344183A (zh) * | 2021-06-03 | 2021-09-03 | 沐曦集成电路(上海)有限公司 | 一种在计算系统中实现卷积运算的方法及计算系统 |
CN113076521B (zh) * | 2021-06-03 | 2021-09-21 | 沐曦集成电路(上海)有限公司 | 一种基于gpgpu可重构架构的方法及计算系统 |
WO2022252568A1 (zh) * | 2021-06-03 | 2022-12-08 | 沐曦集成电路(上海)有限公司 | 一种基于gpgpu可重构架构的方法、计算系统及重构架构的装置 |
CN115033843A (zh) * | 2022-08-09 | 2022-09-09 | 之江实验室 | 基于三角脉动阵列的协方差矩阵计算的电路实现方法 |
CN115033843B (zh) * | 2022-08-09 | 2022-11-08 | 之江实验室 | 基于三角脉动阵列的协方差矩阵计算的电路实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108628799B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628799A (zh) | 可重构的单指令多数据脉动阵列结构、处理器及电子终端 | |
CN107578098B (zh) | 基于脉动阵列的神经网络处理器 | |
CN107578095B (zh) | 神经网络计算装置及包含该计算装置的处理器 | |
Trobec et al. | Introduction to parallel computing: from algorithms to programming on state-of-the-art platforms | |
CN110121699A (zh) | 多瓦片、多芯片处理布置中的同步 | |
CN104699461A (zh) | 在多线程数据处理装置上对线程调度进行配置 | |
CN107491416A (zh) | 适用于任意维数卷积需求的可重构计算结构及计算调度方法和装置 | |
Balasubramanian et al. | CRIMSON: Compute-intensive loop acceleration by randomized iterative modulo scheduling and optimized mapping on CGRAs | |
Gabber | VMMP: A practical tool for the development of portable and efficient programs for multiprocessors | |
Garg et al. | A taxonomy for classification and comparison of dataflows for gnn accelerators | |
Fizzano et al. | Job scheduling in rings | |
Farrell et al. | A concurrent computer architecture and a ring based implementation | |
Desprez | A Library for Coarse Grain Macro-Pipelining in Distributed Memory Architectures | |
Thuerck | Supporting irregularity in throughput-oriented computing by SIMT-SIMD integration | |
Zhu et al. | Implementing Kak neural networks on a reconfigurable computing platform | |
CN109558567A (zh) | 自共轭矩阵的上三角部分存储装置和并行读取方法 | |
Svensson et al. | Towards modular, massively parallel neural computers | |
Jin et al. | Algorithm for mapping multilayer bp networks onto the spinnaker neuromorphic hardware | |
Bertuletti et al. | Fast Shared-Memory Barrier Synchronization for a 1024-Cores RISC-V Many-Core Cluster | |
Melab et al. | GPU Computing for parallel local search metaheuristics | |
Cong | On embeddings of neural networks into massively parallel computer systems | |
Lin et al. | Realisation of pipelined mesh algorithms on hypercubes | |
Paschke et al. | Simulation of sparse random networks on a CNAPS SIMD neurocomputer | |
Luczynski | Communication Collectives for the Cerebras Wafer-Scale Engine | |
Okawa et al. | Parallel computation of neural networks in a processor pipeline with partially shared memory |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Guo Cong Inventor after: Leng Jingwen Inventor after: Zhu Yuhao Inventor after: Yao Bin Inventor after: Guo Minyi Inventor before: Leng Jingwen Inventor before: Zhu Yuhao Inventor before: Guo Cong Inventor before: Zhou Yangjie Inventor before: Yao Bin Inventor before: Guo Minyi |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |