CN115660054A - 时序神经网络的映射方法及装置、加速器 - Google Patents

时序神经网络的映射方法及装置、加速器 Download PDF

Info

Publication number
CN115660054A
CN115660054A CN202211405066.XA CN202211405066A CN115660054A CN 115660054 A CN115660054 A CN 115660054A CN 202211405066 A CN202211405066 A CN 202211405066A CN 115660054 A CN115660054 A CN 115660054A
Authority
CN
China
Prior art keywords
core
execution
time
sequence
neural network
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
Application number
CN202211405066.XA
Other languages
English (en)
Inventor
张伟豪
林俊峰
王冠睿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Lynxi Technology Co Ltd
Original Assignee
Beijing Lynxi Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Lynxi Technology Co Ltd filed Critical Beijing Lynxi Technology Co Ltd
Priority to CN202211405066.XA priority Critical patent/CN115660054A/zh
Publication of CN115660054A publication Critical patent/CN115660054A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

本公开提供了一种时序神经网络的映射方法及装置、加速器,时序神经网络包括处理单元,处理单元用于依次执行输入序列所对应的每个时间步的计算任务,该映射方法包括:将众核芯片中多个处理核划分为多个执行核簇,执行核簇包括多个处理核;将执行核簇中多个处理核划分为多个核组,核组包括至少一个处理核;将多个时序神经网络分别映射至多个执行核簇,每个执行核簇配置为独立运行对应的一个时序神经网络,执行核簇中每个核组均对应部署一个处理单元;针对每个执行核簇,将执行核簇中多个核组配置为基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务。本公开还提供一种电子设备以及计算机可读存储介质。

Description

