CN117950739A - 主控制单元确定方法、装置、设备、存储介质及程序产品 - Google Patents

主控制单元确定方法、装置、设备、存储介质及程序产品 Download PDF

Info

Publication number
CN117950739A
CN117950739A CN202410354668.XA CN202410354668A CN117950739A CN 117950739 A CN117950739 A CN 117950739A CN 202410354668 A CN202410354668 A CN 202410354668A CN 117950739 A CN117950739 A CN 117950739A
Authority
CN
China
Prior art keywords
subsystem
core
cores
layout data
determining
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
CN202410354668.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.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads 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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202410354668.XA priority Critical patent/CN117950739A/zh
Publication of CN117950739A publication Critical patent/CN117950739A/zh
Pending legal-status Critical Current

Links

Abstract

本申请公开了一种主控制单元确定方法、装置、设备、存储介质及程序产品,其中,所述主控制单元确定方法应用于包括多个核心的处理器,包括:获取所述处理器中核心的几何布局数据;所述处理器包括至少一个子系统,每一子系统包括至少一个系统核心;基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心;所述目标核心至所述子系统中的其他系统核心的最大控制回路距离最短;将所述目标核心作为所述子系统的主控制单元;所述主控制单元内的调度处理器用于处理所述子系统内所有调度任务。相较于现有技术中,本申请将得到的目标核心作为主控制单元,可以最大限度地减少控制延迟,提高处理器的响应速度和整体性能。

Description

