计算处理的调度的制作方法
未命名
07-29
阅读:105
评论:0
1.本说明书涉及一种用于调度异构处理系统上的至少第一和第二链接的原子计算处理的执行的服务质量调度器的计算机实现的方法,以及关联的系统、计算机程序单元和计算机可读介质,异构处理系统包括至少第一处理器和不同类型的第二处理器。
背景技术:
2.被实现为片上系统的嵌入式处理系统频繁地执行具有不同关键度(诸如安全关键度)级别的至少两个应用。片上系统越来越多地由许多不同类型的处理器(诸如中央处理单元和图形处理单元)构成。然而,在其中执行具有不同的关键度级别的至少两个应用的情形中,仍然存在当在异构处理器之间执行时在至少两个应用的服务质量考虑之间进行仲裁的需要。
3.当前,典型地针对单个资源来解决qos方面。高速缓存着色可以被用于专用于高速缓存资源。诸如基于保留的调度的机制可以被用于供应cpu资源。网络资源保留协议用以供应网络资源。因此可以进一步改进用于在执行具有不同关键度级别的至少两个应用的嵌入式处理系统中的资源分配的方法。
技术实现要素:
4.根据第一方面,提供了一种用于调度异构处理系统上的至少第一和第二链接的原子计算处理的执行的服务质量调度器的计算机实现的方法,异构处理系统包括至少第一处理器和不同类型的第二处理器。
5.方法包括:
6.从应用接收对于计算作业的请求,其中作业包括至少第一和第二链接的原子计算处理,并且其中作业与由应用提供的服务质量要求关联;
7.基于指示至少第一处理器和第二(gpu)处理器的异构处理系统的多个单元的登记,确定至少第一和第二链接的原子计算处理在异构处理系统的多个单元上的一个或多个试验性执行计划;
8.选择在异构处理系统中所包括的至少第一处理器和不同类型的第二处理器上的至少第一和第二链接的原子计算处理的执行计划作为预期执行计划,其中预期执行计划能够满足由应用提供的服务质量要求;以及
9.根据预期执行计划来调度至少第一和第二链接的原子计算处理在至少第一处理器和不同类型的第二处理器上的执行。
10.异构片上系统内的集中式服务质量调度器或管理器可以将用于计算用于片上系统内的不同处理器(计算节点)的处理序列(事件链)的端到端要求转换成特定资源要求,并且然后朝着保留这些资源来进行工作。因此可以提供跨多个不同计算资源的经协调的资源保留,以便满足由事件链构成的应用的定时要求。附加地,可能存在如下需要:将端到端延迟要求转换成单独的资源要求,使得能够进行资源分配的延迟感知协调。所提出的服务质
量调度器管理多个异构资源并且提供整体资源管理。qos调度器具有资源可用性的全局视点,并且因此可以将资源分配优先化到不同应用,并且提供用于分布式情形中事件链的执行的端到端定时保证。
11.根据第二方面,提供了一种系统,包括:
[0012]-异构处理系统,其包括至少第一处理器和不同类型的第二处理器;以及
[0013]-调度器,其被配置为调度异构处理系统(soc)上的至少第一和第二链接的原子计算处理的执行。调度器被配置为:
[0014]
从应用接收对于计算作业的请求,其中作业包括至少第一(44)和第二(46)链接的原子计算处理,并且其中作业与由应用提供的服务质量要求关联;
[0015]
基于指示至少第一处理器和第二处理器的异构处理系统(soc)的多个单元的登记,确定至少第一和第二链接的原子计算处理在异构处理系统的多个单元上的一个或多个试验性执行计划;
[0016]
选择在异构处理系统中所包括的至少第一处理器和不同类型的第二处理器上的至少第一和第二链接的原子计算处理的执行计划作为预期执行计划,其中预期执行计划能够满足由应用提供的服务质量要求;以及
[0017]
根据预期执行计划来调度至少第一和第二链接的原子计算处理在至少第一处理器和不同类型的第二处理器上的执行。
[0018]
根据第三方面,提供了一种包括机器可读指令的计算机程序单元,机器可读指令在由处理器执行时引起处理器执行第一方面的方法。
[0019]
根据第四方面,提供了一种包括第四方面的计算机程序单元的计算机可读介质。
附图说明
[0020]
在各图中描绘了本发明的示例性实施例,示例性实施例不应被解释为限制权利要求,并且在下面被更详细地解释。
[0021]
图1示意性地图示根据第一方面的方法。
[0022]
图2示意性地图示片上系统架构的示例。
[0023]
图3a至图3c示意性地图示涉及异构处理资源的处理链的示例。
[0024]
图4示意性地图示片上系统架构的进一步的示例。
[0025]
图5示意性地图示对异构处理系统的定时约束。
具体实施方式
[0026]
诸如自主驾驶的新兴应用是计算和数据密集的。因此存在朝着在这样的网络-物理系统中使用高性能计算平台的趋势。在自主驾驶的情形中操作的软件应用具有必须共享相同计算平台(诸如片上系统soc)的变化的定时要求。计算平台一般特征在于在集群中组织的多个异构处理器(核)。处理器共享末级高速缓存、从处理器到存储器的一个或多个共享的互连网络(总线)以及共享的主存储器。
[0027]
在示例中,自主驾驶应用是通过感测、处理和控制管线实现的。在可以被分解为(i)感知(感测)、(ii)路径规划(处理)和(iii)控制功能的任务的自主驾驶应用的示例中,每个任务被部署在异构片上系统中的合适的处理器上。例如,与感知相关的计算机视觉功
能可以被委派给图形处理单元(gpu)而不是通用计算机核(cpu),其在本技术的附图中被指定为c1,具有多个cpu,因为被指定为c2、c3、c4。
[0028]
为了使自主驾驶应用正确地运行,必须跨感测-处理-控制管线而满足固定的定时约束。例如,路径规划任务不能在没有完成感知任务的情况下发生。当具有不同要求的不同应用被同时部署在异构片上系统上时,存在如下需要:确保保留足够的资源以便具有不同关键度和变化的服务质量保证级别的每个应用共存,使得所有定时保证可以被满足。
[0029]
暂时转到图3a至图3c,提供了三种不同类型的事件链的图示。事件链是以经协调的方式实现功能的一组相关的、非独立的、连接的功能。事件链的每个功能被认为是原子计算处理(换句话说,不能被分解成更小的功能)。传感器、处理和致动功能可以例如在图中表示,其中图的节点表示异构片上系统的处理器,并且加权边缘表示从一个处理器传递到另一个处理器(无论是通过互连、存储器读取还是高速缓存读取)的数据。为了获得正确的结果,每个事件链必须在给定时间内完成。端到端延迟要求是由事件链中的第一功能接收到输入的时间直到产生最终结果的时间之间的间隔。当然,也可以考虑反映事件链的结构的一系列中间延迟要求。
[0030]
图3b图示用于在图4中图示的异构片上系统上执行的事件链。例如,事件链包括多个应用44、45、46a、46b和47,每个应用具有给定的优先级。事件链由需要异构片上系统中的不同的处理器、高速缓存、互连和存储器的不同功能构成。不同的功能可以关于在cpu上还是gpu上实现具有不同的偏好,或者具有不同的存储器带宽需求。
[0031]
在示例中,每个事件链40、40a继承其关联应用a1-a4的优先级。每个事件链40、48具有限定在输入节点42处接收到输入数据和从输出节点48对输出数据进行输出之间崩溃的最大时间的端到端延迟要求。为了满足这些端到端延迟要求,每个事件链需要多个资源和保证的服务质量级别。在图3b的示例中,功能44、45、46a和47在一个或多个cpu c1-c4上执行。功能46b在gpu上执行。为了正确地实现应用a1,涉及多个资源,并且必须提供关于获得资源的有界保证。例如,可能被限定的是,cpu c1-c4中的一个或多个每时间单位向应用a1提供设定数量的处理时间单位。给定数量的事务可能需要由cpu c1从应用a1以可预测的互连带宽传送到gpu。当在gpu上执行时,可以限定应用a1的有界吞吐量。存储器mem可能被要求在给定数量的时间单位内处理应用a1的预定数量的存储器事务。
[0032]
因此,存在对于跨片上系统的多个异构资源的经协调的资源供应和资源保留的需要,以确保满足事件链的端到端定时要求。虽然给出了用于监控异构片上系统的各种资源的各种解决方案,例如针对高速缓存相关问题的高速缓存着色,但是并未提供有经协调的服务质量调度器来确保满足需要多个异构资源的应用的定时要求。
[0033]
图1示意性地图示根据第一方面的方法。
[0034]
根据第一方面,提供了一种用于调度异构处理系统上的至少第一44和第二46链接的原子计算处理的执行的服务质量调度器的计算机实现的方法10,异构处理系统包括至少第一处理器c1和不同类型的第二处理器gpu,方法包括:
[0035]
从应用a1-a4接收12对于计算作业的请求,其中作业包括至少第一和第二链接的原子计算处理,并且其中作业与由应用提供的服务质量要求关联;
[0036]
基于指示至少第一处理器c1和第二处理器gpu的异构处理系统的多个单元的登记,确定14至少第一和第二链接的原子计算处理在异构处理系统的多个单元上的一个或多
个试验性执行计划;
[0037]
选择16在异构处理系统中所包括的至少第一处理器和不同类型的第二处理器上的至少第一和第二链接的原子计算处理的执行计划作为预期执行计划,其中预期执行计划能够满足由应用提供的服务质量要求;以及
[0038]
根据预期执行计划来调度18至少第一和第二链接的原子计算处理在至少第一处理器和不同类型的第二处理器上的执行。
[0039]
因此,提出了提供集中式的服务质量qos调度器(或服务质量调度器)。所接收的计算作业可以是例如自主车辆的感测、处理或致动功能。该序列可以被认为是要按固定的期限完成的事件链。
[0040]
集中式的qos调度器例如可以是在软件环境的操作系统中或者在虚拟化软件环境的虚拟机监视器中执行的软件模块。qos调度器接收由在异构处理系统soc上执行的应用所要求的至少一个服务质量要求作为输入。例如,至少一个服务质量要求可以是事件链的端到端延迟要求。至少一个服务质量要求可以包括对于将特定类型的处理器用于事件链中的特定原子计算的要求。至少一个服务质量要求可以包括针对事件链中的至少一个(并且可选地,所有的)原子计算处理的至少一个附属的期限。至少一个服务质量要求不限制于定时考虑。例如,至少一个服务质量要求可以指定异构处理系统的第一处理器和第二处理器之间的最小存储器带宽或互连带宽。
[0041]
在示例中,对qos调度器的输入是由不同功能构成的一个或多个事件链、事件链的端到端延迟要求以及不同功能到不同计算节点的映射、以及例如全局特有的优先级。qos调度器接受一个或多个事件链的输入要求,并且为每个链保留足够的资源。
[0042]
在接收到至少一个服务质量要求后,服务质量调度器qos将服务质量要求转换成资源要求,并且在异构处理系统soc中搜索能够实现至少一个服务质量要求的不同类型的处理器。在示例中,服务质量调度器可以参与与不同处理器的至少两个资源管理器的协商,以获得事件链所需要的异构处理系统中的处理器或其它资源的保留。异构处理系统soc的资源管理器rm可以利用限定异构处理系统中的至少一个资源的状态和/或资源保留机会的响应来响应服务质量调度器。总之,这些可以由qos管理器使用以生成一个或多个试验性执行计划。qos调度器然后选择能够满足服务质量要求的试验性执行计划之一,并且将其指示为预期执行计划。qos调度器向主题应用a1提供预期执行计划的详情。计算多个试验性执行计划具有如下优点:如果预期执行计划失败或被取代,则可以迅速地与soc的资源管理器协商其它计划。
[0043]
异构处理系统的多个单元的登记限定了由应用在soc中可寻址的所有单元的身份和能力。更进一步地,登记提供了作为时间的函数的当前被占用或部分占用的资源的不断被更新的记录。给定按应用a1的事件链和服务质量要求,诸如期限,服务质量调度器可以将事件链和服务质量要求与多个单元的登记中的记录进行比较,以生成一个或多个试验性执行计划。
[0044]
预期执行计划的选择可以基于诸如哪个预期执行计划能够在最短时间内完成最高优先级事件链的标准。替换地,预期执行计划的选择可以是多因素的。服务质量调度器可以比较在针对事件链的期限之前的对应的多个预期执行计划的多个完成时间。在满足针对事件链的期限的预期执行计划的子集中,服务质量应当基于诸如最小化一个或多个处理器
的高速缓存l2占用或高速缓存l2访问、以及/或者最小化一个或多个处理器的存储器带宽、以及/或者最小化一个或多个处理器的主存储器mem使用之类的因素来分配处理器。
[0045]
图2示意性地图示片上系统架构的示例。
[0046]
简言之,一个或多个应用a1-a4可以生成至少一个事件链,至少一个事件链包括要在异构处理系统soc上计算的至少两个链接的原子计算处理。至少一个事件可以与由a1-a4提供的诸如延迟或性能要求、优先级和特定执行特性的服务质量要求关联。qos调度器可以将至少一个事件链转化成各个资源要求。
[0047]
在示例中,qos调度器可以使用提供同于服务质量的硬件支持的硬件平台。例如,qos调度器可以通过允许底层硬件识别应用身份来使用arm(tm)mpam框架。在示例中,qos调度器配置高速缓存l2和互连il中的登记,以便直接为每个应用保留适当的资源。其中应用身份是由底层硬件不可识别的异构处理器平台可以应用诸如高速缓存着色的机制来实现类似的结果。可以类似地应用其它硬件调节机制,诸如intel(tm)“存储器带宽分配(memory bandwidth allocation)”。
[0048]
根据实施例,方法进一步包括根据预期执行计划在包括在异构处理系统soc中的至少第一处理器c1和不同类型的第二处理器gpu上执行至少第一44和第二46链接的原子计算处理以由此计算作业,并且将作业的结果返回到应用a1-a4。
[0049]
根据实施例,由应用a1-a4提供的服务质量要求是限定何时至少第一44和第二46链接的原子处理必须将作业结果返回到应用的期限lt。
[0050]
暂时转到图5,提供了两个试验性执行计划相对于经过的时间的示例。应用a1要求要在事件链中执行的处理作业,事件链包括要求至少一些cpu时间52的处理任务和要求至少一些gpu时间55a的进一步的处理任务。计算的进入点在51处。一个试验性执行计划将原子处理任务52调度在cpu c1上。要求具有可变带宽的互连将数据从第一原子处理任务52的输出传送到gpu,在gpu处执行第二原子处理任务55。第一试验性执行计划涉及互连54a的高带宽使用。第二试验性执行计划涉及互连54b的更低的带宽使用。虽然遵从这些试验性执行计划的两个分支,但是服务质量调度器可以识别出使用在高带宽下的互连的试验性执行计划能够满足由期限lt限定的服务质量要求。然而,使用在更低的带宽54b下的互连的试验性执行计划不能满足期限lt。
[0051]
根据实施例,方法进一步包括:从对于计算作业的请求获得21与第一原子计算处理关联的第一44处理器类型和与第二原子计算处理关联的第二处理器类型;以及通过询问异构处理系统soc的多个单元的登记以识别能够计算在请求中限定的作业的第一处理器类型和第二处理器类型的至少一个组合来确定一个或多个执行计划;以及基于所识别的第一c1和第二gpu处理器类型的至少一个组合来生成至少第一和第二链接的原子计算处理的一个或多个执行计划。
[0052]
根据实施例,方法进一步包括通过如下来确定一个或多个执行计划:当在第一处理器类型上执行第一原子计算处理时获得第一44原子计算处理的第一延时;当在第二处理器类型上执行第二原子计算处理时获得第二46原子计算处理的第二延时;以及基于所识别的至少第一延时和第二延时来生成至少第一44和第二链接的原子计算处理的一个或多个执行计划。
[0053]
根据实施例,方法进一步包括:从多个单元的登记识别异构处理系统soc的至少一
个中间单元p1,其中至少一个中间单元被配置为在第一44原子计算处理和第二46原子计算处理之间传送数据;以及通过确定与异构处理系统的至少一个中间单元p1关联的中间延时来确定一个或多个执行计划;以及基于所识别的中间延时生成至少第一和第二链接的原子计算处理的一个或多个执行计划。
[0054]
如在图3c中指示的那样,事件链42、44、46、48的实际实现还可以考虑时间延时和与事件间通信关联的其它参数。图3c中图示的中间单元p1和p2表示由例如在例如cpu c1和gpu之间的共享高速缓存l2访问操作引起的时间延时。中间单元p1或p2中的至少一个可以表示由总线访问或网络适配器访问引起的时间延时。当生成试验性执行计划时,可以根据中间单元的可配置性选项来参数化由中间单元p1和p2引起的延时。例如,如果p1和p2表示访问主存储器,则试验性执行计划可以被再划分成其中中间单元表示存储器访问带宽的范围的特别情况。qos调度器可以确定给定的试验性执行计划对于中间单元的参数的子集而言是可行的。例如,qos调度器可以确定给定的试验性执行计划对于存储器访问带宽或高速缓存访问带宽的子集而言是可行的。
[0055]
图4示意性地图示片上系统架构的进一步的示例。
[0056]
为了将方法置于情景中,描述了示例性数据处理系统。图2中图示的片上系统soc包括多核处理单元,其包括四个处理器(核)c1-c4。处理器c1包括可以被寻址处理器c1的高速缓存l1。多核处理单元进一步包括多核处理单元的所有处理器c1-c4可以同时访问的共享高速缓存l2。在示例中,高速缓存l2是一致性高速缓存。操作系统(或虚拟机监视器)托管多个混合关键度应用a1-a4。例如,应用a1是如在自主驾驶中使用的高关键度图像识别算法。应用a2是低关键度信息娱乐程序。操作系统还托管服务质量qos自管理程序,例如作为守护处理(不是用户直接可访问的)。
[0057]
互连ic可通信地耦合多核处理单位单元。在示例中,互连是总线。在示例中,互连是高速缓存一致性网格互连,诸如由arm(tm)提供的corelink(tm)。如所图示那样,互连ic将多核处理单元与至少图形处理单元gpu、网络适配器na(诸如canbus(tm)适配器)、至少一个存储器mem以及至少一个专用处理器ca连接。专用处理器可以例如是机器学习加速器。本领域技术人员将领会,可以基于感兴趣的应用场景提供许多拓扑。
[0058]
根据实施例,方法进一步包括:选择能够满足由应用a1-a4提供的服务质量要求的至少第一44和第二46链接的原子计算处理的执行计划作为预期执行计划进一步包括针对至少第一44和第二46链接的原子计算处理的至少一个执行计划经由被要求执行至少一个执行计划的异构处理系统soc的对应的多个单元c、gpu、la、il、na、mem的多个资源管理器rm来确定异构处理系统的对应的多个单元执行预期执行计划的可用性;如果异构处理系统的对应的多个单元可用于执行至少一个执行计划,则并且在被要求执行至少一个执行计划的异构处理系统(soc)的多个单元的对应的资源管理器和服务质量调度器(qos)之间建立多个协定。
[0059]
因此,图4中的异构处理系统(soc)的表示图示了soc中的每个单元(诸如soc中的处理器、总线和存储器等)包括用于监控相应的单元的活动和/或能力的资源管理器rm。在示例中,每个资源管理器被配置为与qos调度器中的多个单元的登记通信,以向qos调度器通知soc中的相应的单元的当前和未来能力和可用性。这样的通信是连续的,或者是基于样本的,或者是基于事件触发的。在实施例中,资源管理器rm可以提供其可以在给定时间窗上
满足资源要求的可能性。在实施例中,资源管理器rm可以基于所通信的资源要求向qos调度器中的多个单元的登记提供资源的尽力服务范围。
[0060]
cpu资源管理器rm-c负责为至少一个应用a1中的不同任务保留至少一个处理器上的cpu资源。rm-c可以使用表驱动调度器来保留特定时隙。rm-c可以使用基于保留的调度器来按每个预定的时间单位分配预定数量的处理周期单位。
[0061]
互连资源管理器rm-il被配置为例如为从不同存储器主控器产生的流量指派互连资源。这些是共享互连的不同的处理器和诸如gpu的其它设备。诸如arm(tm)nic 400的现代互连经由配置提供接口,该配置使能诸如平均延迟率、给定时段内未完成事务数量等的各种参数的配置(经由配置登记)。
[0062]
存储器资源管理器rm-mem被配置为调节每个处理器在预定时间间隔内可以访问的存储器流量。存储器资源管理器可以监控存储器流量。
[0063]
高速缓存资源管理器rm-l2可以应用静态和/或动态高速缓存分区机制来按处理器以及按应用级别分区进行分配。高速缓存锁定和高速缓存着色等是这样的机制的示例。
[0064]
在示例中,qos调度器被配置为观察异构处理系统soc的一个或多个资源管理器,并且作为资源消耗监控器来执行。换句话说,qos调度器被配置为节制或暂停超过其资源预算的应用。
[0065]
在示例中,具有进一步的服务质量要求的新启动的应用(换言之,在若干其它应用已经在异构处理系统soc上运行时启动的应用)被配置为识别至少一个试验性执行计划,并且询问异构处理系统qos的一个或多个资源管理器以与一个或多个资源管理器协商进一步的资源协定,其中进一步的资源协定与已经在异构处理系统上运行的应用的服务质量要求兼容。
[0066]
在示例中,qos调度器将资源要求通信给一个或多个资源管理器rm。在示例中,qos调度器被配置为与soc中的单元的资源管理器建立协定(或资源契约)。在从qos调度器请求建立协定时,给定的资源管理器rm对于来自qos调度器的所通信的资源要求执行容量检查,并且通知qos调度器中的多个单元的登记其是否能够满足资源要求。
[0067]
qos调度器监控多个单元的登记,并且评估来自多个资源管理器rm的响应。如果资源管理器rm同意协定,则那么其必定满足协定,或者在示例中,提供尽力的服务以满足协定,并且使所要求的资源在满足预期的执行计划方面可用于qos调度。
[0068]
本领域技术人员将领会,虽然图4图示soc中的每个单元的资源管理器驻留在soc的单元内,但是另外的实际实现是资源管理器被实现为例如可通信地耦合到qos调度器的操作系统内的单个软件模块。在这种情况下,soc的每个单元向操作系统内的资源管理器软件模块暴露接口,以使得能够监控和控制soc中的单元。
[0069]
在示例中,与至少一个试验性计划关联的所有资源管理器确认它们的资源在由应用a1提供的服务质量要求(诸如期限)内的能力。在这种情况下,将至少一个试验性计划指定为预期执行计划,并且qos调度器继续与被指定为预期执行计划的至少一个试验性计划中参考的单元协商协定。
[0070]
在另一示例中,一些资源管理器rm不能充分地分配资源。在一个响应选项中,qos调度器可以将soc中的单元的分配优先化到特定的应用a1,诸如相对于其它应用具有高优先级或安全关键度的应用a1。
[0071]
在另一示例中,qos调度器被配置为在尝试满足服务质量要求当中调整原子计算处理中的至少一个原子计算处理的资源要求。例如,如果足够的存储器资源是不可用的,则qos调度器可以增加在分配给应用a1的互连il和cpu c1处的事务速率,以补偿可能的减速。
[0072]
根据实施例,方法进一步包括在预期执行计划的执行期间:
[0073]
从被包括在异构处理系统soc的多个单元内的单元的至少一个资源管理器rm接收对应的单元不能满足相关协定的通知;
[0074]
基于多个单元的登记,确定包括能够满足相关协定的在异构处理系统的多个单元内的至少一进一步的单元的更新的执行计划;以及
[0075]
更新预期的执行计划以合并在异构处理系统soc的多个单元内的至少一进一步的单元。
[0076]
因此,当根据“尽力服务”方法进行执行时,异构处理系统中的至少一个单元可能不能执行预期执行计划以满足应用a1提供的服务质量要求。在实施例中,服务质量调度器参考一个或多个试验性执行计划,并且尝试用不能执行预期执行计划的至少一个单元替代在另外的试验性执行计划中参考的另外的单元。替代可以包括在服务质量调度和从试验性执行计划获得的更新的单元之间的重新协商。假定更新的单元的协定要被包括在预期执行计划中,那么预期执行计划被更新。
[0077]
根据实施例,方法进一步包括:归结(profile)在异构处理系统soc的多个单元的多个模拟配置上至少第一44和第二46链接的原子计算处理的执行;以及附加地基于归结的结果确定一个或多个执行计划。
[0078]
例如,qos调度器被配置为执行对至少一个应用a1的存储器使用进行离线归结以达到当在cpu(或gpu)上执行时应用所需要的最小带宽。替换地,可以由qos调度器获得预先计算的归结结果。qos调度器可选地被配置为对至少一个应用a1的高速缓存访问行为进行归结以确定例如工作集大小和所要求的专用高速缓存空间。在示例中,qos调度器可以通过应用归结来得出对互连的延迟要求,并且因此计算每秒必须专用于事件链内的给定应用a1的事务数量。在示例中,归结用于至少一个所执行的应用a1的cpu处理预算。
[0079]
根据实施例,异构处理系统soc的中间单元是如下中的至少之一:高速缓存l2、至少一个数据互连总线il、存储器mem或网络接口na。
[0080]
根据实施例,第一44和第二46计算处理器的每个包括从以下列表中选择的不同类型的单元:中央处理单元、图形处理单元、微控制器、数字信号处理器、专用指令集处理器、机器学习加速器和/或现场可编程门阵列。
[0081]
根据第二方面,提供了一种系统soc,包括:
[0082]-异构处理系统soc,其包括至少第一处理器c1和不同类型的第二处理器gpu;以及
[0083]-调度器qos,其被配置为调度异构处理系统soc上的至少第一和第二链接的原子计算处理的执行,其中调度器被配置为:
[0084]
从应用a1-a4接收对于计算作业的请求,其中作业包括至少第一44和第二46链接的原子计算处理,并且其中作业与由应用提供的服务质量要求关联;
[0085]
基于指示至少第一处理器和第二处理器的异构处理系统soc的多个单元的登记,确定至少第一和第二链接的原子计算处理在异构处理系统的多个单元上的一个或多个试验性执行计划;
[0086]
选择在异构处理系统中所包括的至少第一处理器和不同类型的第二处理器上的至少第一和第二链接的原子计算处理的执行计划作为预期执行计划,其中预期执行计划能够满足由应用提供的服务质量要求;以及
[0087]
根据预期执行计划来调度至少第一和第二链接的原子计算处理在至少第一处理器和不同类型的第二处理器上的执行。根据实施例,异构处理系统soc和调度器被包括在片上系统中。
[0088]
例如,片上系统可以包括arm(tm)cortex-a、cortex-r或cortex-m cpu中的一个或多个,虽然在此的技术还可应用于其它处理器类型。
[0089]
根据实施例,提供了包括系统soc的电子控制单元ecu。根据实施例,提供了包括电子控制单元ecu的车辆。在示例中,车辆可以是有驾驶辅助的和/或自主的车辆。
[0090]
根据第三方面,提供了一种包括机器可读指令的计算机程序单元,机器可读指令在由处理器执行时引起处理器执行第一方面或其实施例的步骤。
[0091]
根据第四方面,提供了一种包括第三方面的计算机程序单元的计算机可读介质。
[0092]
计算机可读介质被配置为存储计算机程序、应用、包括能够由处理器执行的机器代码的逻辑。计算机可读介质包括ram、rom、eeprom和存储可以由处理器使用的信息的其它设备。在示例中,处理器和计算机可读介质被集成在同一硅管芯上或同一封装中。在示例中,计算机可读介质是硬盘驱动器、固态存储设备等。在示例中,信号可以例如在诸如互联网的数据通信网络上被通信作为下载或软件更新。
[0093]
在附图中提供并且在前述书面描述中描述的示例旨在提供对本说明书的原理的理解。因此不意图限制所附权利要求的范围。本说明书描述了对于所图示的示例的变更和修改。仅提供了优选的示例,并且期望保护在本说明书的范围内对这些示例的所有改变、修改和进一步的应用。
技术特征:
1.一种用于调度异构处理系统上的至少第一(44)和第二(46)链接的原子计算处理的执行的服务质量调度器的计算机实现的方法(10),异构处理系统包括至少第一处理器(c1)和不同类型的第二处理器(gpu),所述方法包括:从应用(a1-a4)接收(12)对于计算作业的请求,其中作业包括至少第一和第二链接的原子计算处理,并且其中作业与由应用提供的服务质量要求关联;基于指示至少第一处理器(c1)和第二处理器(gpu)的异构处理系统的多个单元的登记,确定(14)至少第一和第二链接的原子计算处理在异构处理系统的多个单元上的一个或多个试验性执行计划;选择(16)在异构处理系统中所包括的至少第一处理器和不同类型的第二处理器上的至少第一和第二链接的原子计算处理的执行计划作为预期执行计划,其中预期执行计划能够满足由应用提供的服务质量要求;以及根据预期执行计划来调度(18)至少第一和第二链接的原子计算处理在至少第一处理器和不同类型的第二处理器上的执行。2.根据权利要求1所述的计算机实现的方法(10),进一步包括:根据预期执行计划在异构处理系统(soc)中所包括的至少第一处理器(c1)和不同类型的第二处理器(gpu)上执行至少第一(44)和第二(46)链接的原子计算处理,以由此计算作业;以及将作业的结果返回到应用(a1-a4)。3.根据权利要求1或2之一所述的计算机实现的方法(10),其中由应用(a1-a4)提供的服务质量要求是限定何时至少第一(44)和第二(46)链接的原子处理必须将作业的结果返回到应用的期限(lt)。4.根据前述权利要求之一所述的计算机实现的方法(10),进一步包括:从对于计算作业的请求获得与第一原子计算处理关联的第一(44)处理器类型以及与第二原子计算处理关联的第二处理器类型;以及通过如下来确定所述一个或多个执行计划:询问异构处理系统(soc)的所述多个单元的登记以识别能够计算在请求中限定的作业的第一处理器类型和第二处理器类型的至少一个组合;以及基于所识别的第一处理器类型(c1)和第二处理器类型(gpu)的至少一个组合,生成至少第一和第二链接的原子计算处理的一个或多个执行计划。5.根据权利要求4所述的计算机实现的方法(10),进一步包括:通过如下来确定所述一个或多个执行计划:当在第一处理器类型上执行第一原子计算处理时,获得第一(44)原子计算处理的第一延时;当在第二处理器类型上执行第二原子计算处理时,获得第二(46)原子计算处理的第二延时;以及基于所识别的至少第一延时和第二延时,生成至少第一(44)和第二链接的原子计算处理的所述一个或多个执行计划。6.根据前述权利要求之一所述的计算机实现的方法(10),进一步包括:从所述多个单元的登记识别异构处理系统(soc)的至少一个中间单元,其中所述至少
一个中间单元被配置为在第一(44)原子计算处理和第二(46)原子计算处理之间传送数据;以及通过如下来确定所述一个或多个执行计划:确定与异构处理系统的所述至少一个中间单元关联的中间延时;基于所识别的中间延时来生成至少第一和第二链接的原子计算处理的所述一个或多个执行计划。7.根据权利要求6所述的计算机实现的方法(10),其中选择能够满足由应用(a1-a4)提供的服务质量要求的至少第一(44)和第二(46)链接的原子计算处理的执行计划作为预期执行计划进一步包括:针对至少第一(44)和第二(46)链接的原子计算处理的至少一个执行计划:经由被要求执行所述至少一个执行计划的异构处理系统(soc)的对应的多个单元(c、gpu、la、il、na、mem)的多个资源管理器(rm)来确定异构处理系统的对应的多个单元执行预期执行计划的可用性;如果异构处理系统的对应的多个单元可用于执行所述至少一个执行计划:则在被要求执行所述至少一个执行计划的异构处理系统(soc)的所述多个单元的对应的资源管理器和服务质量调度器(qos)之间建立多个协定。8.根据权利要求7所述的计算机实现的方法(10),进一步包括:在执行预期执行计划期间:从被包括在异构处理系统(soc)的所述多个单元内的单元的至少一个资源管理器(rm)接收对应的单元不能满足相关协定的通知;基于所述多个单元的登记,确定包括能够满足相关协定的在异构处理系统的所述多个单元内的至少一进一步的单元的更新的执行计划;以及更新预期的执行计划以合并在异构处理系统(soc)的所述多个单元内的所述至少一进一步的单元。9.根据前述权利要求之一所述的计算机实现的方法(10),进一步包括:归结在异构处理系统(soc)的所述多个单元的多个模拟配置上至少第一(44)和第二(46)链接的原子计算处理的执行;以及附加地基于归结的结果来确定所述一个或多个执行计划。10.根据权利要求6至9之一所述的计算机实现的方法(10),其中异构处理系统(soc)的中间单元是如下中的至少之一:高速缓存(l2);至少一个数据互连总线(il);存储器(mem);或网络接口(na)。11.根据权利要求1至10之一所述的计算机实现的方法(10),其中第一(44)和第二(46)计算处理器的每个包括从以下列表中选择的不同类型的单元:中央处理单元、图形处理单元、微控制器、数字信号处理器、专用指令集处理器、机器学习加速器和/或现场可编程门阵列。12.一种系统(soc),包括:-异构处理系统(soc),其包括至少第一处理器(c1)和不同类型的第二处理器(gpu);以及-调度器(qos),其被配置为调度异构处理系统(soc)上的至少第一和第二链接的原子
计算处理的执行,其中调度器被配置为:从应用(a1-a4)接收对于计算作业的请求,其中作业包括至少第一(44)和第二(46)链接的原子计算处理,并且其中作业与由应用提供的服务质量要求关联;基于指示至少第一处理器和第二处理器的异构处理系统(soc)的多个单元的登记,确定至少第一和第二链接的原子计算处理在异构处理系统的所述多个单元上的一个或多个试验性执行计划;选择在异构处理系统中所包括的至少第一处理器和不同类型的第二处理器上的至少第一和第二链接的原子计算处理的执行计划作为预期执行计划,其中预期执行计划能够满足由应用提供的服务质量要求;以及根据预期执行计划来调度至少第一和第二链接的原子计算处理在至少第一处理器和不同类型的第二处理器上的执行。13.根据权利要求12所述的系统,其中异构处理系统(soc)和调度器被包括在片上系统(soc)中。14.一种包括机器可读指令的计算机程序单元,机器可读指令在由计算机处理器执行时能够引起处理器执行根据权利要求1至11之一所述的方法。15.一种计算机可读介质,包括根据权利要求14所述的计算机程序单元。
技术总结
公开了计算处理的调度。一种用于调度异构处理系统上的至少第一(44)和第二(46)链接的原子计算处理的执行的服务质量调度器的计算机实现的方法(10),异构处理系统包括至少第一处理器(C1)和不同类型的第二处理器(GPU),方法包括:从应用(A1-A4)接收(12)对于计算作业的请求,其中作业包括至少第一和第二链接的原子计算处理,并且其中作业与由应用提供的服务质量要求关联;基于指示至少第一处理器(C1)和第二处理器(GPU)的异构处理系统的多个单元的登记,确定(14)至少第一和第二链接的原子计算处理在异构处理系统的多个单元上的一个或多个试验性执行计划;选择(16)在异构处理系统中所包括的至少第一处理器和不同类型的第二处理器上的至少第一和第二链接的原子计算处理的执行计划作为预期执行计划,其中预期执行计划能够满足由应用提供的服务质量要求;以及根据预期执行计划来调度(18)至少第一和第二链接的原子计算处理在至少第一处理器和不同类型的第二处理器上的执行。型的第二处理器上的执行。型的第二处理器上的执行。
技术研发人员:A
受保护的技术使用者:罗伯特
技术研发日:2023.01.17
技术公布日:2023/7/26
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