时序神经网络的映射方法及装置、加速器
技术领域
本公开涉及计算机技术领域,特别涉及一种时序神经网络的映射方法及映射装置、时序神经网络加速器、电子设备、计算机可读存储介质。
背景技术
随着神经网络在各行各业中得到应用,神经网络的加速执行变成了一个很重要的问题。而众核芯片是神经网络加速的一个关键架构方向,这其中也包括了时序神经网络的加速执行。
发明内容
本公开提供一种时序神经网络的映射方法及映射装置、时序神经网络加速器、电子设备、计算机可读存储介质。
第一方面,本公开提供了一种时序神经网络的映射方法,所述时序神经网络包括处理单元,所述处理单元用于依次执行输入序列所对应的每个时间步的计算任务,所述映射方法包括:
将众核芯片中多个处理核划分为多个执行核簇,所述执行核簇包括多个处理核;
将所述执行核簇中多个处理核划分为多个核组,所述核组包括至少一个处理核;
将多个所述时序神经网络分别映射至多个执行核簇,每个所述执行核簇配置为独立运行对应的一个所述时序神经网络,所述执行核簇中每个核组均对应部署一个所述处理单元;
针对每个所述执行核簇,将所述执行核簇中多个核组配置为基于循环流水线方式,执行所映射的所述时序神经网络的输入序列所对应的多个时间步的计算任务。
第二方面,本公开提供了一种时序神经网络的映射装置,所述时序神经网络包括处理单元,所述处理单元用于依次执行输入序列所对应的每个时间步的计算任务,所述映射装置包括:
划分单元,用于:将众核芯片中多个处理核划分为多个执行核簇,所述执行核簇包括多个处理核;将所述执行核簇中多个处理核划分为多个核组,所述核组包括至少一个处理核;
映射单元,用于:将多个所述时序神经网络分别映射至多个执行核簇,每个所述执行核簇配置为独立运行对应的一个所述时序神经网络,所述执行核簇中每个核组均对应部署一个所述处理单元;针对每个所述执行核簇,将所述执行核簇中多个核组配置为基于循环流水线方式,执行所映射的所述时序神经网络的输入序列所对应的多个时间步的计算任务。
第三方面,本公开提供了一种时序神经网络加速器,所述时序神经网络包括处理单元,所述处理单元用于依次执行输入序列所对应的每个时间步的计算任务,所述加速器包括:
众核芯片,包括多个执行核簇,所述执行核簇包括多个处理核,所述执行核簇中多个处理核被划分为多个核组,所述核组包括至少一个处理核,每个所述执行核簇配置为独立运行对应的一个所述时序神经网络,所述执行核簇中每个核组均对应部署一个所述处理单元,所述执行核簇中多个核组配置为基于循环流水线方式,执行所映射的所述时序神经网络的输入序列所对应的多个时间步的计算任务;
时空调度器,用于配置所述时序神经网络的当前输入序列的输入时间和对应的核组。
第四方面,本公开提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的映射方法。
第五方面,本公开提供了一种计算机可读存储介质,该介质上存储有计算机程序,所述计算机程序在被处理器执行时实现上述第一方面所述的映射方法。
根据本公开实施例的时序神经网络的映射方法的技术方案,通过对众核芯片的多个处理核划分执行核簇的方式,将多个时序神经网络映射至多个执行核簇,使得多个执行核簇可以并行执行时序神经网络的多个输入序列,从而实现时序神经网络的加速执行,提高输入序列的处理效率,提高时序神经网络的计算效率;同时,针对每个执行核簇,通过划分核组的方式,每个核组均部署时序神经网络的处理单元,多个核组配置为基于循环流水线方式执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务,在每个时间步,只有执行当前时间步的计算任务的核组需要从片外读取所需输入数据,在每个时间步后,只有执行当前时间步的计算任务的核组与执行下一个时间步的计算任务的核组之间需要进行数据交互,因此有利于减少片内片外数据交互,降低片内存储资源负载,降低片上网络NoC的数据传输代价;此外,将时序神经网络映射至多个处理核组成的执行核簇,使得时序神经网络的权重参数可以分布存储于执行核簇的多个处理核,无需将权重参数单独存储于一个处理核,有利于改善每个处理核的片内存储资源的负载均衡以及改善权重参数的传输代价。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的一种时序神经网络的网络架构示意图;
图2为本公开实施例提供的一种众核芯片的架构示意图;
图3为本公开实施例提供的一种时序神经网络的映射方法的流程示意图;
图4为本公开实施例提供的一种执行核簇和执行核簇中核组的划分方式示意图;
图5为一种执行核簇中多个执行核组的流水线执行顺序示意图;
图6为众核芯片中通信核和非通信核的排布情况示意图;
图7为本公开实施例提供的一种时序神经网络的映射装置的结构示意图;
图8为本公开实施例提供的一种时序神经网络加速器的结构示意图;
图9为本公开实施例提供的一种电子设备的组成框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
在本公开实施例中,以RNN(Recurrent Neural Network,循环神经网络)为代表的时序神经网络常用于处理序列数据问题,例如文本分类、语音识别、文本翻译等。该类网络具有一个或多个基本的由多个神经元组成的处理单元,常见的处理单元包括LSTM(LongShort-Term Memory,长短时记忆)单元和GRU(Gate Recurrent Unit,门控循环)单元等。处理单元在时间维度上循环使用,处理单元在每个时间步上获得对应的输入序列中的一个输入数据和处理单元在上一个时间步中处理得到的中间结果,在当前时间步处理得到的中间结果又会作为处理单元在下一个时间步的输入数据之一,最终在相同的处理单元上完成一定时间步的计算。因此,时序神经网络可以按时间步展开表示,如图1所示,一个处理单元在不同时间步上共享一套权重参数,处理单元在不同时间步处理输入序列中不同的输入数据。
在本公开实施例中,众核芯片由多个处理核和处理核之间的NoC(Network-on-Chip,片上网络)组成,众核芯片是基于存算一体的众核架构的芯片,每个处理核均具有独立的片内内存,如图2所示,处理核负责完成主要的计算,NoC负责在处理核间传输数据,处理核和NoC的排布与实现可以有多种方式,图2仅示例性示出一种众核芯片中处理核和NoC的排布方式。
图3为本公开实施例提供的一种时序神经网络的映射方法的流程示意图。
本公开实施例提供了一种时序神经网络的映射方法,时序神经网络包括处理单元,处理单元用于依次执行输入序列所对应的每个时间步的计算任务,如图3所示,该映射方法包括:
步骤S1、将众核芯片中多个处理核划分为多个执行核簇,执行核簇包括多个处理核。
在一些实施例中,不同的执行核簇可以有不同数量的处理核,即不同执行核簇可以拥有不同的处理速率;在一些实施例中,不同的执行核簇所包含的处理核的数量也可以相同。本公开实施例对于执行核簇的数量以及执行核簇中处理核的数量不作特殊限制,可以根据实际需要进行配置。
步骤S2、将执行核簇中多个处理核划分为多个核组,核组包括至少一个处理核。
在一些实施例中,不同的核组可以有不同数量的处理核,即不同执行核组可以拥有不同的处理速率;在一些实施例中,不同的核组所包含的处理核的数量也可以相同。本公开实施例对于核组的数量以及核组中处理核的数量不作特殊限制,可以根据实际需要进行配置。
图4为本公开实施例提供的一种执行核簇和执行核簇中核组的划分方式示意图,示例性的,如图4所示,将众核芯片中多个处理核C划分为4个执行核簇,该4个执行核簇分别为执行核簇01、执行核簇02、执行核簇03和执行核簇04,以执行核簇01为例,将执行核簇01中多个处理核C划分为3个核组,该3个核组分别为核组011、核组012和核组013。
步骤S3、将多个时序神经网络分别映射至多个执行核簇,每个执行核簇配置为独立运行对应的一个时序神经网络,执行核簇中每个核组均对应部署一个处理单元。
在一些实施例中,可以将待映射的一个时序神经网络复制为多个,该多个时序神经网络可以分别用于处理同一数据处理任务的不同的输入序列,将该多个时序神经网络分别映射至多个执行核簇,每个执行核簇对应部署其中一个时序神经网络,多个执行核簇可以分别独立、并行地运行各自对应的时序神经网络,其中针对每个执行核簇,该执行核簇中每个核组均部署对应的时序神经网络的处理单元。例如,数据处理任务可以是文本处理任务(如文本分类、文本翻译等)、语音处理任务(如语音识别等)、视频图像处理任务(如视频图像识别等)中的任意一种,相应的,输入序列可以是文本输入序列、语音输入序列、视频图像输入序列中的任意一种。
在一些实施例中,待映射的时序神经网络的数量为多个,多个时序神经网络为不同的时序神经网络,该多个时序神经网络中每个时序神经网络对应用于处理一种数据处理任务,不同时序神经网络对应处理不同数据处理任务,例如,不同数据处理任务包括文本处理任务、语音处理任务、视频图像处理任务等,将该多个时序神经网络分别映射至多个执行核簇,每个执行核簇对应部署其中一个时序神经网络,多个执行核簇可以分别独立、并行地运行各自对应的时序神经网络,其中针对每个执行核簇,该执行核簇中每个核组均部署对应的时序神经网络的处理单元。
示例性的,该多个时序神经网络分别为时序神经网络N1、时序神经网络N2、时序神经网络N3、时序神经网络N4,结合图4,将时序神经网络N1映射至执行核簇01,执行核簇01中每个核组(011、012、013)均对应部署有时序神经网络N1的处理单元,将时序神经网络N2映射至执行核簇02,执行核簇02中每个核组均对应部署有时序神经网络N2的处理单元,将时序神经网络N3映射至执行核簇03,执行核簇03中每个核组均对应部署有时序神经网络N3的处理单元,将时序神经网络N4映射至执行核簇04,执行核簇04中每个核组均对应部署有时序神经网络N4的处理单元。
对于每个核组,当该核组包括多个处理核时,可以将处理单元进行拆分并均匀部署至该核组的每个处理核上。
步骤S4、针对每个执行核簇,将该执行核簇中多个核组配置为基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务。
结合图1,时序神经网络的一个输入序列需要经过多个时间步的处理,即将输入序列分多个时间步进行处理,每个时间步对应一个计算任务,每个计算任务对应处理输入序列中的一个输入数据;在一个时间步,时序神经网络的处理单元可处理输入序列中的一个输入数据,并获得相应的输出数据。
以时序神经网络为循环神经网络(RNN)为例,处理单元在当前时间步执行当前时间步对应的当前计算任务,以对输入序列中当前时间步对应的当前输入数据进行处理得到当前输出数据,处理单元在当前时间步处理得到的当前输出数据以及输入序列中下一个时间步对应的下一个输入数据,共同作为处理单元在下一个时间步执行下一个计算任务所需的输入数据。示例性的,如图1所示,当前输入序列由4个输入数据组成,分别为输入数据1、输入数据2、输入数据3和输入数据4,相应的,当前输入序列需要经过4个时间步的处理;处理单元在时间步1处理输入数据1得到输出数据1,输出数据1和输入数据2共同作为处理单元在时间步2的输入数据,处理单元在时间步2处理输入数据2和输出数据1得到输出数据2,输出数据2和输入数据3共同作为处理单元在时间步3的输入数据,处理单元在时间步3处理输入数据3和输出数据2得到输出数据3,输出数据3和输入数据4共同作为处理单元在时间步4的输入数据,处理单元在时间步4处理输入数据4和输出数据3得到输出数据4。
在本公开实施例中,对于每个执行核簇而言,该执行核簇中每个核组均部署对应的时序神经网络的处理单元,因此每个核组均能够执行输入序列对应的一个时间步的计算任务,不同核组对应处理不同时间步的计算任务,该执行核簇中多个核组可以基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务。对于每个核组而言,当该核组包括多个处理核时,该核组的多个处理核共同且并行地执行对应的时间步的计算任务。
例如,一个执行核簇中包括3个核组,一个输入序列需要经过4个时间步的处理,该3个核组基于循环流水线方式执行输入序列对应的该4个时间步的计算任务,直至完成输入序列对应的所有时间步的计算任务的执行,其中,第1个核组执行时间步1的计算任务,第2个核组执行时间步2的计算任务,第3个核组执行时间步3的计算任务,第1个核组执行时间步4的计算任务。
又例如,一个执行核簇中包括5个核组,一个输入序列需要经过4个时间步的处理,该5个核组基于循环流水线方式执行输入序列对应的该4个时间步的计算任务,直至完成输入序列对应的所有时间步的计算任务的执行,其中,第1个核组执行时间步1的计算任务,第2个核组执行时间步2的计算任务,第3个核组执行时间步3的计算任务,第4个核组执行时间步4的计算任务。
根据本公开实施例的时序神经网络的映射方法的技术方案,通过对众核芯片的多个处理核划分执行核簇的方式,将多个时序神经网络映射至多个执行核簇,使得多个执行核簇可以并行执行时序神经网络的多个输入序列,从而实现时序神经网络的加速执行,提高输入序列的处理效率,提高时序神经网络的计算效率;同时,针对每个执行核簇,通过划分核组的方式,每个核组均部署时序神经网络的处理单元,多个核组配置为基于循环流水线方式执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务,在每个时间步,只有执行当前时间步的计算任务的核组需要从片外读取所需输入数据和输出相关计算数据,在每个时间步之后,只有执行当前时间步的计算任务的核组与执行下一个时间步的计算任务的核组之间需要进行数据交互,因此有利于减少片内片外数据交互,降低片内存储资源负载,降低片上网络NoC的数据传输代价;此外,将时序神经网络映射至多个处理核组成的执行核簇,使得时序神经网络的权重参数可以分布存储于执行核簇的多个处理核,无需将权重参数单独存储于一个处理核,有利于改善每个处理核的片内存储资源的负载均衡以及改善权重参数的传输代价。
在一些实施例中,在步骤S4中,在将执行核簇中多个核组配置为基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务之前,该映射方法还包括:规划执行核簇中的多个核组中每个核组对应的流水线执行顺序。其中,流水线执行顺序表示对应的核组在循环流水线中的位置顺序和作业顺序,执行核簇中多个核组可以针对当前输入序列,根据流水线执行顺序进行循环流水线作业,以循环流水线方式执行当前输入序列所对应的多个时间步的计算任务。图5为一种执行核簇中多个执行核组的流水线执行顺序示意图,示例性的,结合图4和图5,执行核簇01中核组011对应的流水线执行顺序为第1位,核组012对应的流水线执行顺序为第2位,核组013对应的流水线执行顺序为第3位。
在一些实施例中,在步骤S4中,将执行核簇中多个核组配置为基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务,包括:根据多个核组中每个核组对应的流水线执行顺序,将多个核组配置为基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务。
其中,将执行核簇中的多个核组中流水线执行顺序位于第K位的核组对应配置为执行输入序列所对应的第L个时间步的计算任务,L=n*m+K,n为当前循环次序,m为执行核簇中的多个核组中核组的数量,K为大于或等于1的整数,输入序列所对应的时间步数量为T,n为非负整数且n小于或等于N-1,N为总循环次数;当T大于m,且T为m的整数倍时,N=T/m;当T大于m,且T为m的非整数倍时,N=[T/m]+1,[T/m]表示取整运算;当T小于或等于m时,N=1。
示例性的,以图4中执行核簇01为例,执行核簇01中包括核组011、核组012、核组013,共m=3个核组,执行核簇01中多个核组的流水线执行顺序如图5所示,假设当前输入序列所对应的时间步数量为T=6,则总循环次数为N=6/3=2;在第n=0次循环中,在流水线执行顺序中位于第1位的核组011配置为执行输入序列所对应的第1个时间步的计算任务,位于第2位的核组012配置为执行输入序列所对应的第2个时间步的计算任务,位于第3位的核组013配置为执行输入序列所对应的第3个时间步的计算任务;在第n=1次循环中,位于第1位的核组011配置为执行输入序列所对应的第4个时间步的计算任务,位于第2位的核组012配置为执行输入序列所对应的第5个时间步的计算任务,位于第3位的核组013配置为执行输入序列所对应的第6个时间步的计算任务,至此,输入序列对应的所有时间步的计算任务均执行完成。
示例性的,以图4中执行核簇01为例,执行核簇01中包括核组011、核组012、核组013,共m=3个核组,执行核簇01中多个核组的流水线执行顺序如图5所示,假设当前输入序列所对应的时间步数量为T=4,则总循环次数为N=[4/3]+1=2;在第n=0次循环中,在流水线执行顺序中位于第1位的核组011配置为执行输入序列所对应的第1个时间步的计算任务,位于第2位的核组012配置为执行输入序列所对应的第2个时间步的计算任务,位于第3位的核组013配置为执行输入序列所对应的第3个时间步的计算任务;在第n=1次循环中,位于第1位的核组011配置为执行输入序列所对应的第4个时间步的计算任务,至此,输入序列对应的所有时间步的计算任务均执行完成。
示例性的,以图4中执行核簇01为例,执行核簇01中包括核组011、核组012、核组013,共m=3个核组,执行核簇01中多个核组的流水线执行顺序如图5所示,假设当前输入序列所对应的时间步数量为T=2,则总循环次数为N=1;在第n=0次循环中,在流水线执行顺序中位于第1位的核组011配置为执行输入序列所对应的第1个时间步的计算任务,位于第2位的核组012配置为执行输入序列所对应的第2个时间步的计算任务,至此,输入序列对应的所有时间步的计算任务均执行完成。
在一些实施例中,执行核簇中的多个核组中流水线执行顺序位于第K位的核组还配置为在第K+1位的核组执行当前输入序列所对应的第L+1个时间步的计算任务的同时,执行下一个输入序列所对应的第L个时间步的计算任务。
示例性的,以图4中执行核簇01为例,核组011执行完当前输入序列对应的第1个时间步的计算任务并将输出数据传输给核组012之后,核组012执行当前输入序列的第2个时间步的计算任务,同时,核组011开始执行下一个输入序列对应的第1个时间步的计算任务;接着,在核组012执行完当前输入序列的第2个时间步的计算任务并将输出数据传输给核组013之后,核组013执行当前输入序列的第3个时间步的计算任务,同时,核组012开始执行下一个输入序列对应的第2个时间步的计算任务,若核组011也已执行完下一个输入序列对应的第1个时间步的计算任务并将输出数据传输给核组012,则核组011可以继续执行下下个输入序列对应的第1个时间步的计算任务;依此类推,在一个核组执行完一个输入序列的一个时间步的计算任务之后,该核组即可接着执行下一个输入序列的一个时间步的计算任务,下一个输入序列无需等待当前输入序列处理完成之后再执行,而是按照上述方式与当前输入序列并行流水线处理,由此可以有效提高输入序列的处理效率,提高时序神经网络在映射的执行核簇上的计算效率,提高执行核簇中核组资源的利用效率,实现时序神经网络的加速执行。
在一些实施例中,时序神经网络的输入序列的长度通常与循环流水线的长度不相等,其中输入序列的长度可根据输入序列对应的时间步数量确定,循环流水线的长度可根据执行核簇中核组的数量确定,当一个输入序列计算结束时,往往循环流水线中会存在剩余的空闲的核组,因此为了提高执行核簇中核组资源的利用效率,提高核组资源的计算负载均衡,在一些实施例中,在当前输入序列所对应的时间步数量T小于执行核簇中的多个核组中核组的数量m时,在流水线执行顺序位于第T位的核组执行当前输入序列所对应的第T个时间步的计算任务完成之后,从第T+1位的核组开始,执行核簇中的多个核组基于循环流水线方式,执行下一个输入序列所对应的多个时间步的计算任务。
示例性的,以图4中执行核簇01为例,执行核簇01中包括核组011、核组012、核组013,共m=3个核组,执行核簇01中多个核组的流水线执行顺序如图5所示,假设当前输入序列所对应的时间步数量为T=2,则核组011配置为执行当前输入序列对应的第1个时间步的计算任务,核组012配置为执行当前输入序列对应的第2个时间步的计算任务,在循环流水线中,存在剩余的核组013空闲,则在流水线执行顺序位于第2位的核组012执行当前输入序列所对应的第2个时间步的计算任务完成之后,从第3位的核组013开始,执行核簇中的多个核组013、011、012基于循环流水线方式,执行下一个输入序列所对应的多个时间步的计算任务。
为了进一步优化输入序列的处理效率,提高时序神经网络的计算效率,实现时序神经网络的加速执行,在一些实施例中,在当前输入序列所对应的时间步数量T小于执行核簇中的多个核组中核组的数量m时,在流水线执行顺序位于第1位的核组执行当前输入序列的第1个时间步的计算任务的同时,从第T+1位的核组开始,执行核簇中的多个核组基于循环流水线方式,执行下一个输入序列所对应的多个时间步的计算任务。即在当前输入序列所对应的时间步数量T小于执行核簇中的多个核组中核组的数量m的情况下,当前输入序列和下一个输入序列可以并行执行,下一个输入序列无需等待当前输入序列处理完成之后再执行,从而优化输入序列的处理效率,提高时序神经网络的计算效率,降低计算延迟,实现时序神经网络的加速执行。
在一些实施例中,众核芯片中多个处理核可以按照与片外设备之间的通信关系划分为通信核和非通信核,图6为众核芯片中通信核和非通信核的排布情况示意图,如图6所示,众核芯片架构一般是在二维平面上展开的众核计算架构,通常将位于芯片边缘的处理核作为芯片与片外设备进行数据通信交互,将这类的处理核定义为通信核,其他处理核为非通信核,通信核仍具有计算功能。换言之,通信核是指用于与片外设备进行数据通信交互的处理核,而非通信核则是指不用于与片外设备进行数据通信交互的处理核。其中,片外设备是设置在众核芯片外部,用于向众核芯片提供执行时序神经网络的计算任务所需的数据(如输入数据、参数等)的设备。需要说明的是,图6仅示例性示出了通信核和非通信核的3种排布情况,本公开实施例包括但不限于此3种情形。
在一些实施例中,在步骤S1中,执行核簇的划分可以优先遵循以下原则:执行核簇中多个处理核在众核芯片的片上网络中相互通信连接;执行核簇的多个处理核中包含至少一个通信核,或者,执行核簇的多个处理核中包含至少一个与任一通信核邻近的非通信核。其中,“邻近”是指在片上网络的通信位置相邻或者通信距离小于距离阈值,通信位置是指处理核在片上网络中的路由位置,通信距离是指通信位置之间的距离。
由于执行核簇中包含至少一个通信核,或者,包含至少一个与任一通信核邻近的非通信核,因此,执行核簇在执行时序神经网络的计算任务时,执行核簇中核组可以直接通过通信核与片外设备进行输入输出数据的通信交互,或者通过与通信核邻近的非通信核,经由通信核与片外设备进行输入输出数据的通信交互,由此可以有利于降低芯片整体的数据传输代价。
在一些实施例中,在规划核组对应的流水线执行顺序的步骤中,核组的流水线执行顺序的规划可以优先遵循以下原则:多个核组中流水线执行顺序位于第K位的核组和流水线执行顺序位于第K+1位的核组在众核芯片的片上网络中的路由位置相邻;且,基于存在输入输出数据量超过阈值的计算任务所对应的时间步的顺序,确定包含至少一个通信核或至少一个与任一通信核邻近的非通信核的核组的流水线执行顺序。
在一方面,对于流水线执行顺序相邻的两个核组,该两个核组中流水线执行顺序在前的核组执行完当前时间步对应的计算任务之后,通常需要将输出数据传递给流水线执行顺序在后的核组,而由于该两个核组在片上网络的路由位置相邻,即该两个核组之间的通信距离较近,因此有利于提高该两个核组之间的数据传输效率,有利于降低芯片整体的数据传输代价。
在另一方面,时序神经网络的输入序列所对应的时间步是具有先后顺序的,对于存在大量输入输出数据量的时间步,根据该时间步在输入序列对应的所有时间步中的顺序确定该核组的流水线执行顺序,并将该时间步对应的计算任务部署至包含通信核或者与通信核邻近的非通信核的核组,如此,该核组在执行该时间步对应的计算任务时,可以直接通过自身包含的通信核与片外设备进行输入输出数据的传输,或者通过与通信核邻近的非通信核与通信核进行通信,以经由通信核与片外设备进行输入输出数据的传输,由此可以有利于降低芯片整体的数据传输代价。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了一种时序神经网络的映射装置、电子设备、计算机可读存储介质,上述映射装置、电子设备及计算机可读存储介质均可用来实现本公开提供的映射方法,相应技术方案和描述和参见方法部分的相应记载,此处不再赘述。
图7为本公开实施例提供的一种时序神经网络的映射装置的结构示意图。
如图7所示,本公开实施例还提供了一种时序神经网络的映射装置200,时序神经网络包括处理单元,处理单元用于依次执行输入序列所对应的每个时间步的计算任务,该装置200包括:
划分单元201,用于:将众核芯片中多个处理核划分为多个执行核簇,执行核簇包括多个处理核;将执行核簇中多个处理核划分为多个核组,核组包括至少一个处理核。
映射单元202,用于:将多个时序神经网络分别映射至多个执行核簇,每个执行核簇配置为独立运行对应的一个时序神经网络,执行核簇中每个核组均对应部署一个处理单元;针对每个执行核簇,将执行核簇中多个核组配置为基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务。
在一些实施例中,映射单元202还用于规划执行核簇中的多个核组中每个核组对应的流水线执行顺序。在一些实施例中,将执行核簇中多个核组配置为基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务,包括:根据多个核组中每个核组对应的流水线执行顺序,将多个核组配置为基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务。
其中,将所述多个核组中流水线执行顺序位于第K位的核组对应配置为执行所述输入序列所对应的第L个时间步的计算任务,L=n*m+K,n为当前循环次序,m为所述多个核组中核组的数量,K为大于等于1的整数,输入序列所对应的时间步数量为T,n为非负整数且n小于或等于N-1,N为总循环次数;当T大于m,且T为m的整数倍时,N=T/m;当T大于m,且T为m的非整数倍时,N=[T/m]+1;当T小于或等于m时,N=1。
在一些实施例中,多个核组中流水线执行顺序位于第K位的核组还配置为在第K+1位的核组执行当前输入序列所对应的第L+1个时间步的计算任务的同时,执行下一个输入序列所对应的第L个时间步的计算任务。
在一些实施例中,在当前输入序列所对应的时间步数量T小于多个核组中核组的数量m时,在流水线执行顺序位于第T位的核组执行当前输入序列所对应的第T个时间步的计算任务完成之后,从第T+1位的核组开始,多个核组基于循环流水线方式,执行下一个输入序列所对应的多个时间步的计算任务。
在一些实施例中,众核芯片中多个处理核包括通信核和非通信核,通信核用于与片外设备进行数据通信交互;执行核簇中多个处理核在众核芯片的片上网络中相互通信连接;执行核簇的多个处理核中包含至少一个通信核,或者,执行核簇的多个处理核中包含至少一个与任一通信核邻近的非通信核。
在一些实施例中,众核芯片中多个处理核包括通信核和非通信核,通信核用于与片外设备进行数据通信交互;多个核组中流水线执行顺序位于第K位的核组和流水线执行顺序位于第K+1位的核组在众核芯片的片上网络中的路由位置相邻;且,基于存在输入输出数据量超过阈值的计算任务所对应的时间步的顺序,确定包含至少一个通信核或至少一个与任一通信核邻近的非通信核的核组的流水线执行顺序。
本公开实施例所提供的映射装置200,用于实现上述的映射方法,具体相关描述可参见上述实施例的映射方法中相关的描述,此处不再赘述。
图8为本公开实施例提供的一种时序神经网络加速器的结构示意图。
如图8所示,本公开实施例还提供了一种时序神经网络加速器,时序神经网络包括处理单元,处理单元用于依次执行输入序列所对应的每个时间步的计算任务,该加速器300包括:
众核芯片301,包括多个执行核簇,执行核簇包括多个处理核,执行核簇中多个处理核被划分为多个核组,核组包括至少一个处理核,每个执行核簇配置为独立运行对应的一个时序神经网络,执行核簇中每个核组均对应部署一个处理单元,执行核簇中多个核组配置为基于循环流水线方式,执行所映射的时序神经网络的输入序列所对应的多个时间步的计算任务。
时空调度器302,用于配置时序神经网络的当前输入序列的输入时间和对应的核组。
在本公开实施例中,时空调度器302可以根据当前输入序列对应的时间步,通过配置时序神经网络的当前输入序列的输入时间和对应的核组,以在当前输入序列对应的每个时间步,将当前输入序列中相应的输入数据输入至相应的核组,以使核组执行对应时间步的计算任务。
在一些实施例中,如图8所示,加速器300还包括片外设备303,片外设备303可以时片外存储器,片外存储器可以用于存储时序神经网络的输入序列以及输出数据。
本公开实施例所提供的加速器300中,时序神经网络基于上述实施例提供的映射方法映射至众核芯片301,具体相关描述可参见上述实施例的映射方法中相关的描述,此处不再赘述。
图9为本公开实施例提供的一种电子设备的组成框图,参照图9,本公开实施例提供了一种电子设备,该电子设备包括:至少一个处理器41;至少一个存储器42,以及一个或多个I/O接口43,连接在处理器41与存储器42之间;其中,存储器42存储有可被至少一个处理器41执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器41执行,以使至少一个处理器41能够执行上述的映射方法。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述的映射方法。其中,计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述的映射方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、闪存或其他存储器技术、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

Claims (11)

1.一种时序神经网络的映射方法,其特征在于,所述时序神经网络包括处理单元,所述处理单元用于依次执行输入序列所对应的每个时间步的计算任务,所述映射方法包括:
将众核芯片中多个处理核划分为多个执行核簇,所述执行核簇包括多个处理核;
将所述执行核簇中多个处理核划分为多个核组,所述核组包括至少一个处理核;
将多个所述时序神经网络分别映射至多个执行核簇,每个所述执行核簇配置为独立运行对应的一个所述时序神经网络,所述执行核簇中每个核组均对应部署一个所述处理单元;
针对每个所述执行核簇,将所述执行核簇中多个核组配置为基于循环流水线方式,执行所映射的所述时序神经网络的输入序列所对应的多个时间步的计算任务。
2.根据权利要求1所述的映射方法,其特征在于,将待映射的一个时序神经网络复制为多个,得到多个所述时序神经网络,多个所述时序神经网络分别用于处理同一数据处理任务的不同的输入序列;或者,
多个所述时序神经网络为不同的时序神经网络,多个所述时序神经网络中每个时序神经网络对应用于处理一种数据处理任务,不同时序神经网络对应处理不同数据处理任务。
3.根据权利要求1所述的映射方法,其特征在于,在所述将所述执行核簇中多个核组配置为基于循环流水线方式,执行所映射的所述时序神经网络的输入序列所对应的多个时间步的计算任务之前,所述映射方法还包括:规划所述多个核组中每个核组对应的流水线执行顺序;
所述将所述执行核簇中多个核组配置为基于循环流水线方式,执行所映射的所述时序神经网络的输入序列所对应的多个时间步的计算任务,包括:根据所述多个核组中每个核组对应的流水线执行顺序,将所述多个核组配置为基于循环流水线方式,执行所映射的所述时序神经网络的输入序列所对应的多个时间步的计算任务;
其中,将所述多个核组中流水线执行顺序位于第K位的核组对应配置为执行所述输入序列所对应的第L个时间步的计算任务,L=n*m+K,n为当前循环次序,m为所述多个核组中核组的数量。
4.根据权利要求3所述的映射方法,其特征在于,所述多个核组中流水线执行顺序位于第K位的核组还配置为在第K+1位的核组执行当前输入序列所对应的第L+1个时间步的计算任务的同时,执行下一个输入序列所对应的第L个时间步的计算任务。
5.根据权利要求3所述的映射方法,其特征在于,在当前输入序列所对应的时间步数量T小于所述多个核组中核组的数量m时,在流水线执行顺序位于第T位的核组执行当前输入序列所对应的第T个时间步的计算任务完成之后,从第T+1位的核组开始,所述多个核组基于循环流水线方式,执行下一个输入序列所对应的多个时间步的计算任务。
6.根据权利要求1所述的映射方法,其特征在于,所述众核芯片中多个处理核包括通信核和非通信核,所述通信核用于与片外设备进行数据通信交互;
所述执行核簇中多个处理核在所述众核芯片的片上网络中相互通信连接;
所述执行核簇的多个处理核中包含至少一个通信核,或者,所述执行核簇的多个处理核中包含至少一个与任一通信核邻近的非通信核。
7.根据权利要求3所述的映射方法,其特征在于,所述众核芯片中多个处理核包括通信核和非通信核,所述通信核用于与片外设备进行数据通信交互;
所述多个核组中流水线执行顺序位于第K位的核组和流水线执行顺序位于第K+1位的核组在所述众核芯片的片上网络中的路由位置相邻;且,
基于存在输入输出数据量超过阈值的计算任务所对应的时间步的顺序,确定包含至少一个通信核或至少一个与任一通信核邻近的非通信核的核组的流水线执行顺序。
8.一种时序神经网络的映射装置,其特征在于,所述时序神经网络包括处理单元,所述处理单元用于依次执行输入序列所对应的每个时间步的计算任务,所述映射装置包括:
划分单元,用于:将众核芯片中多个处理核划分为多个执行核簇,所述执行核簇包括多个处理核;将所述执行核簇中多个处理核划分为多个核组,所述核组包括至少一个处理核;
映射单元,用于:将多个所述时序神经网络分别映射至多个执行核簇,每个所述执行核簇配置为独立运行对应的一个所述时序神经网络,所述执行核簇中每个核组均对应部署一个所述处理单元;针对每个所述执行核簇,将所述执行核簇中多个核组配置为基于循环流水线方式,执行所映射的所述时序神经网络的输入序列所对应的多个时间步的计算任务。
9.一种时序神经网络加速器,其特征在于,所述时序神经网络包括处理单元,所述处理单元用于依次执行输入序列所对应的每个时间步的计算任务,所述加速器包括:
众核芯片,包括多个执行核簇,所述执行核簇包括多个处理核,所述执行核簇中多个处理核被划分为多个核组,所述核组包括至少一个处理核,每个所述执行核簇配置为独立运行对应的一个所述时序神经网络,所述执行核簇中每个核组均对应部署一个所述处理单元,所述执行核簇中多个核组配置为基于循环流水线方式,执行所映射的所述时序神经网络的输入序列所对应的多个时间步的计算任务;
时空调度器,用于配置所述时序神经网络的当前输入序列的输入时间和对应的核组。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7中任一项所述的映射方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-7中任一项所述的映射方法。
CN202211405066.XA 2022-11-10 2022-11-10 时序神经网络的映射方法及装置、加速器 Pending CN115660054A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211405066.XA CN115660054A (zh) 2022-11-10 2022-11-10 时序神经网络的映射方法及装置、加速器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211405066.XA CN115660054A (zh) 2022-11-10 2022-11-10 时序神经网络的映射方法及装置、加速器

Publications (1)

Publication Number Publication Date
CN115660054A true CN115660054A (zh) 2023-01-31

Family

ID=85021522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211405066.XA Pending CN115660054A (zh) 2022-11-10 2022-11-10 时序神经网络的映射方法及装置、加速器

Country Status (1)

Country Link
CN (1) CN115660054A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12072834B1 (en) 2023-04-06 2024-08-27 Moffett International Co., Limited Hierarchical networks on chip (NoC) for neural network accelerator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12072834B1 (en) 2023-04-06 2024-08-27 Moffett International Co., Limited Hierarchical networks on chip (NoC) for neural network accelerator

Similar Documents

Publication Publication Date Title
US11983534B2 (en) Calculation method and related product
US11080049B2 (en) Apparatus and methods for matrix multiplication
US9082078B2 (en) Neural processing engine and architecture using the same
US10324730B2 (en) Memory shuffle engine for efficient work execution in a parallel computing system
US20030023830A1 (en) Method and system for encoding instructions for a VLIW that reduces instruction memory requirements
US20070169001A1 (en) Methods and apparatus for supporting agile run-time network systems via identification and execution of most efficient application code in view of changing network traffic conditions
KR102204282B1 (ko) 다수의 기능 유닛을 가지는 프로세서를 위한 루프 스케쥴링 방법
CN110046704B (zh) 基于数据流的深度网络加速方法、装置、设备及存储介质
US11609792B2 (en) Maximizing resource utilization of neural network computing system
US20210232435A1 (en) Tile subsystem and method for automated data flow and data processing within an integrated circuit architecture
FR3091375A1 (fr) Instruction de chargement-stockage
US20130156043A1 (en) Methods and systems for routing in a state machine
US11907828B2 (en) Deep neural network on field-programmable gate array
FR3091389A1 (fr) Bancs de registres dans un processeur à fils d’exécution multiples
US11556756B2 (en) Computation graph mapping in heterogeneous computer system
US20190332924A1 (en) Central scheduler and instruction dispatcher for a neural inference processor
US11175919B1 (en) Synchronization of concurrent computation engines
CN102446100B (zh) 用于数据类型的类型和长度抽象的系统和方法
CN115660054A (zh) 时序神经网络的映射方法及装置、加速器
US10990073B2 (en) Program editing device, program editing method, and computer readable medium
US10922146B1 (en) Synchronization of concurrent computation engines
CN118034924A (zh) 基于众核系统的数据处理方法、装置、电子设备和介质
CN115952847A (zh) 神经网络模型的处理方法及处理装置
US12039330B1 (en) Programmable vector engine for efficient beam search
US20080229063A1 (en) Processor Array with Separate Serial Module

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