主控制单元确定方法、装置、设备、存储介质及程序产品
技术领域
本申请涉及处理器管理技术领域,尤其涉及一种主控制单元确定方法、装置、设备、存储介质及程序产品。
背景技术
随着计算机技术的不断发展,多核处理器已经成为当今计算机系统的主流架构。多核处理器包含了多个核心,每个核心可以独立执行指令,使得处理器能够并行处理多个任务。然而,如何有效地确定和处理多个核心之间的控制关系变得至关重要。为了解决这个问题,研究人员一直在寻找一种高效的方法来确定主控制单元。该主控制单元能够管理和协调其他辅助控制单元的工作,从而提高整个处理器的性能。
发明内容
有鉴于此,本申请实施例至少提供一种主控制单元确定方法、装置、设备、存储介质及程序产品。
本申请实施例的技术方案是这样实现的:
一方面,本申请实施例提供一种主控制单元确定方法,应用于包括多个核心的处理器,所述主控制单元确定方法包括:
获取所述处理器中核心的几何布局数据;所述处理器包括至少一个子系统,每一子系统包括至少一个系统核心;
基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心;所述目标核心至所述子系统中的其他系统核心的最大控制回路距离最短;
将所述目标核心作为所述子系统的主控制单元;所述主控制单元内的调度处理器用于处理所述子系统内所有调度任务。
在一些实施例中,所述基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心,包括:
基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离;
将最小的最大控制回路距离对应的系统核心作为所述目标核心。
在一些实施例中,所述基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离,包括:
基于所述几何布局数据,确定所述子系统中所述系统核心与所述子系统中每一其他系统核心之间的控制回路距离;
在所述系统核心与所述子系统中每一其他系统核心之间的控制回路距离中,将最大的控制回路距离作为所述系统核心的最大控制回路距离。
在一些实施例中,所述基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心,包括:
基于所述几何布局数据,确定所述子系统对应的子系统布局数据;所述子系统布局数据为最小的规则核心排布形状的布局数据;所述规则核心排布形状为包括所述子系统中所有系统核心的规则的排布形状;
基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心。
在一些实施例中,所述子系统对应的所有系统核心处于K维空间,K维空间下所述子系统对应的子系统布局数据包括所述子系统在第一方向上的第一坐标区间至第K方向上的第K坐标区间;第一方向至第K方向构成所述K维空间,K为大于或等于2的整数。
在一些实施例中,所述子系统布局数据包括第k方向上的第k坐标区间,所述第k坐标区间由上限和下限确定,k大于或等于1,且小于或等于K;所述基于所述几何布局数据,确定所述子系统对应的子系统布局数据,包括:
基于所述子系统中各所述系统核心在所述K维空间中的K维坐标数据,将第k方向上的最大坐标确定为所述上限,并将第k方向上的最小坐标确定为所述下限;其中,第一坐标区间至第K坐标区间对应的核心排布形状为规则核心排布形状。
在一些实施例中,所述基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心,包括:
基于第k坐标区间,确定第k方向上的第k核心数量;k大于或等于1,且小于或等于K;
利用第一核心数量至第K核心数量分别对应的奇偶性,确定所述子系统对应的目标核心的坐标计算策略;
基于第一坐标区间至第K坐标区间和所述子系统对应的目标核心的坐标计算策略,确定所述目标核心在所述K维空间中的目标K维坐标,并基于所述目标K维坐标在所述子系统的所有系统核心中确定目标核心。
在一些实施例中,所述基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心,包括:
获取所述处理器的多个核心之间的连接模式;
在所述连接模式为全互连模式的情况下,基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离;将最小的最大控制回路距离对应的系统核心作为所述目标核心;
在所述连接模式为非全互连模式的情况下,基于所述几何布局数据,确定所述子系统对应的子系统布局数据;所述子系统布局数据为最小的规则核心排布形状的布局数据;所述规则核心排布形状为包括所述子系统中所有系统核心的规则的排布形状;基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心。
在一些实施例中,所述子系统中的任一核心与所述子系统中的至少一个非任一核心相连;所述任一核心为所述子系统中的任意一个核心。
另一方面,本申请实施例提供一种主控制单元确定装置,所述主控制单元确定装置包括:
获取模块,用于获取处理器中核心的几何布局数据;所述处理器包括至少一个子系统,每一子系统包括至少一个系统核心;
确定模块,用于基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心;所述目标核心至所述子系统中的其他系统核心的最大控制回路距离最短;
处理模块,用于将所述目标核心作为所述子系统的主控制单元;所述主控制单元内的调度处理器用于处理所述子系统内所有调度任务。
再一方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
本申请实施例中,通过获取处理器的几何布局数据,可以更精确地确定每个子系统中的目标核心,即最大控制回路距离最短的核心;同时,相较于现有技术中将任意一个核心作为主控制单元的方案,本申请将得到的目标核心作为主控制单元,可以最大限度地减少控制延迟,提高处理器的响应速度和整体性能,相应地,主控制单元内的调度处理器可以更高效地处理子系统内的所有调度任务,进一步优化处理器的性能;同时,本申请实施例可以在现有的多核处理器架构上进行实施,不需要对现有的硬件和软件进行重大改动。这使得该方案具有较高的实用性和可扩展性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请的技术方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种多核系统的系统结构示意图;
图2为本申请实施例提供的一种主控制单元确定方法的实现流程示意图一;
图3为本申请实施例提供的一种主控制单元确定方法的实现流程示意图二;
图4为本申请实施例提供的一种主控制单元确定方法的实现流程示意图三;
图5为本申请实施例提供的一种二维空间下多个核心的排布形状示意图一;
图6为本申请实施例提供的一种二维空间下多个核心的排布形状示意图二;
图7为本申请实施例提供的一种非规则形状下子系统布局数据示意图;
图8为本申请实施例提供的一种主控制单元确定方法的实现流程示意图四;
图9A为本申请实施例提供的一种全互连模式的核心连接示意图;
图9B为本申请实施例提供的一种水平/垂直互连模式的核心连接示意图;
图10A为本申请实施例提供的设置核心31为主控制单元的最远距离示意图;
图10B为本申请实施例提供的设置核心35为主控制单元的最远距离示意图;
图11为本申请实施例提供的一种二维空间布局的多核系统示意图;
图12为本申请实施例提供的一种三维空间布局的多核系统示意图;
图13为本申请实施例提供的一种主控制单元确定装置的组成结构示意图;
图14为本申请实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请的目的,不是旨在限制本申请。
目前图形渲染的多核系统里有一种实现方法就是基于主从设置和控制流程的方法:具体实现是通过系统软件把多核系统里的其中一个核设置为主控制单元,其他的核设置为辅助控制单元。主要的工作负荷都放在主控制核里的控制单元上。
如图1所示,核心11被设置为主控制单元,核心11里的调度处理器(schedulingprocessor)作为主调度处理器111,所有核的图形核心(如核心11的图形核心112,核心12的图形核心122,至核心1N的图形核心1N2)的调度工作都是由核心11的主调度处理器111来完成,其他核心的辅助调度处理器(如辅助调度处理器121至辅助调度处理器1N1)不参与调度;影响调度工作时序的延迟主要来源于对每一个核的图形核心的寄存器的设置。虽然这种多核图形渲染系统有着很多缺点,比如:浪费资源(辅助控制单元里的处理性能资源,物理资源,等等)。为了解决上述缺点,本申请实施例旨在现有架构不变(包括硬件核软件)的基础上,如何减小系统的控制流程延迟,减少系统控制的能量损耗,在系统路程控制上的延迟和能量损耗优化。
本申请实施例提供一种主控制单元确定方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备数据处理能力的设备。
图2为本申请实施例提供的一种主控制单元确定方法的实现流程示意图一,如图2所示,该方法包括如下步骤S201至步骤S203:
步骤S201、获取所述处理器中核心的几何布局数据;所述处理器包括至少一个子系统,每一子系统包括至少一个系统核心。
在本申请实施例中,该处理器为包括多个核心的多核处理器,该多个核心包括相同类别的处理系统,上述至少一个子系统是按照类别对多个核心的处理系统进行划分后得到的。
示例性地,若处理器包括第一核心至第四核心,每一核心均包括第一类别(如图形处理类别)的处理系统和第二类别(如视频处理类别)的处理系统,此时,针对第一类别,可以将第一核心上的第一类别的处理系统至第四核心上的第一类别的处理系统划分为至少一个第一类别的子系统;相应地,也可以针对第二类别,可以将第一核心上的第二类别的处理系统至第四核心上的第二类别的处理系统划分为至少一个第二类别的子系统。此时,得到的至少一个第一类别的子系统和至少一个第二类别的子系统均为上述处理器包括至少一个子系统。
可以理解的是,以上示例仅为描述处理器的子系统的定义,当然,在一个类别的处理系统不存在于处理器的所有核心的情况下,也可以对这个类别的处理系统进行划分,得到这个类别对应的子系统。
在本申请实施例中,该处理器中核心的几何布局数据至少表征了每一核心的位置信息。在一些实施例中,上述几何布局信息可以包括以下至少之一:该处理器中核心的物理位置,该处理器中核心之间的相对位置,该处理器中核心的数量,该处理器中核心的整体布局形状,以及该处理器中核心之间的距离。
步骤S202、基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心;所述目标核心至所述子系统中的其他系统核心的最大控制回路距离最短。
在一些实施例中,该目标核心为该子系统中需要设置主调度处理器的系统核心,相应地,该子系统对应的非目标核心为该子系统中的其他系统核心。在同一个子系统中,由于目标核心内的主调度处理器需要处理该子系统中所有调度任务,因此,需要保证目标核心至所述子系统中的其他系统核心的最大控制回路距离最短。
请参阅图1,针对图形处理类别,在当前处理器包括一个图形处理类别的子系统(处理器中所有核心均划分到一个子系统)的情况下,处理器中每一核心均包括该图形处理类别对应的处理系统(图形核心112至图形核心1N2),此时,目标核心(核心11)内的主调度处理器需要处理该子系统中每一个核心内图形核心的调度任务,因此,为了减少整体的控制延迟,缩短控制路径,需要尽量缩短目标核心至所述子系统中的其他系统核心的控制回路距离。
基于此,由于该几何布局数据至少表征了每一核心的位置信息,可以基于该几何布局数据,按照目标核心至所述子系统中的其他系统核心的最大控制回路距离最短的原则,在子系统对应的所有系统核心中确定目标核心。
在一些实施例中,在该几何布局数据包括子系统中每一系统核心的物理位置的情况下,可以分别确定该系统核心两两之间的控制回路距离,进而确定每一个系统核心至子系统中的其他系统核心的最大控制回路距离,将最小的最大控制回路距离对应的系统核心作为目标核心。
在一些实施例中,为了降低确定目标核心的计算量,可以从几何角度在子系统的系统核心中确定目标核心。可以理解的是,一般来说,假设子系统对应的多个核心整体上呈现矩形排布形状,则位于该矩形中心的核心往往与子系统中的其他系统核心的最大控制回路距离最小。由此,可以从整体上获取子系统中所有系统核心的整体排布形状,并将位于该整体排布形状中心的核心作为该目标核心。
在一些实施例中,还可以先基于几何角度,从子系统中确定目标核心的位置范围,之后,再分别确定该位置范围内每一个系统核心至子系统中的其他系统核心的控制回路距离,进而确定该位置范围内每一个系统核心至子系统中的其他系统核心的最大控制回路距离,将最小的最大控制回路距离对应的系统核心作为目标核心。示例性的,在子系统对应的系统核心的排布形状为5×5的情况下,可以先位于中心的3×3个系统核心作为上述目标核心的位置范围,之后,分别计算这9个系统核心中每一个系统核心到其他的(5×5-1)个系统核心之间的控制回路距离,进而得到9个系统核心的最大控制回路距离,将最小的最大控制回路距离对应的系统核心作为目标核心。这样,由于先基于几何角度从大范围系统核心中确定较小的目标核心的位置范围,并在该目标核心的位置范围利用最小的最大控制回路距离确定目标核心,可以在节省计算量的同时,提高确定目标核心的准确度。
步骤S203、将所述目标核心作为所述子系统的主控制单元;所述主控制单元内的调度处理器用于处理所述子系统内所有调度任务。
在本申请实施例中,在子系统中所有系统核心中确定目标核心之后,将上述目标核心中作为该子系统对应的主控制单元,进而将该主控制单元内的调度处理器作为该子系统对应的主调度处理器,并通过该主调度处理器处理子系统内所有调度任务。
在一些实施例中,所述方法还可以包括:响应于针对所述子系统的任务下发事件,通过所述主调度处理器获取该任务的至少一个子任务,并将所述至少一个子任务分发到子系统中的处理系统;通过所述子系统的处理系统处理被分发的子任务。
在一些实施例中,所述方法还可以包括:响应于所述子系统内的处理系统产生的系统事件,通过所述处理系统向所述主调度处理器上报所述系统事件;其中,所述系统事件包括以下至少之一:任务完成事件,多核心任务同步事件,系统异常事件。
本申请实施例中,通过获取处理器的几何布局数据,可以更精确地确定每个子系统中的目标核心,即最大控制回路距离最短的核心;同时,相较于现有技术中将任意一个核心作为主控制单元的方案,本申请将得到的目标核心作为主控制单元,可以最大限度地减少控制延迟,提高处理器的响应速度和整体性能,相应地,主控制单元内的调度处理器可以更高效地处理子系统内的所有调度任务,进一步优化处理器的性能;同时,本申请实施例可以在现有的多核处理器架构上进行实施,不需要对现有的硬件和软件进行重大改动。这使得该方案具有较高的实用性和可扩展性。
图3是本申请实施例提供的一种主控制单元确定方法的实现流程示意图二,该方法可以由计算机设备的处理器执行。基于图2,图2中的S202可以更新为S301至S302,将结合图3示出的步骤进行说明。
步骤S301、基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离。
在一些实施例中,该几何布局数据包括处理器中两两核心之间的控制回路距离;基于此,可以先确定该子系统中包括的系统核心,并在上述几何布局数据中查找子系统中两两系统核心之间的控制回路距离;之后,针对子系统中每一系统核心,找到该系统核心与每一个其他系统核心之间的控制回路距离,通过比对即可得到该系统核心至所述子系统中的其他系统核心的最大控制回路距离。
示例性地,处理器包括第一核心至第四核心共四个核心,相应地,该几何布局数据中包括这四个核心中两两之间的控制回路距离(共6个),在子系统包括3个系统核心的情况下,可以在上述6个控制回路距离中查找到需要的3个控制回路距离(包括系统核心1至系统核心2之间的控制回路距离,系统核心1至系统核心3之间的控制回路距离,系统核心2至系统核心3之间的控制回路距离),进而,可以依次确定系统核心1到其他两个系统核心之间的最大控制回路距离,系统核心2到其他两个系统核心之间的最大控制回路距离,以及系统核心3到其他两个系统核心之间的最大控制回路距离。可以理解的是,上述实施例中的处理器中各个核心处于全互连模式,因此,可以直接获取到两两系统核心之间的控制回路距离。
在一些实施例中,该处理器中的各个核心还可以处于非全互连模式,即,处理器中存在两个核心没有直接连接的回路,这两个核心可以通过与其他系统核心之间的连接回路进行间接连接。示例性地,若存在第一核心至第四核心,其中,第一核心与第四核心不存在直接连接的回路,此时,若第一核心与第二核心存在直接连接的回路且第二核心与第四核心存在直接连接的回路,此时,第一核心与第四核心之间的控制回路距离可以通过第一核心与第二核心之间的控制回路距离、第四核心与第二核心之间的控制回路距离,这两个最大控制回路距离得到。
在一些实施例中,可以通过步骤S3011至步骤S3012实现上述基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离。
步骤S3011、基于所述几何布局数据,确定所述子系统中所述系统核心与所述子系统中每一其他系统核心之间的控制回路距离。
步骤S3012、在所述系统核心与所述子系统中每一其他系统核心之间的控制回路距离中,将最大的控制回路距离作为所述系统核心的最大控制回路距离。
其中,上述最大控制回路距离的获取方式可以通过公式(1)获取。
公式(1);
其中,是子系统中系统核心的总数量,/>和/>为多核系统中的任意两个核心,/>表示/>和/>之间的距离。
本申请实施例中,通过基于几何布局数据计算控制回路距离,可以基于实际物理布局来计算控制回路的距离,从而更准确地反映实际控制开销;同时,本申请实施例可以准确地计算每个系统核心到其他系统核心的最大控制回路距离,由于考虑了每个系统核心与其他系统核心之间的实际控制距离,可以更准确地评估每个系统核心的控制开销,提高目标核心确定的准确性,简化计算过程,并具有较好的扩展性和实用性。
步骤S302、将最小的最大控制回路距离对应的系统核心作为所述目标核心。
在本申请实施例中,上述步骤S302可以通过公式(2)描述。
/> 公式(2);
其中,为第i个系统核心对应的最大控制回路距离。
在一些实施例中,若存在两个或两个以上的系统核心同时对应最小的最大控制回路距离,可以在这两个或两个以上的系统核心中任选一个作为该目标核心。
在另一些实施例中,若存在两个或两个以上的系统核心同时对应最小的最大控制回路距离,还可以获取这这两个或两个以上的系统核心中分别对应的控制回路距离之和,将最小的控制回路距离之和对应的系统核心作为目标核心。
本申请实施例中,通过基于几何布局数据,对每个系统核心到其他系统核心的控制回路距离进行整体计算和评估,有助于了解每个系统核心与其他系统核心间的控制交互复杂性,为后续确定目标核心提供全面的基础;同时,通过选择最小的最大控制回路距离对应的系统核心作为目标核心。这一步骤体现了对系统核心间控制开销的优化,有助于提高处理器整体运行效率。基于上述实施例选择的目标核心,具有最小控制开销,进而可以最大限度地减少控制延迟,提高处理器的响应速度和整体性能。
图4是本申请实施例提供的一种主控制单元确定方法的实现流程示意图三,该方法可以由计算机设备的处理器执行。基于图2,图2中的S202可以更新为S401至S402,将结合图4示出的步骤进行说明。
步骤S401、基于所述几何布局数据,确定所述子系统对应的子系统布局数据;所述子系统布局数据为最小的规则核心排布形状的布局数据;所述规则核心排布形状为包括所述子系统中所有系统核心的规则的排布形状。
在一些实施例中,该几何布局数据包括处理器中多个核心对应的整体排布形状,相应的,该子系统包括该处理器中的部分或全部核心,因此,该子系统对应的子系统布局数据为该子系统包括的所有系统核心对应的局部排布形状。
可以理解的是,由于多核处理器中核心排列方式的不同,上述几何布局数据和子系统布局数据可以为二维空间下核心的排布形状,也可以为三维空间下的核心排布形状。为了便于理解本申请实施例,以下将以二维空间的核心排布形状为例进行示例性说明。
请参阅图5,其示出了二维空间下多个核心的排布形状示意图。图5所示,该处理器包括的M×N个核心分布在二维空间下,该处理器对应的整体排布形状可以表示为“M×N”的二维矩形,相应地,几何布局数据为“0至(M-1)行,0至(N-1)列”。若将M=0和M=1这两行的核心划分至子系统51,其他系统核心划分至子系统52。此时,子系统51对应的局部排布形状可以表示为“2×N”的二维矩形,相应地,子系统51对应的子系统布局数据为“0至1行,0至(N-1)列”;子系统52对应的局部排布形状可以表示为“(M-2)×N”的二维矩形,相应地,子系统52对应的子系统布局数据为“2至(M-1)行,0至(N-1)列”。可以看出,上述“0至1行,0至(N-1)列”对应的排布形状为包括该子系统51所有系统核心的最小的规则形状,相应地,上述“2至(M-1)行,0至(N-1)列”对应的排布形状为包括该子系统52所有系统核心的最小的规则形状。
在一些实施例中,在划分子系统的过程中,子系统对应的所有系统核心对应的排布形状有可能是不规则的,在此情况下,需要在该子系统对应的所有系统核心的基础上,确定一个最小的规则核心排布形状,使其可以包括该子系统对应的所有系统核心。
请参阅图6,其示出了二维空间下多个核心的排布形状示意图。图5所示,该处理器包括的M×N个核心分布在二维空间下,该处理器对应的整体排布形状可以表示为“M×N”的二维矩形,相应地,几何布局数据为“0至(M-1)行,0至(N-1)列”。若将阴影核心划分至子系统61,非阴影核心划分至子系统62。可以看出,子系统61和子系统62分别对应的所有系统核心的排布形状是不规则的,此时,需要将第K行核心分别添加到子系统61和子系统62。得到如图7示出了非规则形状下子系统布局数据示意图。可以看到,子系统71和子系统72为两个完整的长方形,并且,原来非规则形状的子系统61是子系统71的最小子集,原来非规则形状的子系统62是子系统72的最小子集。
在一些实施例中,所述子系统对应的所有系统核心处于K维空间,K维空间下所述子系统对应的子系统布局数据包括:所述子系统在第一方向上的第一坐标区间至第K方向上的第K坐标区间;第一方向至第K方向构成所述K维空间,K为大于或等于2的整数。
在一些实施例中,所述子系统布局数据包括第k方向上的第k坐标区间,所述第k坐标区间由上限和下限确定,k大于或等于1,且小于或等于K;可以通过步骤S4011实现上述基于所述几何布局数据,确定所述子系统对应的子系统布局数据。
步骤S4011、基于所述子系统中各所述系统核心在所述K维空间中的K维坐标数据,将第k方向上的最大坐标确定为所述上限,并将第k方向上的最小坐标确定为所述下限。
其中,第一坐标区间至第K坐标区间对应的核心排布形状为规则核心排布形状,k大于或等于1,且小于或等于K。
步骤S402、基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心。
在一些实施例中,可以通过步骤S4021至步骤S4023实现上述基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心。
步骤S4021、基于第k坐标区间,确定第k方向上的第k核心数量;k大于或等于1,且小于或等于K。
这里,需要对第一方向至第K方向,分别基于该方向对应的坐标区间,确定该方向上的核心数量。以第k方向为例,可以基于第k坐标区间,确定第k方向上的第k核心数量。
步骤S4022、利用第一核心数量至第K核心数量分别对应的奇偶性,确定所述子系统对应的目标核心的坐标计算策略。
步骤S4023、基于第一坐标区间至第K坐标区间和所述子系统对应的目标核心的坐标计算策略,确定所述目标核心在所述K维空间中的目标K维坐标,并基于所述目标K维坐标在所述子系统的所有系统核心中确定目标核心。
在一些实施例中,该坐标计算策略包括每一方向上的子策略,相应地,一个方向上的子策略与当前方向上的核心数量的奇偶性相关。以第k方向为例,可以基于第k方向上的第k核心数量,确定第k方向上的子策略。进而可以得到包括所有方向上的子策略的坐标计算策略。
在一些实施例中,在第k方向上的第k核心数量为奇数的情况下,可以将第k方向上的坐标值设置为(P1+Pn)/2;这里,P1为第k方向上的第一个核心的坐标值,Pn第k方向上的最后一个核心的坐标值。
在一些实施例中,在第k方向上的第k核心数量为偶数的情况下,可以将第k方向上的坐标值设置为(P1+Pn-1)/2(P1+Pn+1)和;这里,P1为第k方向上的第一个核心的坐标值,Pn第k方向上的最后一个核心的坐标值。
这里,该目标K维坐标包括了每一个方向上的坐标值。基于每一方向上的子策略,即可得到每一个方向上的坐标值,进而可以得到目标核心在所述K维空间中的目标K维坐标。
可以理解的是,在一个方向上确定的坐标值为2个的情况下,表示目标核心在该方向上可以为2个。也就是说,在所述子系统对应的所有系统核心处于二维空间的情况下,若两个方向上确定的坐标值均为2个,则目标核心可以存在4个。
在一些实施例中,在所述子系统对应的所有系统核心处于二维空间的情况下,二维空间下所述子系统对应的子系统布局数据包括所述子系统在第一方向上的第一坐标区间和第二方向上的第二坐标区间;所述第一方向和所述第二方向构成所述二维空间。
相应地,所述基于所述几何布局数据,确定所述子系统对应的子系统布局数据,包括:基于所述子系统中各所述系统核心在所述二维空间中的二维坐标数据,将所述第一方向上的最大坐标和最小坐标分别确定为所述第一坐标区间的上限和下限;并将所述第二方向上的最大坐标和最小坐标分别确定为所述第二坐标区间的上限和下限;所述第一坐标区间和所述第二坐标区间对应的核心排布形状为规则核心排布形状。
相应地,所述基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心,包括:基于所述第一坐标区间,确定第一方向上的第一核心数量;基于所述第二坐标区间,确定第二方向上的第二核心数量;利用所述第一核心数量和所述第二核心数量分别对应的奇偶性,确定所述子系统对应的目标核心的坐标计算策略 ;基于所述第一坐标区间、所述第二坐标区间和所述子系统对应的目标核心的坐标计算策略,确定所述目标核心在所述二维空间中的目标二维坐标;所述目标二维坐标用于在所述子系统的所有系统核心中确定目标核心。
在一些实施例中,在所述子系统对应的所有系统核心处于三维空间的情况下,三维空间下所述子系统对应的子系统布局数据包括所述子系统在第一方向上的第一坐标区间、第二方向上的第二坐标区间和第三方向上的第三坐标区间;所述第一方向、所述第二方向和所述第三方向构成所述三维空间。
相应地,所述基于所述几何布局数据,确定所述子系统对应的子系统布局数据,包括:基于所述子系统中各所述系统核心在所述二维空间中的二维坐标数据,将所述第一方向上的最大坐标和最小坐标分别确定为所述第一坐标区间的上限和下限;并将所述第二方向上的最大坐标和最小坐标分别确定为所述第二坐标区间的上限和下限;并将所述第三方向上的最大坐标和最小坐标分别确定为所述第三坐标区间的上限和下限;所述第一坐标区间、所述第二坐标区间和所述第三坐标区间对应的核心排布形状为规则核心排布形状。
相应地,所述基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心,包括:基于所述第一坐标区间,确定第一方向上的第一核心数量;基于所述第二坐标区间,确定第二方向上的第二核心数量;基于所述第三坐标区间,确定第三方向上的第三核心数量;利用所述第一核心数量、所述第二核心数量和所述第三核心数量分别对应的奇偶性,确定所述子系统对应的目标核心的坐标计算策略 ;基于所述第一坐标区间、所述第二坐标区间、所述第三坐标区间和所述子系统对应的目标核心的坐标计算策略,确定所述目标核心在所述三维空间中的目标三维坐标;所述目标三维坐标用于在所述子系统的所有系统核心中确定目标核心。
本申请实施例中,由于使用几何布局数据来确定子系统对应的子系统布局数据,可以基于实际的物理布局来评估每个系统核心的布局情况,为后续确定目标核心提供准确的基础;同时,由于子系统布局数据为最小的规则核心排布形状的布局数据,且规则核心排布形状为包括所述子系统中所有系统核心的规则的排布形状,由此,本申请实施例可以适应不同的处理器布局情况,提高方案实施的效率和准确性,优化处理器设计的性能。
图8是本申请实施例提供的一种主控制单元确定方法的实现流程示意图四,该方法可以由计算机设备的处理器执行。基于图2,图2中的S202可以更新为S801至S803,将结合图8示出的步骤进行说明。
步骤S801、获取所述处理器的多个核心之间的连接模式。
步骤S802、在所述连接模式为全互连模式的情况下,基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离;将最小的最大控制回路距离对应的系统核心作为所述目标核心。
这里,上述步骤S802在实施时可以参照前述图3的具体实施方式。
步骤S803、在所述连接模式为非全互连模式的情况下,基于所述几何布局数据,确定所述子系统对应的子系统布局数据。
这里,上述步骤S803在实施时可以参照前述图4的具体实施方式。
其中,所述子系统布局数据为最小的规则核心排布形状的布局数据;所述规则核心排布形状为包括所述子系统中所有系统核心的规则的排布形状;基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心。
本申请实施例中,根据不同的连接模式选择相应的方法来确定目标核心,可以提高方案实施的效率和准确性。这种方法可以根据处理器的实际连接模式来选择最合适的目标核心确定方法,从而优化处理器设计的性能。
在一些实施例中,所述子系统中的任一核心与所述子系统中的至少一个非任一核心相连;所述任一核心为所述子系统中的任意一个核心。
其中,所述子系统中所有核心处于连通关系。连通关系为子系统内任意两个核心之间均存在至少一条路径,所述路径中相邻两个核心之间的距离小于预设距离阈值。
下面说明本申请实施例提供的主控制单元确定方法在实际场景中的应用,主要涉及图形渲染的多核系统。其中,本申请实施例为多核系统的主从控制如何实现最小的控制流程延迟和减少能量消耗的策略。可以进一步细分到图形渲染的多核系统。
根据现有的芯片设计和布局的常规,有两个重要因素是设计要素,第一个为核与核之间的距离,分布;第二个就是核与核之间的连接。一般情况下,多核系统会被摆置成一个簇(cluster)的几何空间里,可能是二维,也可能是三维空间,这样尽量保证核与核之间的距离比较短。
请参阅图9A,其示出了一种全互连模式的核心连接示意图,其中,核心21至核心24之间存在全互连关系;请参阅图9B,其示出了一种水平/垂直互连模式的核心连接示意图,其中,核心21与核心22连接,核心21与核心23连接,核心22和核心24连接,核心23和核心24连接。其中,第二种互连方式由于节省了互连成本,在实际应用中更多的被采纳。
为了便于理解相关技术中互连方式的缺陷,以下将以第二种互连方式进行示例性说明。可以理解的是,主控制单元里的调度处理器通过广播的方式把寄存器内容写到所有的核的图形渲染处理器的寄存器里。寄存器广播所需的时间(延迟)是由主控制单元所在的核与被控制单元(辅助控制单元)所在的核的距离所决定。
如图9B所示,当多核系统里有4个核心(2×2布局),以核心21作为主控制单元为例,核心21到核心24的距离最远,即核心21通过核心22到核心24,或者核心21通过核心23再到核心24,两种方式的距离相同,都是两个单位距离(临近核心之间的距离为一个单位距离);因为4个核心的完全对称性,选核心21或者任何一个核心(22,23,24),核心与核心之间的最远距离都一样,均为2个单位距离。所以,在4核系统里,如何选取主控制单元是没有区别的。但是当核心的数量增加后,如何选择主控制单元就是本申请的重点。
如图10A中的9核系统(3×3布局)里,在设置核心31为主控制单元的情况下,核心31与核心39之间的最远距离是5个单位距离(传导路径依次为:核心31、核心34、核心37、核心38、核心39;或者核心31、核心32、核心33、核心36、核心39);如图10B中的9核系统(3×3布局)里,在设置核心35作为主控制单元的情况下,主控制单元与辅助控制单元的最远距离是2个单位距离(如核心35、核心32、核心31;或者核心35、核心32、核心33;或者核心35、核心38、核心37;或者核心35、核心38、核心39);相比于将核心31、核心33、核心37或核心39作为主控制单元,将核心35作为主控制单元可以减少3个单位距离,控制流程时间延迟明显减少,这样能量消耗也会减少。因此,在上述场景中,将核心35作为主控制单元是最优解。
可以理解的是,相关技术中的多核系统主从系统方案存在以下缺点:(1)允许随机选取任何一个核心作为主控制单元,不能实现最小控制延迟;(2)允许随机选取任何一个核心作为主控制单元,需要完整的核与核之间的网络mesh 连接,这样物理连线的数量也会比主控制单元最优解的物理连线数量多,浪费资源。例如,如图10A选择核心31作为主控制单元,需要核心31、核心32、核心33、核心36、核心39的连线,而选择核心35作为主控制单元,不需要核心33、核心36和核心39的连线;(3)随机选取任何一个核作为主控制单元比选取最优解的主控制单元耗费更多的能量。
本申请实施例中,主从控制单元设置在多核系统里随着核心的数量的增加,时延的问题会变的越来越严重,以至于最终影响到系统的性能。主控制单元的选取最优解可以用下述通用数学公式(3)来描述:
公式(3);
其中, 是核心的总数量,/>和/>为多核系统中的任意两个核心,表示/>和/>之间的距离(临近核心之间的距离为一个单位距离)。
上述公式(3)的解析是一个动态规划的优化过程。数字解法(计算机解)是通过以下步骤完成:
步骤1、迭代找到每个核心到另外的核心的控制回路距离。
其中,选取每个核心的最大的控制回路距离并存储数据对(核的位置,最大控制距离)。示例性地,在存在N个核心的情况下,针对第i个核心,需要确定该第i个核心到每一个其他核心(第1到i-1个核心、第i+1到N个核心)之间的距离,比较这(N-1)个控制回路距离,并将最大的控制回路距离,作为该第i个核心的最大控制距离。
步骤2、迭代选取各个核心的最大控制距离中的最小距离所对应的核心,作为主控制单元。
其中,对于得到的N个核心的最大控制距离,将其中的最小值对应的核心作为主控制单元。
本申请实施例提供的方案属于芯片的软件驱动程序设计优化方案,而非无优化的通用方案。此优化方案的目标就是要降低控制时延,同时也降低功耗。此优化方案和通用方案的主要区别在于:
(1)如果多核系统会划分为多个子系统,优化方案会根据芯片多核的布局结合优化时延的规则去划分子系统,例如:一个子系统里所有的核都有至少一个邻居核相连,这样就不会有不同子系统之间的交叉连接;
(2)优化方案会根据公式(3)提供的最小时延的规则去选取特定的核心作为主控制单元,通用方案通常允许子系统里所有的核作为主控制单元
(3)优化方案的芯片驱动程序和非优化方案的驱动程序不同。
在一些实施例中,多核系统通常分成多个子系统,每个子系统里有一个主控制单元。如果多核系统只有一个子系统,是一个简化的特殊情况。每一个子系统的几何划分在二维空间里有可能是长方形(正方形包括在内),也有可能是非长方形,在三维空间里有可能是长方体(立方体包括在内),也可能是非长方体。对于多核全互连模式,主控制单元的选择优化方法依然需要应用公式(3)来用计算数值解析的方法来解决。对于非全互连多核系统的主控制单元的选择方法可以采用几何方法如下(先针对规则形状的长方形,长方体,不规则的形状会在后续阐述):
在一些实施例中,请参阅图11,对于二维空间布局的多核系统,多核系统有M行(m=[0,M-1]),N列(n=[0,N-1])个核心。其中:
在M是偶数且N是偶数的情况下,主控制单元的最优选的位置是((N-1)/2,(M-1)/2),此时,只有一个最优选择;
在M是奇数且N是奇数的情况下,主控制单元最优选的位置有4个,分别是((N-1)/2,(M-1)/2)、((N-1)/2+1,(M-1)/2+1)、((N-1)/2+1,(M-1)/2)和((N-1)/2,(M-1)/2+1);
在M是偶数且N是奇数的情况下,主控制单元最优选的位置有2个,分别是((N-1)/2,M/2)和((N-1)/2+1,M/2);
在M是奇数且N是偶数的情况下,主控制单元最优选的位置是((N-1)/2,(M-1)/2)和((N-1)/2,(M-1)/2)+1。
在一些实施例中,请参阅图12,对于三维空间布局的多核系统,多核系统有M行(m=[0,M-1]),N列(n=[0,N-1]),P层(p=[0,P-1])个核心。其中:
在M是奇数且N是奇数且P是奇数的情况下,主控制单元的最优选的位置是((N-1)/2,(M-1)/2,(P-1)/2);
在M是奇数且N是奇数且P是偶数的情况下,主控制单元的最优选的位置是((N-1)/2,((M-1)/2,(P-1)/2),((N-1)/2,(M-1)/2,(P-1)/2+1);
在M是奇数且N是偶数且P是奇数的情况下,主控制单元的最优选的位置是((N-1)/2,(M-1)/2,(P-1)/2),((N-1)/2+1,(M-1)/2,(P-1)/2);
在M是奇数且N是偶数且P是偶数的情况下,主控制单元的最优选的位置是((N-1)/2,(M-1)/2,(P-1)/2),((N-1)/2+1,(M-1)/2,(P-1)/2),((N-1)/2,(M-1)/2,(P-1)/2+1),((N-1)/2+1,(M-1)/2,(P-1)/2+1);
在M是偶数且N是奇数且P是奇数的情况下,主控制单元的最优选的位置是((N-1)/2,(M-1)/2,(P-1)/2),((N-1)/2,(M-1)/2+1,(P-1)/2);
在M是偶数且N是奇数且P是偶数的情况下,主控制单元的最优选的位置是((N-1)/2,(M-1)/2,(P-1)/2),((N-1)/2,(M-1)/2+1,(P-1)/2),((N-1)/2,(M-1)/2,(P-1)/2+1),((N-1)/2,(M-1)/2+1,(P-1)/2+1);
在M是偶数且N是偶数且P是奇数的情况下,主控制单元的最优选的位置是((N-1)/2,(M-1)/2,(P-1)/2),((N-1)/2+1,(M-1)/2,(P-1)/2),((N-1)/2,(M-1)/2+1,(P-1)/2),((N-1)/2+1,(M-1)/2+1,(P-1)/2);
在M是偶数且N是偶数且P是偶数的情况下,主控制单元的最优选的位置是((N-1)/2,(M-1)/2,(P-1)/2),((N-1)/2,(M-1)/2+1,(P-1)/2),((N-1)/2,(M-1)/2,(P-1)/2+1),((N-1)/2,(M-1)/2+1,(P-1)/2+1),((N-1)/2+1,(M-1)/2,(P-1)/2),((N-1)/2+1,(M-1)/2+1,(P-1)/2),((N-1)/2+1,(M-1)/2,(P-1)/2+1),((N-1)/2+1,(M-1)/2+1,(P-1)/2+1)。
对于整个多核系统分成几个子系统的情况,如何在子系统里选择主控制单元的方案包括:
方案1、对于每一个子系统,运用公式(3),采用计算机的数字解法依然可以得到最优解的答案。
步骤2、对于每一个子系统,仍然可以运用上述实施例描述的几何方法得到。
请参阅图6,其中的二维多核系统分成两个子系统,可以看出,子系统61和子系统62都不是规则的长方形,因此,需要对各个子系统进行变形,将各个子系统变形为规则的长方形后,再用上述实施例中的几何方法来找主控制单元的位置最优解。
例如,请参阅图7,其示出的二维多核系统相较于图6出现了变形。考虑到图6中第K行的核心不仅存在位于子系统61的核心,也存在位于子系统62的核心,因此,可以将该第K行分别全部划分至子系统61和子系统62,分别得到如图7所示的子系统71和子系统72,可以看到,子系统71和子系统72为两个完整的长方形,并且,原来非规则形状的子系统61是子系统71的最小子集,原来非规则形状的子系统62是子系统72的最小子集,之后再用上述实施例中的几何方法来找子系统71和子系统72分别对应的主控制单元的位置最优解。
可以理解的是,上述子系统的划分过程中,需要保证以下子系统的划分规则:不能有子系统交叉互连。比如参阅图6,和阴影核心非相邻的非阴影核心不能属于子系统61。
基于前述的实施例,本申请实施例提供一种主控制单元确定装置,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CentralProcessing Unit,CPU)、微处理器(Microprocessor Unit,MPU)、数字信号处理器(DigitalSignal Processor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等。
图13为本申请实施例提供的一种主控制单元确定装置的组成结构示意图,如图13所示,主控制单元确定装置1300包括:获取模块1310、确定模块1320、处理模块1330,其中:
获取模块1310,用于获取所述处理器中核心的几何布局数据;所述处理器包括至少一个子系统,每一子系统包括至少一个系统核心;
确定模块1320,用于基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心;所述目标核心至所述子系统中的其他系统核心的最大控制回路距离最短;
处理模块1330,用于将所述目标核心作为所述子系统的主控制单元;所述主控制单元内的调度处理器用于处理所述子系统内所有调度任务。
在一些实施例中,所述确定模块1320,还用于:
基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离;
将最小的最大控制回路距离对应的系统核心作为所述目标核心。
在一些实施例中,所述确定模块1320,还用于:
基于所述几何布局数据,确定所述子系统中所述系统核心与所述子系统中每一其他系统核心之间的控制回路距离;
在所述系统核心与所述子系统中每一其他系统核心之间的控制回路距离中,将最大的控制回路距离作为所述系统核心的最大控制回路距离。
在一些实施例中,所述确定模块1320,还用于:
基于所述几何布局数据,确定所述子系统对应的子系统布局数据;所述子系统布局数据为最小的规则核心排布形状的布局数据;所述规则核心排布形状为包括所述子系统中所有系统核心的规则的排布形状;
基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心。
在一些实施例中,所述子系统对应的所有系统核心处于K维空间,K维空间下所述子系统对应的子系统布局数据包括所述子系统在第一方向上的第一坐标区间至第K方向上的第K坐标区间;第一方向至第K方向构成所述K维空间,K为大于或等于2的整数。
在一些实施例中,所述子系统布局数据包括第k方向上的第k坐标区间,所述第k坐标区间由上限和下限确定,k大于或等于1,且小于或等于K;所述确定模块1320,还用于:
基于所述子系统中各所述系统核心在所述K维空间中的K维坐标数据,将第k方向上的最大坐标确定为所述上限,并将第k方向上的最小坐标确定为所述下限;其中,第一坐标区间至第K坐标区间对应的核心排布形状为规则核心排布形状。
在一些实施例中,所述确定模块1320,还用于:
基于第k坐标区间,确定第k方向上的第k核心数量;k大于或等于1,且小于或等于K;
利用第一核心数量至第K核心数量分别对应的奇偶性,确定所述子系统对应的目标核心的坐标计算策略;
基于第一坐标区间至第K坐标区间和所述子系统对应的目标核心的坐标计算策略,确定所述目标核心在所述K维空间中的目标K维坐标,并基于所述目标K维坐标在所述子系统的所有系统核心中确定目标核心。
在一些实施例中,所述确定模块1320,还用于:
获取所述处理器的多个核心之间的连接模式;
在所述连接模式为全互连模式的情况下,基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离;将最小的最大控制回路距离对应的系统核心作为所述目标核心;
在所述连接模式为非全互连模式的情况下,基于所述几何布局数据,确定所述子系统对应的子系统布局数据;所述子系统布局数据为最小的规则核心排布形状的布局数据;所述规则核心排布形状为包括所述子系统中所有系统核心的规则的排布形状;基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心。
在一些实施例中,所述子系统中的任一核心与所述子系统中的至少一个非任一核心相连;所述任一核心为所述子系统中的任意一个核心。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的主控制单元确定方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述主控制单元确定方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本申请实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
图14为本申请实施例提供的一种计算机设备的硬件实体示意图,如图14所示,该计算机设备1400的硬件实体包括:处理器1401和存储器1402,其中,存储器1402存储有可在处理器1401上运行的计算机程序,处理器1401执行程序时实现上述任一实施例的方法中的步骤。
存储器1402存储有可在处理器上运行的计算机程序,存储器1402配置为存储由处理器1401可执行的指令和应用,还可以缓存待处理器1401以及计算机设备1400中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
处理器1401执行程序时实现上述任一项的主控制单元确定方法的步骤。处理器1401通常控制计算机设备1400的总体操作。
本申请实施例提供一种计算机存储介质,计算机存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如上任一实施例的主控制单元确定方法的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
上述处理器可以为目标用途集成电路(Application Specific IntegratedCircuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Programmable LogicDevice,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
上述计算机存储介质/存储器可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种终端,如移动电话、计算机、平板设备、个人数字助理等。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ReadOnly Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述主控制单元确定方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (13)

1.一种主控制单元确定方法,其特征在于,应用于包括多个核心的处理器,所述主控制单元确定方法包括:
获取所述处理器中核心的几何布局数据;所述处理器包括至少一个子系统,每一子系统包括至少一个系统核心;
基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心;所述目标核心至所述子系统中的其他系统核心的最大控制回路距离最短;
将所述目标核心作为所述子系统的主控制单元;所述主控制单元内的调度处理器用于处理所述子系统内所有调度任务。
2.根据权利要求1所述的主控制单元确定方法,其特征在于,所述基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心,包括:
基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离;
将最小的最大控制回路距离对应的系统核心作为所述目标核心。
3.根据权利要求2所述的主控制单元确定方法,其特征在于,所述基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离,包括:
基于所述几何布局数据,确定所述子系统中所述系统核心与所述子系统中每一其他系统核心之间的控制回路距离;
在所述系统核心与所述子系统中每一其他系统核心之间的控制回路距离中,将最大的控制回路距离作为所述系统核心的最大控制回路距离。
4.根据权利要求1所述的主控制单元确定方法,其特征在于,所述基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心,包括:
基于所述几何布局数据,确定所述子系统对应的子系统布局数据;所述子系统布局数据为最小的规则核心排布形状的布局数据;所述规则核心排布形状为包括所述子系统中所有系统核心的规则的排布形状;
基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心。
5.根据权利要求4所述的主控制单元确定方法,其特征在于,所述子系统对应的所有系统核心处于K维空间,K维空间下所述子系统对应的子系统布局数据包括:所述子系统在第一方向上的第一坐标区间至第K方向上的第K坐标区间;第一方向至第K方向构成所述K维空间,K为大于或等于2的整数。
6.根据权利要求5所述的主控制单元确定方法,其特征在于,所述子系统布局数据包括第k方向上的第k坐标区间,所述第k坐标区间由上限和下限确定,k大于或等于1,且小于或等于K;所述基于所述几何布局数据,确定所述子系统对应的子系统布局数据,包括:
基于所述子系统中各所述系统核心在所述K维空间中的K维坐标数据,将第k方向上的最大坐标确定为所述上限,并将第k方向上的最小坐标确定为所述下限;
其中,第一坐标区间至第K坐标区间对应的核心排布形状为规则核心排布形状。
7.根据权利要求5所述的主控制单元确定方法,其特征在于,所述基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心,包括:
基于第k坐标区间,确定第k方向上的第k核心数量;k大于或等于1,且小于或等于K;
利用第一核心数量至第K核心数量分别对应的奇偶性,确定所述子系统对应的目标核心的坐标计算策略;
基于第一坐标区间至第K坐标区间和所述子系统对应的目标核心的坐标计算策略,确定所述目标核心在所述K维空间中的目标K维坐标,并基于所述目标K维坐标在所述子系统的所有系统核心中确定目标核心。
8.根据权利要求1至7任一项所述的主控制单元确定方法,其特征在于,所述基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心,包括:
获取所述处理器的多个核心之间的连接模式;
在所述连接模式为全互连模式的情况下,基于所述几何布局数据,确定所述子系统中每一所述系统核心至所述子系统中的其他系统核心的最大控制回路距离;将最小的最大控制回路距离对应的系统核心作为所述目标核心;
在所述连接模式为非全互连模式的情况下,基于所述几何布局数据,确定所述子系统对应的子系统布局数据;所述子系统布局数据为最小的规则核心排布形状的布局数据;所述规则核心排布形状为包括所述子系统中所有系统核心的规则的排布形状;基于所述子系统布局数据在所述子系统的所有系统核心中确定目标核心。
9.根据权利要求1至7任一项所述的主控制单元确定方法,其特征在于,所述子系统中的任一核心与所述子系统中的至少一个非任一核心相连;所述任一核心为所述子系统中的任意一个核心。
10.一种主控制单元确定装置,其特征在于,所述主控制单元确定装置包括:
获取模块,用于获取处理器中核心的几何布局数据;所述处理器包括至少一个子系统,每一子系统包括至少一个系统核心;
确定模块,用于基于所述几何布局数据,在所述子系统内的系统核心中确定子系统对应的目标核心;所述目标核心至所述子系统中的其他系统核心的最大控制回路距离最短;
处理模块,用于将所述目标核心作为所述子系统的主控制单元;所述主控制单元内的调度处理器用于处理所述子系统内所有调度任务。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至9任一项所述主控制单元确定方法中的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述主控制单元确定方法中的步骤。
13.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时,实现权利要求1至9中任一项所述主控制单元确定方法中的步骤。
CN202410354668.XA 2024-03-26 2024-03-26 主控制单元确定方法、装置、设备、存储介质及程序产品 Pending CN117950739A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410354668.XA CN117950739A (zh) 2024-03-26 2024-03-26 主控制单元确定方法、装置、设备、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410354668.XA CN117950739A (zh) 2024-03-26 2024-03-26 主控制单元确定方法、装置、设备、存储介质及程序产品

Publications (1)

Publication Number Publication Date
CN117950739A true CN117950739A (zh) 2024-04-30

Family

ID=90796709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410354668.XA Pending CN117950739A (zh) 2024-03-26 2024-03-26 主控制单元确定方法、装置、设备、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN117950739A (zh)

Similar Documents

Publication Publication Date Title
US10140123B2 (en) SIMD processing lanes storing input pixel operand data in local register file for thread execution of image processing operations
US7792895B1 (en) Efficient matrix multiplication on a parallel processing device
US8400458B2 (en) Method and system for blocking data on a GPU
US7912889B1 (en) Mapping the threads of a CTA to the elements of a tile for efficient matrix multiplication
US7506134B1 (en) Hardware resource based mapping of cooperative thread arrays (CTA) to result matrix tiles for efficient matrix multiplication in computing system comprising plurality of multiprocessors
KR100862124B1 (ko) 하위 포트 카운트 메모리를 이용하여 멀티포트 메모리를시뮬레이션하는 시스템 및 방법
US7836118B1 (en) Hardware/software-based mapping of CTAs to matrix tiles for efficient matrix multiplication
CN111767508B (zh) 计算机实现张量数据计算的方法、装置、介质和设备
CN113590508B (zh) 动态可重构的内存地址映射方法及装置
CN114730275A (zh) 使用张量在分布式计算系统中进行矢量化资源调度的方法和装置
CN102810133B (zh) 网络游戏中的射线查询方法和场景服务器
CN114385972B (zh) 一种直接求解结构化三角稀疏线性方程组的并行计算方法
CN117950739A (zh) 主控制单元确定方法、装置、设备、存储介质及程序产品
CN116529775A (zh) 用于光线追踪的合并函数调用的方法和装置
CN106484532B (zh) 面向sph流体模拟的gpgpu并行计算方法
Wei et al. Mapping the simulated annealing algorithm onto CUDA GPUs
CN112068955B (zh) 一种异构多核平台处理器内的通信优化方法及电子设备
US11636569B1 (en) Matrix transpose hardware acceleration
CN114580607A (zh) 数据处理方法、装置和存储介质
CN114489799A (zh) 处理方法、处理装置及相关产品
Kuo et al. Efficient input and output for scientific simulations
Li et al. Optimizing Data Layout for Training Deep Neural Networks
CN110766150A (zh) 一种深度卷积神经网络硬件加速器中的区域并行数据载入装置及方法
US20230333746A1 (en) Speculative remote memory operation tracking for efficient memory barrier
Yang et al. Fine-grained dynamic load balancing in spatial join by work stealing on distributed memory

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination