CN110750351A - 多核任务调度器、多核任务调度方法、装置及相关产品 - Google Patents
多核任务调度器、多核任务调度方法、装置及相关产品 Download PDFInfo
- Publication number
- CN110750351A CN110750351A CN201911321283.9A CN201911321283A CN110750351A CN 110750351 A CN110750351 A CN 110750351A CN 201911321283 A CN201911321283 A CN 201911321283A CN 110750351 A CN110750351 A CN 110750351A
- Authority
- CN
- China
- Prior art keywords
- task
- information
- core
- scheduling
- 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.)
- Granted
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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种多核任务调度器、多核任务调度方法、装置及相关产品,所述多核任务调度器包括处理器核状态管理器、任务管理器和人工神经网络装置,其中:所述处理器核状态管理器用于接收处理器核发送的实时状态信息;所述任务管理器用于接收当前任务的任务信息并缓存所述任务信息;以及所述人工神经网络装置用于对来自所述处理器核状态管理器的实时状态信息、来自所述任务管理器的任务信息以及人工神经网络装置计算所需的参数进行计算,得出所述当前任务的调度信息。本申请针对芯片的任务管理机制效率低的问题,根据人工神经网络的计算来确定调度,能够不限于预先设定的规则和调度机制,且根据任务类型的不同调整调度过程,获得最佳的调度结果。
Description
技术领域
本申请涉及信息处理技术领域,具体涉及一种多核任务调度器、多核任务调度方法、装置及相关产品。
背景技术
集成电路规模的急速增长导致现代芯片架构向多核异构的方向发展,即一个芯片上往往集成了多种不同种类的处理器核,如常见的中央处理器 (Central ProcessorUnit,CPU)、图形处理器(Graphic Processer Unit,GPU) 以及视频编解码处理器 (VideoProcesser Unit,VPU)。如图1所示,这些处理器核通过片上通信总线互相连接,可进行处理器核与处理器核之间的直接通信,也可以通过共享的存储空间进行间接通信,多个处理器核能够通过通信协同进行数据处理完成大规模的计算任务。
多核异构的芯片架构在很大程度上缓解了由晶体管密度增长带来的功耗墙和温度墙问题,但同时也增加了整个芯片的设计复杂度,如何为大规模计算任务提供高效的任务管理机制,使得计算任务能合理分配给各个处理器核成为了多核异构芯片设计的核心问题。
目前主流的芯片设计中大多将任务管理机制的实现放在操作系统(OS,Operating System)层级,由于操作系统的主要进程运行在CPU上,整个芯片的任务调度严重依赖CPU的执行效率。当CPU自身存在大量计算任务负载时,有限的计算资源只有少量能提供给任务调度进程,使得整个芯片的使用效率急剧降低。
发明内容
本申请实施例提供了一种多核任务调度器、多核任务调度方法、装置及相关产品,根据人工神经网络的计算来确定调度,能够不限于预先设定的调度机制,根据任务类型的不同能够自适应调整调度过程,获得最佳的调度结果。
第一方面,提供一种多核任务调度器,其包括处理器核状态管理器、任务管理器和人工神经网络装置,其中:
所述处理器核状态管理器用于接收处理器核发送的实时状态信息;
所述任务管理器用于接收当前任务的任务信息并缓存所述任务信息;以及
所述人工神经网络装置用于对来自所述处理器核状态管理器的实时状态信息、来自所述任务管理器的任务信息以及人工神经网络装置计算所需的参数进行计算,得出所述当前任务的调度信息。
第二方面,本申请实施例提供了一种芯片,该芯片包括上述第一方面所述的多核任务调度器。
第三方面,本申请实施例提供了一种板卡,该板卡包括上述第二方面所述的芯片。
第四方面,本申请实施例提供了一种电子设备,该电子设备包括上述第三方面所述的板卡。
第五方面,提供一种基于人工神经网络的片上多核任务调度方法,其包括:
接收处理器核发送的实时状态信息;
接收并缓存任务信息;以及
基于所述实时状态信息、所述任务信息以及进行人工神经网络计算所需的参数进行人工神经网络计算,得出当前任务的调度信息。
第六方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第五方面的方法。
第七方面,提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第五方面提供的方法。
第八方面,提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行第五方面提供的方法。
本申请实施例提供了一种多核任务调度器、多核任务调度方法、装置及相关产品,根据人工神经网络的计算来确定调度,能够不限于预先设定的规则和调度机制,且人工神经网络具有实时训练的功能,能够对当前的场景进行训练,适应当前的实时场景,即根据任务类型的不同能够自适应调整调度过程,获得最佳的调度结果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种多核异构芯片的结构示意图。
图2是根据本申请实施例的多核任务调度器的结构示意图。
图3为一个实施例提供的一种板卡结构示意图。
图4是根据本申请实施例的多核任务调度方法的流程图。
图5是本申请实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和 “包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当... 时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
在现有技术中,有芯片设计者将任务调度器作为一个硬件模块集成在芯片中,以实现高效的实时任务调度。一种多核异构芯片结构如图1所示,使用者通过片外总线向芯片传输程序与数据,并存储在芯片的存储器中,然后向调度器发射计算任务。调度器接收到计算任务信息后进行任务拆分,任务拆分基于用户对任务类型以及任务运行所需处理器核数量的定义,将单个多处理器核计算任务拆分为多个单处理器核计算任务。随后调度器将完成子任务的分发,根据当前的处理器核状态,将子任务分配给空闲的处理器核并将其标记为被占用,待子任务完成后释放相应的处理器核占用状态。
然而,这类模块的设计都基于预先设定的一套固定机制,只能应对特定的任务类型,在处理其他任务类型时性能会有大幅下降。
针对上述现有技术中的技术问题,本申请提出一种新的多核任务调度器。参阅图2,图2是根据本申请实施例的多核任务调度器的结构示意图。如图2所示,该多核任务调度器包括处理器核状态管理器、任务管理器和人工神经网络装置。其中:所述处理器核状态管理器用于接收处理器核发送的实时状态信息;所述任务管理器用于接收任务信息并缓存所述任务信息;以及所述人工神经网络装置基于来自所述处理器核状态管理器的实时状态信息、来自所述任务管理器的任务信息以及人工神经网络装置计算所需的参数进行计算,得出当前任务的调度信息。
具体来说,在图2中,处理器核状态管理器用于接收至少一个处理器核发出的实时状态信息,并将实时状态信息发送给人工神经网络装置。其中,所述处理器核在任意时间只运行一个任务。在一个具体实施例中,该实时状态信息包括处理器核的占用情况、计算任务的规模以及所需的计算时间中的至少一个,其中,在一个具体实施例中,如果处理器核在执行指令,即表示处理器核被占用,而如果处理器核没有在执行指令,即表示处理器核未被占用,我们可以用“0”和“1”来表示处理器核的占用状态,例如,“1”表示占用,而“0”表示未占用。在一个可选实施例中,计算任务的规模可以为所运行指令代码的行数,一般来说,行数越多规模越大,反之则规模越小。在另一个可选实施例中,计算任务的规模可以为计算任务的复杂度,复杂度越高,计算任务的规模越大,反之则规模越小。在又一个可选实施例中,计算任务的规模可以为运算量,运算量越大,计算任务的规模越大,反之则规模越小。在一个可选实施例中,在实时状态信息的数据格式与人工神经网络输入的格式不匹配时,处理器核状态管理器将实时状态信息的数据格式转换为人工神经网络输入的格式。人工神经网络输入的格式可以包含各种数据格式,例如float32等等。例如,人工神经网络的输入格式是float32,而实时状态信息的数据格式是float16,此时需要将实时状态信息的数据格式转换为人工神经网络输入的格式。
如图2所示,任务管理器用于接收当前任务的任务信息并缓存所述任务信息。可选地,所述任务管理器包括任务缓存单元,所述任务缓存信息用于接收当前任务的任务信息并缓存所述任务信息。在一个具体实施例中,任务信息包括计算任务的类型、所需处理器核的数目、计算任务对应程序的起始地址以及可用存储空间的起始地址和范围中的至少一者。其中,计算任务的类型可以由用户划分:例如,可以是以任务的应用类型区分,比如图像处理任务,声音处理任务;也可以是以任务主要运行在何种处理器核上进行区分,比如以CPU为主,GPU为主,或者VPU为主。
在一个可选实施例中,任务管理器还可以包括任务拆分单元,其用于根据任务信息将当前任务拆分为至少一个子任务,得到至少一个子任务信息。这样,人工神经网络装置还可以根据所述实时状态信息、来自所述任务拆分单元的子任务信息以及人工神经网络装置计算所需的参数进行计算,得出当前任务的调度信息。在一个可选实施例中,该计算任务的拆分方式包括将单个多处理器核计算任务划分为多个单处理器核的子任务。例如,用户在定义任务需要什么样的核进行处理时,可以这样定义:完成一个任务的处理需要2个CPU核和2个GPU核,在实际运算的时候运行到不同的处理阶段,例如指定某一个阶段在1个或2个CPU上运行,而另一个阶段在1个或2个GPU上运行,这是用户在编程时就指定的,单个多处理器核计算任务可以认为是用户指定的程序段;将单个多处理器核计算任务划分为多个单处理器核的子任务可以是将在单个核上运行的程序段的起始地址、标识以及任务的描述符等发给相应的单处理器核。
在另一个可选实施例中,任务管理器还可以包括任务仲裁单元,其用于基于任务信息中携带的优先级信息,将优先级最高的任务确定为所述当前任务,以使得任务管理器可优先仲裁优先级高的任务。例如,任务管理器接收A、B和C三个任务,任务B的优先级最高,那么任务管理器优先处理任务B。在另一个可选实施例中,在任务信息的数据格式与人工神经网络输入的格式不匹配时,任务管理器将任务信息的数据格式转换为人工神经网络输入的格式。
在图2中,人工神经网络装置由神经元模块及神经元模块之间的互连线路组成,单个神经元模块对输入信号做一个线性映射计算后传入一个非线性的激活函数,得到的值作为输出传递给下一级神经元模块。在一个具体实施例中,线性映射计算可以包括卷积运算,池化运算等等,非线性的激活函数可以包括ReLU函数等等。人工神经网络装置将来自处理器核状态管理器的实时状态信息及来自任务管理器的任务信息作为输入,进行计算,计算后得到任务调度信息。
具体来说,人工神经网络装置包括多层神经元模块,多层神经元模块按照预设顺序连接形成有向无环结构,多层神经元模块包括输入层和输出层,其中,每层神经元模块均包括至少一个神经元单元,多层神经元模块中的上一层神经元模块中的神经元单元能够连接至相邻的下一层神经元模块中的神经元单元;所述输入层用于对接收的实时状态信息和任务信息进行处理后,将获得的中间处理结果传送至所述输入层之后的多层神经元模块进行计算,所述输出层得出当前任务的调度信息。
在一个具体实施例中,该任务调度信息包括任务选择信号及相应的目标处理器核标号,根据所述目标处理器核标号,相应的任务被分发到目标处理器核进行处理。在一个具体实施例中,对于任务A、B和C,人工神经网络装置基于输入的任务A、B和C的任务信息,输出任务选择信号,将任务A、B和C分别分配到对应的处理器核,例如,将任务A、B和C分别分配到处理器核1、2和3,那么处理器核1、2和3就分别对任务A、B和C进行处理。在本发明中,人工神经网络包括但不限于长短期记忆网络(Long Short-Term Memory,LSTM)、卷积神经网络(Convolutional neural networks, CNN),等等。
需要注意的是,实时状态信息、任务信息和任务调度信息并不限于上述实施例中举出的方面,根据具体应用和实际需要,本领域技术人员可以想到的实时状态信息、任务信息和任务调度信息所包含的其他方面都属于本申请覆盖的范围。
在图2中,多核任务调度器还包括网络配置器。网络配置器用于获取并存储整个人工神经网络装置中神经元模块的计算参数,在人工神经网络装置进行计算的情况下,网络配置器中存储的参数包括:神经元单元之间连接关系、权值、每个神经元单元所需的参数。
每个神经元模块计算使用的参数来源于网络配置器。整个人工神经网络装置根据网络配置器的配置参数,将来自处理器核状态管理器的实时状态信息及来自任务管理器的任务信息作为输入,进行计算,计算后得到任务调度信息。
在一个可选实施例中,如图2所示,多核任务调度器还可以包括计分板。在图2中,计分板用于保存历史任务的历史调度信息,并能够根据所述历史调度信息确定所述历史任务对应的调度操作的评分结果。其中,历史调度信息包括已作分配的任务编号及其任务信息,以及任务被分配到的目标处理器核标号,根据所述历史调度信息确定所述历史任务对应的调度操作的评分结果包括:从处理器核状态管理器中获取所述历史任务分配后的所述处理器核的实时状态信息;根据所述历史调度信息和所述历史任务分配后的所述处理器核的实时状态信息,确定预设周期内所述处理器核的占用数量;根据所述处理器核的占用数量确定所述评分结果,其中,所述评分结果与所述处理器核的占用数量正相关。
结合任务分配后的处理器核状态对任务调度信息对应的任务调度动作进行评分:以任务调度动作后一段时间内的平均处理器核占用数作为评分指标,根据评分结果通过一定的算法对网络配置器中的所述参数进行更新。具体来说,以任务调度动作后一段时间内(该一段时间可以是人为指定的,例如对应于硬件的可数个周期)的平均处理器核占用数作为评分指标,每个处理器分配的任务越均匀,平均处理器核占用数越高则评分越高,评分是历史调度信息的函数,通过对评分求导,通过一定的算法,例如误差反传算法, 对网络配置器中的神经网络配置作更新。具体来说,误差反传算法是对人工神经网络的各个层逐层向前求导的过程,记录人工神经网络每次调度的结果(例如,前述任务调度信息),计分板将该结果记录下来,记录一段时间的结果后,将这一段时间的结果进入评价函数,获得到这段时间调度的评分,表示这段时间调度的效果。可以对该评分进行求导,导数可以通过逐层的求导向前传递,每传到一层,对当层的导数求偏导,对该偏导乘以放缩系数,可以得到神经网络这一层的参数(例如,权值和偏移)的修正的偏移量,在原来的参数的基础上加上该偏移量,可以完成对神经网络配置的更新。
网络配置器根据计分板对神经网络配置作更新,将更新的参数分发到人工神经网络装置的各个神经元模块,人工神经网络装置根据网络配置器的配置的更新的参数以及将来自处理器核状态管理器的实时状态信息和来自任务管理器的任务信息作为输入,进行计算,得到任务调度信息。
需要说明的是,基于人工神经网络的片上多核任务调度器存在两种工作模式:离线模式和在线模式。
在线模式下计分板正常工作,计分板根据所述历史调度信息对所述历史任务的调度操作进行评分,获得所述历史任务的调度操作的评分结果,具体包括:从处理器核状态管理器中获取所述历史任务分配后的所述处理器核的实时状态信息;根据所述历史调度信息和所述历史任务分配后的所述处理器核的实时状态信息,确定预设周期内所述处理器核的占用数量;根据所述处理器核的占用数量确定所述评分结果,其中,所述评分结果与所述处理器核的占用数量正相关。
计分板还用于根据所述评分结果和预设评分阈值计算损失函数;当所述损失函数的值不满足预设条件时,将所述损失函数传送至所述人工神经网络装置的输出层;所述人工神经网络装置的多层神经元模块分别对所述损失函数进行逐层求导,获得参数更新值,并根据所述参数更新值更新所述网络适配器中的参数,并根据更新的后参数重新计算历史调度信息;之后调用所述计分板根据所述历史调度信息对所述历史任务的调度操作进行评分,获得所述历史任务的调度操作的评分结果,直至所述损失函数的值满足预设条件。调度器在完成任务调度动作的一段时间(例如,可数个周期)后根据计分板提供的评分和损失函数对人工神经网络参数进行更新,使人工神经网络装置作出的调度动作能够获得更高的评分。其中,所述预设条件可以是用户可检查网络配置的更新状况,当人工神经网络装置的参数配置稳定时,可停止网络更新并存储相应配置参数,例如,当所有参数变化的平方的平均数在连续几次检查中都小于用户设定的阈值时可以认为网络的参数配置稳定。
离线模式下计分板不工作,调度器进行人工神经网络的前向计算,完成任务调度动作而不通过计分板进行神经网络配置的更新。人工神经网络装置的参数可来源于曾经使用在线模式时通过计分板得到的参数,也可来源于软件模拟得到的参数或更新的参数。
基于上述描述,网络配置器中参数的来源可以来自计分板也可以不来自计分板(例如,来自软件模拟获得的参数)。在在线模式下,网络配置器中参数的来源可以来自计分板,并使用计分板提供的评分信息对所述网络配置器的参数进行更新。在没有计分板的情况下,网络配置器中的参数可以来自软件模拟获得的参数,基于现有硬件结构通过软件模拟,对人工神经网络装置的参数进行更新。
在一个实施例中,本申请还提供了一种芯片,其包括了上述多核任务调度器。其中,所述芯片包括SOC(System on Chip)。
在一个实施例中,本申请还提供了一种板卡,其包括了上述芯片。参照图3所示,上述板卡除了包括上述芯片封装结构81以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件82、接口装置83和控制器件84;所述存储器件82与所述芯片封装结构81内的机器学习芯片811通过总线连接,用于存储数据,所述存储器件82可以包括多组存储单元821。每一组所述存储单元821与所述机器学习芯片811通过总线连接。可以理解,每一组所述存储单元821可以是DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述机器学习芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置83与所述芯片封装结构81内的机器学习芯片811电连接。所述接口装置83用于实现所述机器学习芯片811与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置83可以为标准PCIE(peripheral componentinterconnect express,一种高速串行计算机扩展总线标准)接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述机器学习芯片,实现数据转移。优选的,当采用PCIE3.0 X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置83还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口装置能够实现转接功能即可。另外,所述机器学习芯片811的计算结果仍由所述接口装置83传送回外部设备(例如服务器)。
所述控制器件84与所述机器学习芯片811电连接。所述控制器件84用于对所述芯片的状态进行监控。具体的,所述机器学习芯片811与所述控制器件84可以通过SPI(SerialPeripheral Interface,串行外设接口)接口电连接。所述控制器件可以包括单片机(MicroController Unit,MCU)。如所述机器学习芯片可以包括多个数据处理装置和/或组合处理装置,可以带动多个负载。因此,所述机器学习芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制器件84可以实现对所述机器学习芯片中多个数据处理装置和/或组合处理装置的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的全部或部分处理过程是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory ,简称:ROM)、随机存取器(英文:RandomAccess Memory,简称:RAM)、磁盘或光盘等。
基于上述调度器,本申请提出一种多核任务调度方法。如图4所示,所述方法包括如下步骤:
步骤S301,接收处理器核发送的实时状态信息。
如图2所述,调度器的处理器核状态管理器用于接收各个处理器核发出的实时状态信息,并将实时状态信息发送给人工神经网络装置。在一个具体实施例中,该实时状态信息包括处理器核的占用情况、计算任务的规模以及所需的计算时间中的至少一个。
步骤S302,接收并缓存任务信息。
如图2所述,调度器的任务管理器可以包括任务缓存单元,其用于接收用户分配的计算任务并缓存相应的任务信息。在一个具体实施例中,任务信息包括计算任务的类型、所需处理器核的数目、计算任务对应程序的起始地址以及可用存储空间的起始地址和范围中的至少一者。
步骤S303,基于所述实时状态信息、所述任务信息以及进行人工神经网络计算所需的参数进行人工神经网络计算,得出当前任务的调度信息。
如图2所述,调度器的人工神经网络装置将来自处理器核状态管理器的实时状态信息及来自任务管理器的任务信息作为输入,进行计算,计算后得到任务调度信息。在一个具体实施例中,该任务调度信息包括任务选择信号及相应的目标处理器核标号,用于选出一个计算任务并分配给目标处理器核进行处理。
在一个可选的实施例中,所述方法还包括:
步骤S304,存储进行人工神经网络计算所需的参数。
如图2所述,调度器的网络配置器用于获取并存储整个人工神经网络装置中神经元的计算用参数。所述人工神经网络计算所需的参数包括:神经元单元之间连接关系、权值、每个神经元单元所需的参数。
步骤S305,保存历史任务的历史调度信息,并根据所述历史调度信息确定所述历史任务对应的调度操作的评分结果。
如图2所述,调度器的计分板用于保存历史任务的历史调度信息,并能够根据所述历史调度信息确定所述历史任务对应的调度操作的评分结果。其中,历史调度信息包括已作分配的任务编号及其任务信息,以及任务被分配到的目标处理器核标号,根据所述历史调度信息确定所述历史任务对应的调度操作的评分结果包括:从处理器核状态管理器中获取所述历史任务分配后的所述处理器核的实时状态信息;根据所述历史调度信息和所述历史任务分配后的所述处理器核的实时状态信息,确定预设周期内所述处理器核的占用数量;根据所述处理器核的占用数量确定所述评分结果,其中,所述评分结果与所述处理器核的占用数量正相关。
如上所述,基于人工神经网络的片上多核任务调度器存在两种工作模式:离线模式和在线模式。
在线模式下计分板正常工作,计分板根据所述历史调度信息对所述历史任务的调度操作进行评分,获得所述历史任务的调度操作的评分结果,具体包括:从处理器核状态管理器中获取所述历史任务分配后的所述处理器核的实时状态信息;根据所述历史调度信息和所述历史任务分配后的所述处理器核的实时状态信息,确定预设周期内所述处理器核的占用数量;根据所述处理器核的占用数量确定所述评分结果,其中,所述评分结果与所述处理器核的占用数量正相关。
计分板还用于根据所述评分结果和预设评分阈值计算损失函数;当所述损失函数的值不满足预设条件时,将所述损失函数传送至所述人工神经网络装置的输出层;所述人工神经网络装置的多层神经元模块分别对所述损失函数进行逐层求导,获得参数更新值,并根据所述参数更新值更新所述网络适配器中的参数,并根据更新的后参数重新计算历史调度信息;之后调用所述计分板根据所述历史调度信息对所述历史任务的调度操作进行评分,获得所述历史任务的调度操作的评分结果,直至所述损失函数的值满足预设条件。
调度器在完成任务调度动作的一段时间(例如,可数个周期)后根据计分板提供的评分利用和所述损失函数对人工神经网络参数进行更新,使人工神经网络装置作出的调度动作能够获得更高的评分。在线模式运行一段时间后,用户可检查网络配置的更新状况,当人工神经网络装置的参数配置稳定时,可停止网络更新并存储相应配置参数,例如,当所有参数变化的平方的平均数在连续几次检查中都小于用户设定的阈值时可以认为网络的参数配置稳定。
离线模式下计分板不工作,调度器进行人工神经网络的前向计算,完成任务调度动作而不通过计分板进行神经网络配置的更新。人工神经网络装置的参数可来源于曾经使用在线模式运行得到的参数,也可来源于软件模拟得到的参数或更新的参数。在另一个可选的实施例中,所述方法还包括:
步骤S306,将所述任务信息划分为多个子任务信息。
如上所述,调度器的任务管理器可以包括任务拆分单元,其用于将计算任务进行拆分。在一个可选实施例中,该计算任务的拆分方式包括将单个多处理器核计算任务划分为多个单处理器核的子任务。
在另一个可选的实施例中,所述方法还包括:
步骤S307,基于所述任务信息中携带的优先级信息,将优先级最高的任务确定为所述当前任务。
如图2所述,调度器的任务管理器可以包括任务仲裁单元,其用于任务信息中附带优先级信息以使得任务管理器可优先仲裁优先级高的任务。例如,任务管理器接收A、B和C三个任务,任务B的优先级最高,那么任务管理器优先处理任务B。
在另一个可选的实施例中,所述方法还包括:
步骤S308,将所述实时状态信息的数据格式转换为所述人工神经网络的输入格式。
如上所述,在实时状态信息的数据格式与人工神经网络输入的格式不匹配时,调度器处理器核状态管理器将实时状态信息的数据格式转换为人工神经网络输入的格式。
在另一个可选的实施例中,所述方法还包括:
步骤S309,将所述任务信息的数据格式转换为所述人工神经网络的输入格式。
如上所述,在任务信息的数据格式与人工神经网络输入的格式不匹配时,调度器的任务管理器将任务信息的数据格式转换为神经网络输入的格式。
根据本申请实施例提供的基于人工神经网络的片上多核任务调度方法,由于基于人工神经网络的计算来确定调度,能够不限于预先设定的调度机制,根据任务类型的不同能够自适应调整调度过程,获得最佳的调度结果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
参阅图5,图5提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如图4所示的方法以及细化方案。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述处理器或芯片可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述片上缓存、片外内存、存储器可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-AccessMemory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方 HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如图4所示的方法以及细化方案。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如图4所示的方法以及细化方案。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。
Claims (13)
1.一种多核任务调度器,其特征在于,其包括处理器核状态管理器、任务管理器和人工神经网络装置,其中:
所述处理器核状态管理器用于接收处理器核发送的实时状态信息;
所述任务管理器用于接收当前任务的任务信息并缓存所述任务信息;以及
所述人工神经网络装置用于对来自所述处理器核状态管理器的实时状态信息、来自所述任务管理器的任务信息以及人工神经网络装置计算所需的参数进行计算,得出所述当前任务的调度信息。
2.根据权利要求1所述的多核任务调度器,其特征在于,所述人工神经网络装置包括多层神经元模块,所述多层神经元模块按照预设顺序连接形成有向无环结构,所述多层神经元模块包括输入层和输出层;
其中,每层所述神经元模块均包括至少一个神经元单元,所述多层神经元模块中的上一层神经元模块中的神经元单元能够连接至相邻的下一层神经元模块中的神经元单元;
所述输入层用于对接收的所述实时状态信息和所述任务信息进行处理后,将获得的中间处理结果传送至所述输入层之后的多层神经元模块进行计算,所述输出层得出所述当前任务的调度信息。
3.根据权利要求1或2所述的多核任务调度器,其特征在于,还包括:
网络配置器,用于存储所述人工神经网络装置计算所需的参数,所述人工神经网络装置计算所需的参数包括:神经元单元之间连接关系、权值、每个神经元单元所需的参数。
4.根据权利要求3所述的多核任务调度器,其特征在于,还包括:
计分板,用于保存历史任务的历史调度信息,并能够根据所述历史调度信息确定所述历史任务对应的调度操作的评分结果。
5.根据权利要求4所述的多核任务调度器,其特征在于,所述多核任务调度器的工作模式包括在线模式;当所述多核任务调度器处于在线模式时,所述计分板用于:
根据所述历史调度信息对所述历史任务的调度操作进行评分,获得所述历史任务对应的调度操作的评分结果。
6.根据权利要求5所述的多核任务调度器,其特征在于,所述计分板根据所述历史调度信息对所述历史任务的调度操作进行评分,获得所述历史任务的调度操作的评分结果包括:
从处理器核状态管理器中获取所述历史任务分配后的所述处理器核的实时状态信息;
根据所述历史调度信息和所述历史任务分配后的所述处理器核的实时状态信息,确定预设周期内所述处理器核的占用数量;
根据所述处理器核的占用数量确定所述评分结果,其中,所述评分结果与所述处理器核的占用数量正相关。
7.根据权利要求4-6任一项所述的多核任务调度器,其特征在于,
所述计分板还用于根据所述评分结果和预设评分阈值计算损失函数;
当所述损失函数的值不满足预设条件时,将所述损失函数传送至所述人工神经网络装置的输出层;
所述人工神经网络装置的多层神经元模块分别对所述损失函数进行逐层求导,获得参数更新值,并根据所述参数更新值更新所述网络配置器中的参数,并根据更新的后参数重新计算历史调度信息;
之后调用所述计分板根据所述历史调度信息对所述历史任务的调度操作进行评分,获得所述历史任务的调度操作的评分结果,直至所述损失函数的值满足预设条件。
8.根据权利要求5所述多核任务调度器,其特征在于,所述多核任务调度器的工作模式还包括离线模式,当所述多核任务调度器运行在离线模式下时,所述网络配置器中存储的所述参数来自软件模拟得到的参数或者来自之前在在线模式下通过所述计分板获得的参数。
9.根据权利要求1所述多核任务调度器,其特征在于,所述任务管理器包括:
任务缓存单元,用于接收并缓存所述任务信息;
任务拆分单元,用于根据所述任务信息将所述当前任务拆分为至少一个子任务,得到至少一个子任务信息;
所述人工神经网络装置还用于根据所述实时状态信息、来自所述任务拆分单元的子任务信息以及人工神经网络装置计算所需的参数进行计算,得出所述当前任务的调度信息。
10.根据权利要求9所述的多核任务调度器,其特征在于,所述任务管理器还包括:
任务仲裁单元,用于基于所述任务信息中携带的优先级信息,将优先级最高的任务确定为所述当前任务。
11.一种芯片,其特征在于,所述芯片包括权利要求1-9任一项所述的多核任务调度器。
12.一种板卡,其特征在于,所述板卡包括如权利要求11所述的芯片。
13.一种电子设备,其特征在于,所述电子设备包括如权利要求12所述的板卡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911321283.9A CN110750351B (zh) | 2019-12-20 | 2019-12-20 | 多核任务调度器、多核任务调度方法、装置及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911321283.9A CN110750351B (zh) | 2019-12-20 | 2019-12-20 | 多核任务调度器、多核任务调度方法、装置及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110750351A true CN110750351A (zh) | 2020-02-04 |
CN110750351B CN110750351B (zh) | 2020-12-22 |
Family
ID=69286009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911321283.9A Active CN110750351B (zh) | 2019-12-20 | 2019-12-20 | 多核任务调度器、多核任务调度方法、装置及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750351B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666150A (zh) * | 2020-05-09 | 2020-09-15 | 深圳云天励飞技术有限公司 | 存储空间的分配方法、装置、终端及计算机可读存储介质 |
CN112418412A (zh) * | 2020-11-20 | 2021-02-26 | 清华大学 | 触发装置及类脑计算系统 |
CN112612612A (zh) * | 2020-12-25 | 2021-04-06 | 联想未来通信科技(重庆)有限公司 | 一种任务处理方法及装置 |
CN113282381A (zh) * | 2020-02-19 | 2021-08-20 | 中科寒武纪科技股份有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN113360186A (zh) * | 2020-03-04 | 2021-09-07 | 北京希姆计算科技有限公司 | 任务调度方法、装置、电子设备及计算机可读存储介质 |
CN115686800A (zh) * | 2022-12-30 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 用于多核系统的动态核心调度方法和装置 |
WO2023226791A1 (zh) * | 2022-05-26 | 2023-11-30 | 华为技术有限公司 | 一种控制装置、控制方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160187861A1 (en) * | 2014-12-30 | 2016-06-30 | Futurewei Technologies Inc. | Systems and methods to adaptively select execution modes |
CN109075988A (zh) * | 2016-03-31 | 2018-12-21 | 华为技术有限公司 | 任务调度和资源发放系统和方法 |
CN109976911A (zh) * | 2019-03-25 | 2019-07-05 | 哈尔滨工程大学 | 一种自适应资源调度方法 |
-
2019
- 2019-12-20 CN CN201911321283.9A patent/CN110750351B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160187861A1 (en) * | 2014-12-30 | 2016-06-30 | Futurewei Technologies Inc. | Systems and methods to adaptively select execution modes |
CN109075988A (zh) * | 2016-03-31 | 2018-12-21 | 华为技术有限公司 | 任务调度和资源发放系统和方法 |
CN109976911A (zh) * | 2019-03-25 | 2019-07-05 | 哈尔滨工程大学 | 一种自适应资源调度方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282381A (zh) * | 2020-02-19 | 2021-08-20 | 中科寒武纪科技股份有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
CN113360186A (zh) * | 2020-03-04 | 2021-09-07 | 北京希姆计算科技有限公司 | 任务调度方法、装置、电子设备及计算机可读存储介质 |
CN111666150A (zh) * | 2020-05-09 | 2020-09-15 | 深圳云天励飞技术有限公司 | 存储空间的分配方法、装置、终端及计算机可读存储介质 |
CN112418412A (zh) * | 2020-11-20 | 2021-02-26 | 清华大学 | 触发装置及类脑计算系统 |
CN112418412B (zh) * | 2020-11-20 | 2024-03-26 | 清华大学 | 触发装置及类脑计算系统 |
CN112612612A (zh) * | 2020-12-25 | 2021-04-06 | 联想未来通信科技(重庆)有限公司 | 一种任务处理方法及装置 |
WO2023226791A1 (zh) * | 2022-05-26 | 2023-11-30 | 华为技术有限公司 | 一种控制装置、控制方法及相关设备 |
CN115686800A (zh) * | 2022-12-30 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 用于多核系统的动态核心调度方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110750351B (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110750351B (zh) | 多核任务调度器、多核任务调度方法、装置及相关产品 | |
CN109284823B (zh) | 一种运算装置及相关产品 | |
CN111209244B (zh) | 数据处理装置及相关产品 | |
CN109583579B (zh) | 计算装置及相关产品 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
WO2021185262A1 (zh) | 计算装置、方法、板卡和计算机可读存储介质 | |
JP2018120548A (ja) | プロセッサ、情報処理装置及びプロセッサの動作方法 | |
CN111381882B (zh) | 数据处理装置及相关产品 | |
CN111260042B (zh) | 数据选择器、数据处理方法、芯片及电子设备 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
CN111209230B (zh) | 数据处理装置、方法及相关产品 | |
CN111381875B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111258641B (zh) | 运算方法、装置及相关产品 | |
CN111723920B (zh) | 人工智能计算装置及相关产品 | |
CN111260046B (zh) | 运算方法、装置及相关产品 | |
CN111209245B (zh) | 数据处理装置、方法及相关产品 | |
CN111381802B (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111382835A (zh) | 一种神经网络压缩方法、电子设备及计算机可读介质 | |
CN214504452U (zh) | 一种用于神经网络推理的异构系统 | |
CN111382855B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111062469B (zh) | 计算装置及相关产品 | |
WO2020063940A1 (zh) | 计算装置及相关产品 | |
CN111384944B (zh) | 全加器、半加器、数据处理方法、芯片及电子设备 | |
CN111210011B (zh) | 数据处理装置及相关产品 | |
WO2020192587A1 (zh) | 人工智能计算装置及相关产品 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201029 Address after: Room 611-194, R & D center building, China (Hefei) international intelligent voice Industrial Park, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province Applicant after: Anhui Cambrian Information Technology Co., Ltd Address before: Room 644, scientific research complex building, No. 6, South Road, Academy of Sciences, Haidian District, Beijing 100086 Applicant before: Zhongke Cambrian Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |