CN114860417B - 多核神经网络处理器及用于该处理器多任务分配调度方法 - Google Patents
多核神经网络处理器及用于该处理器多任务分配调度方法 Download PDFInfo
- Publication number
- CN114860417B CN114860417B CN202210672025.0A CN202210672025A CN114860417B CN 114860417 B CN114860417 B CN 114860417B CN 202210672025 A CN202210672025 A CN 202210672025A CN 114860417 B CN114860417 B CN 114860417B
- Authority
- CN
- China
- Prior art keywords
- neural network
- task
- layer
- network processor
- compiling
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Abstract
多核神经网络处理器及用于该处理器的多任务分配调度方法,包括:获取包含多个神经网络任务的列表;利用离线编译模块依次对多任务列表中的各个任务进行编译,得到有多个编译版本的结果;根据系统状态,在线调度模块从每个任务已经编译的多个版本中,选择最优的版本进行调度执行;通过离线编译模块,该技术既可以得到多个满足不同拥塞情况和分配情况的最优编译版本,又可以不用保留所有的编译版本,节省存储开销。通过在线调度模块,动态的从待调度层的多个版本中选择性能最优的编译版本执行,并且调度多个不同任务的层在多核神经网络处理器上并行,提高多系统的性能。
Description
技术领域
本发明涉及人工智能技术领域,尤其是涉及一种多核神经网络处理器以及用于该多核神经网络处理器的多任务分配和调度方法。
背景技术
神经网络处理器(neural processing unit,NPU)是设计用来高效的支持神经网络(neural network,NN)的执行和计算,它的基本组成单元为权重缓存器(weightbuffer),统一缓存器(unified buffer),计算阵列以及激活单元(Norm/Activationmodule)。weight buffer用于存放NN中的权重信息。unified buffer主要用于存放输入特征值(ifmaps)和输出特征值(ofmaps)。计算阵列主要用于计算NN中的卷积等操作,它由多个处理单元(processing elements,PEs)构成,每个PE内部有一个乘加器可以完成权重和输入特征值的相乘。激活单元用于完成对输出特征值非线性计算。一个典型的NPU架构如图1(a)所示。
随着神经网络对算力的要求越来越高,单核的神经网络处理器已经无法满足现有的需求,在这种情况下,研究者们将单核的NPU扩展为了多核神经网络处理器。多核神经网络处理器主要有多个单核的NPU构成,他们之间通过片上网络(Network-on-Chip,NoC)连接起来,一个典型的多核神经网络处理器如图1(b)所示,其中N代表了单核的NPU,R代表了片上网络的路由器(router),它用于片上网络中的数据转发和交换。每个NPU都连接到一个本地的router上,由此接入NoC。
同时,神经网络非凡的准确性和性能使其在许多应用中得到广泛应用,例如自动驾驶,增强现实和虚拟现实(AR/VR)等。而在这些应用中,他们往往都包含多个子任务,使用了多个神经网络模型,例如表1列出了AR/VR中包含的子任务和对应的神经网络模型。为了能够发挥出多核神经网络处理器的高性能,需要将这些多任务的应用映射到多核神经网络处理器上,而且需要保证这些多个任务需要在规定的截止时间内完成,这样才能保证用户的体验和应用的实时性。在这个过程中有两个重要的配置需要考虑,第一个是给每个神经网络任务分配多少计算资源,即多少数量的神经网络处理器。第二个是每个神经网络的层如何在分配的多个神经网络处理器上并行,即每一层的并行策略,目前的并行策略主要有4种,分别为批次并行(Batch),输入特征值并行(ifmap),输出并行(output), 输入并行(input)。
在多核神经网络处理器上运行多任务主要分为两步,第一步是为每个神经网络任务分配计算资源并确定每一层的并行策略,第二步,调度任务到多核神经处理器上运行。在第一步中,现有的技术在分配时,会为单个神经网络任务分配整个或固定数量的计算资源,比如现有技术:Eunjin Baek, Dongup Kwon, and Jangwoo Kim. 2020. A multi-neuralnetwork acceleration architecture. In ISCA. IEEE, 940–953.、Mingyu Gao etal.2017. Tetris: Scalable and efficient neural network acceleration with 3dmemory. In ASPLOS. 751–764.、Yujeong Choi and Minsoo Rhu. 2020. PREMA: Apredictive multi-task scheduling algorithm for preemptible neural processingunits. In HPCA. IEEE, 220–233,是将多核中所有的神经网络处理器都分配给单个的神经网络任务;或者如现有技术:Soroush Ghodrati et al.2020. Planaria: Dynamicarchitecture fission for spatial multi-tenant acceleration of deep neuralnetworks. In MICRO. IEEE, 681–697. Jounghoo Lee et al.2021. DataflowMirroring: Architectural Support for Highly Efficient Fine-Grained SpatialMultitasking on Systolic-Array NPUs. In DAC是将所有的神经网络处理器平均或按照一定的比例分配给所有神经网络任务,此外,目前的技术基本都采用了固定的并行策略,即同一神经网络中,所有层的并行策略都是相同的。在第二步中,现有的技术调度时,主要采用了两种方式,第一种为分时复用,即依次将每个神经网络任务的每一层调度到多核神经网络处理器上执行,在执行时,神经网络任务的每一层都独占整个多核神经网络处理器平台,这种调度方式对应了分配方法中的第一种;第二种为分空间复用,即同时将多个神经网络任务调度到多核神经网络处理器平台上执行,在执行时每个任务只占据多核神经网络处理器计算资源的一部分,这种调度方式对应了分配方法中的第二种。
此外,现有技术,如发明名称:一种神经网络处理器及其控制方法,所述神经网络处理器包括由多个单核神经网络处理器和外围模块构成的神经网络处理器簇;所述外围模块包括主控单元和DMA模块;所述DMA模块用于将第一任务描述符搬运至所述主控单元;所述主控单元用于对所述第一任务描述符进行解析,根据解析结果确定分配至各个选定处理器中的子任务;对所述第一任务描述符进行修改,得到与各个所述选定处理器分别对应的第二任务描述符;将各个第二任务描述符配置给对应的各个所述选定处理器,并启动各个所述选定处理器处理对应的子任务。通过主控单元对各个单核神经网络处理器的统一调度管理,使得神经网络处理器可以充分发挥其运算性能。然而,该专利申请主要描述了一种多核神经网络处理器的结构以及将单个任务拆分到多个处理器上的方法,该专利申请是对神经网络处理器的架构做假设和限定,而且对多核神经网络处理器的连接方式也做了限定,并且该专利只针对了单个任务的调度并不能针对多任务的分配和调度方式。
并且,现有的相关技术和发明在进行多任务资源分配和调度时,都忽略了数据在片上网络上传输时的拥塞影响,并不能找到神经网络任务每一层的最优并行策略。
总之,现有技术的缺点在于,当多个神经网络任务在多核神经处理器上运行时,神经网络处理器的资源利用率低,不能发挥出多核神经网络处理器的性能。主要的原因在于,现有的分配方法都是按照单个神经网络任务进行分配的,而且神经网络所有层的并行策略也是固定的。但是在实际的神经网络中,每一层之间的尺寸并不是固定的,在相同的资源下,会偏好不同的并行策略,此外,多核神经网络处理器片上网络的拥塞情况也会导致不同层的最优并行策略发生变化。因此,现有固定静态的分配和并行策略会导致系统整体的利用率低,不能发挥出多核神经网络处理器的全部性能。
发明内容
本发明的目的是为了解决,现有的多核神经网络处理器多任务分配和调度技术中,固定静态的分配和并行策略导致系统资源利用率低的问题,提出了一种多核神经网络处理器以及用于该多核神经网络处理器的多任务分配和调度方法,其技术方案如下:
用于多核神经网络处理器的多任务分配和调度方法,该方法包括了离线编译模块和在线调度模块,其特征为:包括如下步骤:
步骤1:获取包含多个神经网络任务的列表;
步骤2:利用离线编译模块依次对多任务列表中的各个任务进行编译,得到有多个编译版本的结果;
步骤3:根据系统状态,在线调度模块从每个任务已经编译的多个版本中,选择最优的版本进行调度执行;
本发明还公开一种多核神经网络处理器,其特征为:包括上述多任务分配和调度方法,该多核神经网络处理器由N个同构的单核神经网络处理器构成,N为大于1的整数,每个神经网络处理器内部是一个二维的阵列,以用于完成卷积计算,单个神经网络处理器连接到片上的路由器中,并通过片上网络互相连接在一起进行数据交换。
本发明还公开一种控制系统,其特征为:所述控制系统中包括上述的多核神经网络处理器。
有益效果
与现有的技术相比,对于单个神经网络任务,本发明可以通过离线的模块的动态并行策略和分配方法,提高单个神经网络任务中每一层的利用率和性能,通过在线的调度模块,实现多任务在多核神经网络加速器上并行,可以提高多任务系统的性能,包括平均标准化周转时间(ANTT)和系统吞吐量(STP)。
附图说明
图1(a)为现有技术中神经网络处理器架构结构示意图;
图1(b)为现有技术中典型的多核神经网络处理器架构示意图;
图2为本发明整体框架图;
图3为本发明离线编译模块的流程图;
图4为本发明在线调度模块的流程图;
图5为本发明分析评估模型的流程图。
具体实施方式
我们在研究多核神经网络处理器运行多任务的过程中,发现目前造成系统整体资源利用率低,没有发挥出多核神经网络处理器的性能的原因在于,现有的分配,调度框架并不是以神经网络任务的层为单位,而是以单个神经网络任务为单位,并且神经网络每一层的并行策略是固定的,但是由于神经网络层的异构性,会导致在相同数量神经网络处理器上并行,一些层的资源利用率低,最终导致任务整体的资源利用率低,并且,我们发现,不同的片上数据拥塞情况也会使同一层的最优并行策略发生变化。经过我们研究,我们发现该问题可以通过一种针对多核神经网络处理器的细粒度多任务分配和调度框架来解决。该框架由两个部分组成, 第一个部分为离线编译模块,该模块决定了在离线编译时,每个神经网络任务每一层在分配不同的神经网络处理器数量和不同的片上数据拥塞情况下,最优的并行策略,生成了多个编译版本,并且该模块预估了每一层在给定分配资源和拥塞程度下的运行时间和资源利用率,此外该模块还根据神经网络任务中,每层的累积计算量和该任务的总计算量之比,得到每一层的预估进度。第二个部分为在线的调度模块,该模块根据离线编译模块中得到的预估进度,和每个任务用户设置的截止时间,动态的为每个任务分配一个优先级;然后根据优先级对待调度任务中的待调度层依次进行调度,在线调度模块会根据系统的状态,预估出当前系统的拥塞程度,从而选择最优的编译版本进行执行,在线调度模块会同时调度多个任务到多核神经网络处理器平台上执行,通过多任务并行,提高系统的性能。
实施例1
用于该多核神经网络处理器的多任务分配和调度方法,其特征为:包括如下步骤:
如图2所示,该图包括了本发明的整体框架图。
步骤1:获取包含多个神经网络任务的列表;
获取待调度的多个神经网络任务的信息,包括了每个神经网络任务的模型信息,包括每一层的尺寸信息,计算类型,以及每个神经网络任务设定的截止时间。
步骤2:利用离线编译模块依次对多任务列表中的每个任务进行编译,最终得到每个任务的一个多版本编译结果;
如图3所示,该图列出了离线编译模块的流程图。
步骤S302,离线编译模块用分析评估模型依次对神经网络的每一层进行评估,获取在给定分配资源和指定配置下,每层的预估延迟和资源利用率。
离线编译模块首先会根据单核处理器的架构,建立一个单层神经网络在多核神经网络处理器上运行时的分析预估模型,该预估模型是根据神经网络处理器的数据流决定的,图5列出了当神经网络处理器数据流为输出固定模式(output stationary)时的一个预估模型,但需要注意的是,该图仅为示例,并非限定,在实际应用中,所述的预估模型可以根据神经网络处理器的数据流方式进行改变,包括输入固定模式(input stationary)和权重固定模式(weight stationary)。
步骤S501,预估模型获取给定的单层神经网络,神经网络处理器核数#core,设置的并行策略(包括批次并行(Batch),输入特征值并行(ifmap),输出并行(output), 输入并行(input))以及指定的拥塞因子memf(代表系统的拥塞情况)。
步骤S502,根据获取的#core和paralle,计算切分到单个神经网络处理器上输出的尺寸大小包括高度Hof,宽度Wof和通道数Cof,切分的方式是按照采用的paralle对对应维度的数据进行平均切分。
步骤S503,根据上述获得的单个神经网络处理上的输出尺寸,计算该输出在单个神经网络处理器阵列垂直方向和水平方向上展开次数foldh和foldw,计算公式如下:
foldh = ⌈(Hof*Wof)/单个神经网络处理器阵列高度⌉
foldw = ⌈Cof/单个神经网络处理器阵列宽度⌉
步骤S504,根据单个神经网络处理器上的输出尺寸,计算输出在单个神经网络处理器阵列垂直方向和水平方向上排空计算数据所需要的周期数drainh和drainw,计算公式如下:
drainh = (Hof*Hof-1)%单个神经网络处理器阵列高度
drainw = (Cof-1)%单个神经网络处理器阵列宽度
步骤S505,根据切分到单个神经网络处理器上权重的尺寸,计算完成单个输出所需要的周期数PXperwin,计算公式如下:
PXperwin = 权重高度*权重宽度*权重的通道数
步骤S506,根据foldh,foldw,drainh,drainw和PXperwin计算完成所有输出所需要的计算周期C1,计算公式如下:
C1= PXperwin * foldh * foldw + max(drainh, drainw)
步骤S507,根据分配到单个神经网络处理器的输出尺寸计算出对应的输入大小,并计算出加载输入和保存输出所需要的周期数M1和M2,计算公式如下:
M1 = 切分到单个神经网络处理器上的输入大小 / (系统带宽*memf)
M2 = 切分到单个神经网络处理器上的输出大小 / (系统带宽*memf)
步骤S508,根据C1,M1和M2,预估出完成该层输出所需要的所有时间TotalLatency,公式如下:
TotalLatency = sum(M1,C1,M2)
得到的TotalLatency即为该层网络在给定#core个神经网络处理器,并行策略paralle以及拥塞因子为memf下的预估全部延迟,此外,在根据获得的TotalLatency就可以预估出该层的资源利用率,公司如下:
资源利用率 =(PXperwin*Hof*Wof*Cof)/(TotalLatency * 单个神经网络处理器阵列高度 * 单个神经网络处理器阵列宽度)
由此,便可通过分析评估模型得到神经网络任务在指定分配资源利用率和指定配置下的预估总延迟和资源利用率。
步骤S303,通过动态并行策略,在给定分配资源下,搜索神经网络任务每层在不同拥塞情况下资源利用率最高的并行策略,形成集合Si。
对于每层待编译的神经网络层,离线编译模块在给定N个神经网络处理器的资源下,改变拥塞因子memf的值,并利用上述分析评估模型依次计算在不同拥塞因子下各个并行策略的预估延迟和资源利用率,拥塞因子的memf的范围在本发明中被设置为3个值{0.75,0.5,0.25},注意这里仅为示例,并非限定,实际应用用中,memf的范围可以扩大为多个不同的值。
在获得某拥塞因子设置下所有并行策略的预估延迟和利用率后,选择资源利用率最高的并行策略作为拥塞因子该值下的配置。
在把所有拥塞因子配置的值都遍历之后,所有配置下选择出的并行策略形成集合Si。
步骤S304,根据系统设置,改变每层的资源分配情况,并利用动态并行策略获得每种情况下的集合Si,在获得所有资源分配情况下的Si后,只保留每层性能位于帕累托最优线上的分配方案,形成多个版本的编译结果,并有效节省了保留所有编译版本所需要的存储开销。
在所述动态并行策略的基础上,离线编译模块改变给每层分配的神经网络处理器数量N,获得在每种分配数量下,所有拥塞情况下的集合Si,注意N的变化范围在本发明中设置为从1到系统神经网络处理器的总数量。
在获得每层所有分配情况下的集合Si后,根据设定的拥塞因子范围建立对应数量的坐标系,比如本发明中建立3个坐标系。
将每一层在给定分配数量N的神经网络处理器和指定拥塞情况下得到的最优预估结果,看作一个坐标(预估延迟,预估利用率),并将得到的坐标放入上述对应拥塞因子构成的坐标系中构成散点图。
获得所述的多个坐标系中所有位于帕累托最优前沿上的点,并取得这些点对应的配置方案,保留所有的配置方案对应的编译版本,构成了该层的多版本编译的结果。
步骤S305,根据编译到该层累积的计算量和该任务的总计算量,离线编译模块对于每一层生成一个预估进度,计算公式如下:
预估进度 = 编译到某层为止,已编译层累积的计算量/该任务总的计算量对所有多任务的每一层都重复上述S303到S305的步骤,离线编译模块最终输出所有多任务所有层的多版本编译结果。
步骤3:根据系统状态状态,在线调度模块从多任务已编译的版本中动态选择最优的版本进行调度执行;
所述步骤3进一步包括如下内容:
如图4所示,该图列出了在线调度模块的流程图。
步骤S401,根据每个任务的截止时间,在线调度模块计算每个任务的优先级,尝试按照优先级从高到低依次对每个任务按层调度。
在计算每个任务的优先级时,在线模块根据离线模块中设置的预估进度,当前任务已经经过的时间和设置的截止时间,计算出优先级,计算公如下:
当前任务进度 = 当前任务已经过时间/当前任务的截止时间
当前任务优先级 = 当前任务待调度层的预估进度 – 当前任务进度
按照每个任务计算出的优先级,按照优先级从高到低(数字从小到大),在线调度模块一次进行尝试调度。
步骤S402,对于每个待调度任务的层,在线调度模块根据系统状态和该层的编译结果,利用拥塞评估器预估每个编译版本在当前系统状态下的性能表现。
在线调度模块获得待调度任务后,获取该任务待调度层所有的编译版本和对应的配置,包括分配的神经网络处理器数量#core,预估的C1,M1和M2的值等。
在线调度模块利用拥塞评估器对当前系统的拥塞情况做预估,该拥塞预估器采用一种基于回归模型的方法,在本发明中,采用了基于随机森林的回归模型,注意在实际应用中,也可采用其他近似功能的回归模型,比如决策树,最邻近回归等,所采用的回归模型都需要首先进行离线的训练,训练的平台为目标平台。
拥塞评估器根据每个编译版本分配的神经网络处理器数量#core,当前系统已被占用的神经网络处理器数量,以及当前系统已部署的层的平均C1/(M1+M2)来预估拥塞因子memf。
基于上述拥塞评估器得到的memf,更新当前待调度层编译版本中预估的M1和M2,以及总的延迟时间。
步骤S403,在线调度模块根据上述每个编译版本重新预估的延迟时间,从调度层的多个编译版本中选择预估延迟时间最少,且需要分配的#core少于等于当前系统空闲资源的版本进行调度执行。
完成上述步骤后,如果当前系统还有空闲神经网络处理器,在线调度模块按照优先级取得下一个调度任务的带调度层重复步骤S402,直到系统没有空闲资源或当前空闲资源不满足任意一种编译版本要求。
本发明具有如下优点:
1.分析评估模型(该模型具体结构如图5所示);该技术用于在离线编译时,根据神经网络处理器的架构,分配的神经网络处理器数量,每一层的尺寸,以及所采用的并行策略和设定的拥塞情况,能够快速且准确的预估出神经网络每一层在分配的多个神经网络处理器上的运行时间,资源利用率。
2.动态并行策略(步骤S303);该技术用于在离线编译时,使用分析评估模型计算每个神经网络中的每一层在给定神经网络处理器数量和拥塞情况下,不同的并行策略(批次并行,输入特征值并行,输出并行, 输入并行)下的资源利用率,并选择资源利用率最高的方案作为该层的并行策略。
3.按照帕累托最优的分配方法(步骤S304);在离线编译时,每一个神经网络任务都有一个可分配的多核神经网络处理器数量的最大值N,N小于等于多核神经网络处理器平台中神经网络处理器的总数量M,N值也可以由用户指定。对于神经网络每一层,本技术得到在分配1到N个神经网络处理器的情况下,采用动态并行策略和分析评估模型计算出的在不同拥塞因子值下,最优方案预估的时间和资源利用率,并将这两个值组成一个坐标(预估时间,资源利用率)并放到对应拥塞因子构成的坐标系中。由此就可以在每个坐标系中得到N个点的坐标,本技术会求得这N个点坐标构成的散点图的帕累托最优前沿,并保留在每个坐标系中位于帕累托最优前沿的编译版本。通过这种方式既可以得到多个满足不同拥塞情况和分配情况的最优编译版本,又可以不用保留所有的编译版本,节省了存储开销。
4.在线调度模块(如图4所示);在线调度时,该技术可以根据每个神经网络预估的进度和当前的进度相比,给每个网络动态的分配优先级并按照优先级进行调度,然后该技术获取待调度任务待调度层的编译结果和对应的配置,并利用拥塞评估器预估出当前系统的拥塞程度并更新每个编译版本的预估结果,该技术再根据更新后的预估结果和系统的空闲资源,动态的从待调度层的多个版本中选择性能最优的编译版本执行,并且可以调度多个不同任务的层在多核神经网络处理器上并行,提高多系统的性能。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各 种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。
Claims (4)
1.用于多核神经网络处理器的多任务分配和调度方法,其特征为:包括如下步骤:
步骤1:获取包含多个神经网络任务的列表;
步骤2:利用离线编译模块依次对多任务列表中的各个任务进行编译,得到有多个编译版本的结果:
步骤S302,所述离线编译模块用分析评估模型依次对神经网络的每一层进行评估,获取在给定分配资源和指定配置下,每层的预估延迟和资源利用率;
步骤S303,通过动态并行策略,在给定分配资源下,搜索神经网络任务每层在不同拥塞情况下资源利用率最高的并行策略,形成集合Si;
步骤S304,根据系统设置,改变每层的资源分配情况,并利用动态并行策略获得每种分配情况下的集合Si,在获得所有资源分配情况下的Si后,只保留每层性能位于帕累托最优线上的分配方案,形成多个版本的编译结果;
步骤S305,根据编译到该层累积的计算量和该任务的总计算量,离线编译模块对于每一层生成一个预估进度;
步骤3:根据系统状态,在线调度模块从每个任务已经编译的多个版本中,选择最优的版本进行调度执行:
步骤S401,根据每个任务的截止时间,在线调度模块计算每个任务的优先级,按照优先级从高到低依次对每个任务按层调度;
步骤S402,对于每个待调度任务的层,在线调度模块根据系统状态和该层的编译结果,利用拥塞评估器预估每个编译版本在当前系统状态下的性能表现;
步骤S403,在线调度模块根据上述预估的性能表现,从每层的多个编译版本中,选择性能最优的结果进行调度。
2.根据权利要求1所述的用于多核神经网络处理器的多任务分配和调度方法,其特征为:所述步骤1进一步包括如下内容:
获取待调度的多个神经网络任务的信息,包括每个神经网络任务的模型信息、每一层的尺寸信息,计算类型,以及每个神经网络任务设定的截止时间。
3.多核神经网络处理器,用于实施上述权利要求1-2任一所述的用于多核神经网络处理器的多任务分配和调度方法;其特征为:该多核神经网络处理器由N个同构的单核神经网络处理器构成,N为大于1的整数,每个神经网络处理器内部是一个二维的阵列,以用于完成卷积计算;单个神经网络处理器连接到片上的路由器中,并通过片上网络互相连接在一起进行数据交换。
4.一种控制系统,其特征为:所述控制系统中包括权利要求3所述的多核神经网络处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210672025.0A CN114860417B (zh) | 2022-06-15 | 2022-06-15 | 多核神经网络处理器及用于该处理器多任务分配调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210672025.0A CN114860417B (zh) | 2022-06-15 | 2022-06-15 | 多核神经网络处理器及用于该处理器多任务分配调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114860417A CN114860417A (zh) | 2022-08-05 |
CN114860417B true CN114860417B (zh) | 2023-05-02 |
Family
ID=82624567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210672025.0A Active CN114860417B (zh) | 2022-06-15 | 2022-06-15 | 多核神经网络处理器及用于该处理器多任务分配调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860417B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111191777A (zh) * | 2019-12-27 | 2020-05-22 | 深圳云天励飞技术有限公司 | 一种神经网络处理器及其控制方法 |
CN113360259A (zh) * | 2021-05-28 | 2021-09-07 | 清华大学 | 一种应用于面向云端深度学习推理的分布式fpga多任务调度算法 |
CN113742089A (zh) * | 2021-11-04 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 异构资源中神经网络计算任务的分配方法、装置和设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156666B (zh) * | 2011-04-20 | 2012-11-28 | 上海交通大学 | 用于粗粒度可重构阵列处理器资源调度的温度优化方法 |
CN105242909B (zh) * | 2015-11-24 | 2017-08-11 | 无锡江南计算技术研究所 | 一种基于多版本代码生成的众核循环分块方法 |
CN112101525A (zh) * | 2020-09-08 | 2020-12-18 | 南方科技大学 | 一种通过nas设计神经网络的方法、装置和系统 |
CN112084038B (zh) * | 2020-09-23 | 2021-10-15 | 安徽寒武纪信息科技有限公司 | 神经网络的内存分配方法及装置 |
CN114217930A (zh) * | 2021-12-17 | 2022-03-22 | 中山大学 | 一种基于混合任务调度的加速器系统资源优化管理方法 |
-
2022
- 2022-06-15 CN CN202210672025.0A patent/CN114860417B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111191777A (zh) * | 2019-12-27 | 2020-05-22 | 深圳云天励飞技术有限公司 | 一种神经网络处理器及其控制方法 |
CN113360259A (zh) * | 2021-05-28 | 2021-09-07 | 清华大学 | 一种应用于面向云端深度学习推理的分布式fpga多任务调度算法 |
CN113742089A (zh) * | 2021-11-04 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 异构资源中神经网络计算任务的分配方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114860417A (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Glushkova et al. | Mapreduce performance model for Hadoop 2. x | |
Barbosa et al. | Dynamic scheduling of a batch of parallel task jobs on heterogeneous clusters | |
CN107038070B (zh) | 一种云环境下执行可靠性感知的并行任务调度方法 | |
Chen et al. | Deep learning research and development platform: Characterizing and scheduling with qos guarantees on gpu clusters | |
CN114679451B (zh) | 面向边缘计算的服务调度系统及其调度方法 | |
Li et al. | Adaptive priority-based data placement and multi-task scheduling in geo-distributed cloud systems | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
Razavi et al. | FA2: Fast, accurate autoscaling for serving deep learning inference with SLA guarantees | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
Kim et al. | Energy-aware scenario-based mapping of deep learning applications onto heterogeneous processors under real-time constraints | |
CN114217930A (zh) | 一种基于混合任务调度的加速器系统资源优化管理方法 | |
Saleem et al. | A Survey on Dynamic Application Mapping Approaches for Real-Time Network-on-Chip-Based Platforms | |
CN114860417B (zh) | 多核神经网络处理器及用于该处理器多任务分配调度方法 | |
Lin et al. | Joint deadline-constrained and influence-aware design for allocating MapReduce jobs in cloud computing systems | |
Bytyn et al. | Dataflow aware mapping of convolutional neural networks onto many-core platforms with network-on-chip interconnect | |
CN114880111A (zh) | 基于dag任务拓扑结构的处理器资源分配方法、存储介质 | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
Wu et al. | Argus: Efficient job scheduling in rdma-assisted big data processing | |
Fan et al. | A survey on task scheduling method in heterogeneous computing system | |
Aida et al. | Performance enhancement of scheduling algorithm in heterogeneous distributed computing systems | |
Theocharides et al. | Hardware-enabled dynamic resource allocation for manycore systems using bidding-based system feedback | |
Wang et al. | A parallel tasks Scheduling heuristic in the Cloud with multiple attributes | |
Attiya et al. | Task allocation for minimizing programs completion time in multicomputer systems | |
Guirado et al. | Performance prediction using an application-oriented mapping tool | |
Wen et al. | Fast DRL-based scheduler configuration tuning for reducing tail latency in edge-cloud jobs |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Building 613A, Building 5, Qilin Artificial Intelligence Industrial Park, No. 266 Chuangyan Road, Qilin Technology Innovation Park, Nanjing City, Jiangsu Province, 211135 Patentee after: Zhongke Wuqi (Nanjing) Technology Co.,Ltd. Address before: Room 310, floor 3, block B, building 1, No. 9, Dazhongsi East Road, Haidian District, Beijing 100086 Patentee before: JEEJIO (BEIJING) TECHNOLOGY Co.,Ltd. |