CN116931942A - 逻辑核编译方法及运行方法、控制器、众核芯片 - Google Patents
逻辑核编译方法及运行方法、控制器、众核芯片 Download PDFInfo
- Publication number
- CN116931942A CN116931942A CN202210350809.1A CN202210350809A CN116931942A CN 116931942 A CN116931942 A CN 116931942A CN 202210350809 A CN202210350809 A CN 202210350809A CN 116931942 A CN116931942 A CN 116931942A
- Authority
- CN
- China
- Prior art keywords
- core
- logic
- many
- physical
- chip
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000013507 mapping Methods 0.000 claims abstract description 99
- 230000005540 biological transmission Effects 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 18
- 230000002159 abnormal effect Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 abstract description 13
- 238000011017 operating method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
本公开提供了一种逻辑核编译方法及运行方法、控制器、众核芯片、电子设备、计算机可读介质,待处理的计算图对应多个逻辑核,每个逻辑核对应分配有计算图中的一个或多个计算任务,该逻辑核编译方法包括:确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系;基于即时编译方式,将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核,以使第一物理核执行逻辑核的计算任务。根据本公开的实施例能够有效降低计算图中逻辑核的映射复杂度,提高计算图中逻辑核的映射和编译效率。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种逻辑核编译方法及基于众核芯片的逻辑核运行方法、控制器、众核芯片、电子设备、计算机可读存储介质。
背景技术
基于存算一体的众核架构芯片,因将计算和存储都放在片上,减少了数据搬运时间,降低了功耗,是众核芯片的一个重要发展方向。
深度学习框架(例如TensorFlow或ONNX)通常使用计算图来表达深度学习模型(神经网络)的计算。针对特定的加速硬件,神经网络计算图需要经过编译器进行编译,以生成可以在硬件上运行的指令流。其中,硬件可以是基于存算一体的众核芯片,众核芯片通常包括多个物理核(Core)。
发明内容
本公开提供一种逻辑核编译方法及基于众核芯片的逻辑核运行方法、控制器、众核芯片、电子设备、计算机可读存储介质。
第一方面,本公开提供了一种逻辑核编译方法,待处理的计算图对应多个逻辑核,每个逻辑核对应分配有所述计算图中的一个或多个计算任务,所述逻辑核编译方法包括:
确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系;
基于即时编译方式,将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核,以使所述第一物理核执行所述逻辑核的计算任务。
在一些实施例中,所述确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系,包括:
根据至少一个众核芯片的当前资源情况,确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核。
在一些实施例中,所述众核芯片的当前资源情况包括以下信息中的至少一种:所述众核芯片的算力、可用的物理核数量、各物理核的算力、各物理核的可用内存、所述众核芯片上的物理核之间的通信距离、所述众核芯片的负荷、各物理核的负荷、异常状态信息。
在一些实施例中,在所述确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系之前,所述逻辑核编译方法还包括:
响应于接收到所述众核芯片的资源上报信号,获取所述众核芯片的当前资源情况;
响应于在第一预设时间内未接收到所述众核芯片的资源上报信号,将所述众核芯片标注为不可用的众核芯片。
在一些实施例中,所述根据至少一个众核芯片的当前资源情况,确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核,包括:
根据至少一个众核芯片的当前资源情况,确定满足当前待分配的逻辑核的资源需求的备选众核芯片以及备选物理核;
根据当前待分配的逻辑核与已编译的逻辑核之间的连接关系,确定与具有所述连接关系的已编译的逻辑核所对应的物理核之间的通信距离最近的备选众核芯片及备选物理核,以作为所述第一众核芯片及所述第一物理核。
在一些实施例中,所述确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系,包括:
获取针对当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核的多个映射方案,所述映射方案是描述当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核与众核系统中可用的物理核之间的映射关系的方案,不同映射方案中至少存在一个逻辑核与物理核之间的映射关系不同;
根据当前待分配的逻辑核及执行顺序在当前待分配的逻辑核之后的逻辑核中具有连接关系的逻辑核之间的数据传输量,确定最优映射方案;
根据最优映射方案,确定当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核中,每个逻辑核与众核系统中可用的物理核之间的映射关系,以确定每个逻辑核对应的第一众核芯片及第一物理核。
在一些实施例中,所述逻辑核编译方法还包括:
在任一已编译的逻辑核的运行阶段,响应于在第二预设时间内未接收到对应的众核芯片针对该已编译的逻辑核的运行完成信号,重新确定该已编译的逻辑核对应的第二众核芯片以及对应的第二物理核;并且,
基于即时编译方式,将该已编译的逻辑核重新编译至对应的第二众核芯片的第二物理核。
第二方面,本公开提供了一种基于众核芯片的逻辑核运行方法,待处理的计算图对应多个逻辑核,每个逻辑核对应分配有所述计算图中的一个或多个计算任务,所述逻辑核运行方法包括:
在已编译的逻辑核的运行阶段,运行所述已编译的逻辑核对应的可执行文件,以执行所述已编译的逻辑核中的计算任务;
接收当前待分配的逻辑核对应的可执行文件,并将当前待分配的逻辑核对应的可执行文件加载至对应的物理核。
在一些实施例中,在所述接收当前待分配的逻辑核对应的可执行文件之后,所述方法还包括:
将所述当前待分配的逻辑核对应的可执行文件缓存至预设消息队列。
在一些实施例中,所述方法还包括:
响应于所述已编译的逻辑核对应的可执行文件运行完成,向所述逻辑核对应的目的地址发送运行结果;并且,
向控制器发送运行完成信号。
第三方面,本公开提供了一种控制器,所述控制器用于将计算图对应的多个逻辑核编译至对应的众核芯片上运行,每个逻辑核对应分配有所述计算图中的一个或多个计算任务,所述控制器包括:
确定模块,用于确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系;
编译模块,用于基于即时编译方式,将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核,以使所述第一物理核执行所述逻辑核的计算任务。
第四方面,本公开提供了一种众核芯片,该众核芯片包括:
运行模块,用于在已编译的逻辑核的运行阶段,运行所述已编译的逻辑核对应的可执行文件,以执行所述已编译的逻辑核中的计算任务;
接收模块,用于接收当前待分配的逻辑核对应的可执行文件,并将当前待分配的逻辑核对应的可执行文件加载至对应的物理核。
第五方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的逻辑核编译方法和/或逻辑核运行方法。
第六方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的逻辑核编译方法和/或逻辑核运行方法。
根据本公开所提供的逻辑核编译方法及基于众核芯片的逻辑核运行方法、控制器、众核芯片、电子设备、计算机可读存储介质的技术方案,预先构建待处理的计算图对应的多个逻辑核,并将计算图的所有计算任务分配到多个逻辑核上,每个逻辑核对应分配有计算图中的一个或多个计算任务,在至少一个众核芯片中确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系,并基于即时编译方式将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核进行运行,无需提前进行物理核资源映射,有效降低了资源映射的复杂度,有效提高了逻辑核的映射和编译效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的一种逻辑核编译方法的流程示意图;
图2为本公开实施例中一种确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核的方式的流程示意图;
图3为本公开实施例中另一种确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核的方式的流程示意图;
图4为一种逻辑核计算图的结构示意图;
图5为不同映射方案的示意图;
图6为本公开实施例提供的另一种逻辑核编译方法的流程示意图;
图7为本公开实施例提供的一种逻辑核运行方法的流程示意图;
图8为本公开实施例提供的一种控制器的组成框图;
图9为本公开实施例提供的一种众核芯片的组成框图;
图10为本公开实施例提供的一种电子设备的框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
在相关技术中,在计算图的编译阶段,计算图进入编译器后,会进行任务分配,根据计算图的不同算子的计算量和访存需求,以及算子间的同步信息,将不同的算子分配到众核芯片的不同物理核上进行执行。其中,编译是将上层的计算图映射为众核芯片上的执行指令流,因将整体计算图的执行过程都放在片上,所以编译的过程是面向具体芯片实现。
其中,编译过程通常分成两个阶段,包括:1)构建逻辑核,将计算图的所有计算任务分配到逻辑核;2)在具体执行环节执行时,先将所有逻辑核映射到物理核,然后执行。然而,采用此种方法,通常存在以下问题:1)在针对大型网络的计算图进行编译时,在运行前提前映射资源的复杂度非常高,编译难度大且效率低;2)硬件在运行过程中,由于硬件老化、任务异常、多设备时的通信异常等,导致任务的执行流无法按照预期执行;
3)多个计算图在同一芯片运行时,需要进行合理的物理核的分配。
为此,本公开实施例提供了一种逻辑核编译方法及逻辑核运行方法、控制器、众核芯片、电子设备、计算机可读存储介质,旨在能够有效解决上述相关技术中存在的技术问题中的至少一种。
根据本公开实施例的逻辑核编译方法,预先构建待处理的计算图对应的多个逻辑核,并将计算图的所有计算任务提前静态划分并编排到多个逻辑核上,每个逻辑核对应分配有计算图中的一个或多个计算任务,在至少一个众核芯片中确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系,并基于即时编译方式将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核进行运行,无需提前进行物理核资源映射,有效降低了资源映射的复杂度,有效提高了逻辑核的映射和编译效率。
本公开实施例的逻辑核编译方法可以由控制器作为执行主体执行,控制器可以通过软件和/或硬件方式集成于终端设备或服务器等电子设备中,示例性的,终端设备可以为车载设备、用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些实施例中,逻辑核编译方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现,或者,可通过服务器执行逻辑核编译方法。
本公开实施例的逻辑核运行方法基于众核芯片实现,众核芯片能够运行编译至本芯片上的逻辑核的计算任务,其中众核芯片基于存算一体的众核架构的芯片,由多个物理核(也称为计算核)组成,每个物理核均具有独立内存。
图1为本公开实施例提供的一种逻辑核编译方法的流程示意图,本公开实施例提供一种逻辑核编译方法,该逻辑核编译方法用于实现将待处理的计算图编译至相应众核芯片上运行,待处理的计算图对应多个逻辑核,每个逻辑核对应分配有计算图中的一个或多个计算任务,计算任务可以包括计算图的一个或多个算子,参照图1,该逻辑核编译方法包括:步骤S11~步骤S12。
在步骤S11中,确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系。
在步骤S12中,基于即时编译方式,将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核,以使第一物理核执行逻辑核的计算任务。
在本公开实施例中,待处理的计算图可以包括多个算子,算子是构成神经网络的基本计算单元,算子在神经网络计算图中可以通过节点进行表示,算子例如可以是神经网络中的卷积、池化等运算操作,神经网络可以是任意类型的深度学习网络,神经网络可以用于执行图像处理任务、语音处理任务、文本处理任务、视频处理任务中的任意一种,神经网络的输入数据可以是图像数据、语音数据、文本数据、视频数据中的任意一种。
在本公开实施例中,对于一个待处理的计算图,在将该计算图进行物理核映射和编译之前,即在步骤S11之前,该逻辑核编译方法还包括:创建多个逻辑核,并将计算图的所有计算任务分配到相应的逻辑核。
其中,每个逻辑核的资源配置(如内存、算力等)与物理核的资源配置相同,且每个逻辑核具有对应的运行属性信息,运行属性信息可以包括运行时间(phase),逻辑核的运行时间用于表示逻辑核的运行顺序。
示例性的,可以根据计算任务所需的资源配置将计算任务分配到相应的逻辑核,以将计算图的所有计算任务分配到多个逻辑核。在分配计算任务完成后,计算图可以表示为由多个逻辑核通过一定拓扑结构连接构成的逻辑核计算图,计算图的多个计算任务具有执行顺序,多个逻辑核之间的拓扑结构连接关系可以反映出多个逻辑核的运行顺序,上述逻辑核的运行时间(phase)可以根据分配给逻辑核的计算任务的执行顺序确定。
在确定计算图对应的多个逻辑核之后,可以按照多个逻辑核的执行顺序,执行步骤S11和步骤S12,以将多个逻辑核进行物理核映射和编译。
在一些实施例中,确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系的步骤,即步骤S11,可以进一步包括:根据至少一个众核芯片的当前资源情况,确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核。
其中,众核芯片的当前资源情况包括以下信息中的至少一种:众核芯片的算力、可用的物理核数量、各物理核的算力、各物理核的可用内存、众核芯片上的物理核之间的通信距离、众核芯片的负荷、各物理核的负荷、异常状态信息。其中,异常状态信息反映了众核芯片及物理核的异常状态,异常状态可以包括计算无法结束及通信异常、设备异常等异常状态。
在本公开的一些实施例中,对于当前待分配的逻辑核,在将当前待分配的逻辑核进行编译到对应的物理核之前,根据至少一个众核芯片的当前资源情况,从至少一个众核芯片中确定与当前待分配的逻辑核对应匹配的第一众核芯片,并确定第一众核芯片中与当前待分配的逻辑核对应匹配的第一物理核,从而可以提高逻辑核的编译效果,以及确保逻辑核能够在匹配的物理核中正常运行。
图2为本公开实施例中一种确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核的方式的流程示意图,在一些实施例中,参照图2,根据至少一个众核芯片的当前资源情况,确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核的步骤,即步骤S11,可以进一步包括:步骤S111A和步骤S112A。
在步骤S111A中,根据至少一个众核芯片的当前资源情况,确定满足当前待分配的逻辑核的资源需求的备选众核芯片以及备选物理核。
其中,当前资源情况反映了众核芯片中当前可用的资源情况及状态,因此,根据众核芯片的当前资源情况,可以确定众核芯片及物理核是否满足当前待分配的逻辑核的资源需求,例如众核芯片及物理核的算力是否满足当前待分配的逻辑核的算力需求,内存是否满足当前待分配的逻辑核的内存需求,是否处于超负荷的运行状态,是否存在异常状态等,从而可以确定出满足当前待分配的逻辑核的资源需求的备选众核芯片以及备选物理核。示例性的,可以基于负载均衡原则,在算力和内存均满足当前待分配的逻辑核的需求、且不存在异常状态的众核芯片和物理核中,选取负荷较小的众核芯片和物理核作为备选众核芯片和备选物理核,从而可以提高各众核芯片和物理核的负载均衡。
在步骤S112A中,根据当前待分配的逻辑核与已编译的逻辑核之间的连接关系,确定与具有连接关系的已编译的逻辑核所对应的物理核之间的通信距离最近的备选众核芯片及备选物理核,以作为第一众核芯片及所述第一物理核。
如前所述,多个逻辑核之间具有拓扑结构连接关系,反映了多个逻辑核的输入和输出之间的连接关系,在步骤S112A中,在当前待分配的逻辑核与计算图中已编译好的逻辑核之间存在连接关系的情况下,基于该连接关系,从备选众核芯片和备选物理核中,确定出与具有连接关系的已编译的逻辑核所对应的物理核之间的通信距离最近的备选众核芯片及备选物理核,以作为第一众核芯片及所述第一物理核。当存在多个通信距离最近的备选众核芯片及备选物理核时,则可以选取任意一个通信距离最近的备选众核芯片及备选物理核,以作为第一众核芯片及所述第一物理核。从而可以有效降低具有连接关系的逻辑核所对应的物理核之间的通信响应时长,提高多个逻辑核的运行效率,进而提高计算任务的处理效率。
图3为本公开实施例中一种确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核的方式的流程示意图,在一些实施例中,参照图3,确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系的步骤,即步骤S11,可以进一步包括:步骤S111B至步骤S113B。
在步骤S111B中,获取针对当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核的多个映射方案。
其中,映射方案是描述针对当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核进行物理核映射的方案,即是描述当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核与众核系统中可用的物理核之间的映射关系的方案,不同映射方案中至少存在一个逻辑核与物理核之间的映射关系不同。其中,众核系统可以包括至少一个众核芯片,每个众核芯片可以包括多个物理核。
在本公开的一些实施例中,可以根据不同逻辑核之间的连接关系以及众核系统中可用的物理核的物理分布情况,确定针对当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核的多个映射方案。
其中,众核系统中可用的物理核可以包括众核系统中当前可用的物理核和预期可用的的物理核,当前可用的物理核是指当前空闲的物理核,即当前不存在正在运行中的逻辑核的物理核,预期可用的物理核是指当前存在正在运行中的逻辑核的、但预期将在当前待分配的逻辑核的运行时间之前空闲的物理核,可用的物理核均需能够满足逻辑核的资源需求(如算力和内存)、且不存在异常状态。
物理分布情况是描述众核系统中可用的物理核的物理位置的分布情况的信息,可以根据物理分布情况确定众核系统中各可用的物理核所在的物理位置、相对位置关系和距离。
图4为一种逻辑核计算图的结构示意图,图5为不同映射方案的示意图,示例性的,参照图4和图5,图5示出了可用的物理核的物理位置布局以及不同映射方案中逻辑核与物理核间的映射关系,假设逻辑核1是当前待分配的逻辑核,逻辑核2、3、4、5、6均是执行顺序在逻辑核1之后的逻辑核,根据不同逻辑核之间的连接关系以及众核系统中可用的物理核的物理分布情况,针对逻辑核1-6,可以获取到两种不同的映射方案,分别为映射方案1和映射方案2。其中映射方案1中,逻辑核1映射至物理核1,逻辑核2映射至物理核2,逻辑核3映射至物理核3,逻辑核4映射至物理核4,逻辑核5映射至物理核5,逻辑核6映射至物理核6;映射方案2中,逻辑核1映射至物理核1,逻辑核2映射至物理核2,逻辑核4映射至物理核3,逻辑核3映射至物理核4,逻辑核5映射至物理核5,逻辑核6映射至物理核6。
在步骤S112B中,根据当前待分配的逻辑核及执行顺序在当前待分配的逻辑核之后的逻辑核中具有连接关系的逻辑核之间的数据传输量,确定最优映射方案。
其中,具有连接关系的逻辑核之间的数据传输量即为具有连接关系的逻辑核之间的输入输出大小。示例性的,图4中逻辑核2与逻辑核1具有连接关系,逻辑核1的输出即为逻辑核2的输入,逻辑核1的输出大小等于逻辑核2的输入大小,该输出大小、输入大小即为逻辑核2与逻辑核1之间的数据传输量。
在步骤S112B中,根据具有连接关系的逻辑核之间的数据传输量以及不同映射方案中逻辑核对应的物理核之间的通信距离,确定不同映射方案的整体数据传输代价;并根据不同映射方案的整体数据传输代价,确定多个映射方案中的最优映射方案。例如,将整体数据传输代价最小的映射方案作为多个映射方案中的最优映射方案,当存在多个映射方案的整体数据传输代价最小时,则可以任选其中一个作为最优映射方案。
其中,整体数据传输代价等于每两个具有连接关系的逻辑核之间的数据传输代价之和,具有连接关系的逻辑核之间的数据传输代价为具有连接关系的逻辑核对应的物理核之间的通信距离与数据传输量的乘积。
示例性的,如图5所示,假设不同逻辑核之间的数据传输量均记为1,在行方向或列方向上相邻的物理核之间的通信距离记为1,且相邻的物理核之间的通信距离相等。假设图4中逻辑核1与逻辑核2之间的数据传输代价为w12,逻辑核1与逻辑核3之间的数据传输代价为w13,逻辑核2与逻辑核4之间的数据传输代价为w24,逻辑核3与逻辑核5之间的数据传输代价为w35,逻辑核4与逻辑核6之间的数据传输代价为w46,逻辑核5与逻辑核6之间的数据传输代价为w56。则对于映射方案1,w12=1*1=1,w13=1*2=2,w24=1*2=2,w35=1*2=2,w46=1*2=2,w56=1*1=1,映射方案1的整体数据传输代价为:w1=w12+w13+w24+w35+w46+w56=1+2+2+2+2+1=10。而对于映射方案2,w12=1*1=1,w13=1*1=1,w24=1*1=1,w35=1*1=1,w46=1*1=1,w56=1*1=1,映射方案2的整体数据传输代价为:w1=w12+w13+w24+w35+w46+w56=1+1+1+1+1+1=6。可见,映射方案1的整体数据传输代价大于映射方案2的整体数据传输代价,故将映射方案2作为针对逻辑核1-6的最优映射方案。
步骤S113B、根据最优映射方案,确定当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核中,每个逻辑核与众核系统中可用的物理核之间的映射关系,以确定每个逻辑核对应的第一众核芯片及第一物理核。
在本公开的一些实施例中,根据整体传输代价最小的最优映射方案,将逻辑核布局映射到对应的物理核上时,使得逻辑核计算图在物理核上运行时,整体的数据传输代价较小,从而有效提高了逻辑核对应的物理核间的数据传输效率,有效提高了逻辑核计算图在物理硬件上的运行效果。
在一些实施例中,还可以基于当前待分配的逻辑核及执行顺序在当前待分配的逻辑核之后的逻辑核中具有连接关系的逻辑核之间的数据传输量、众核系统中可用的物理核的物理分布情况,利用指针网络pointer network或强化学习的方法,确定出最优映射方案。
需要说明的是,对于执行顺序在当前待分配的逻辑核之后的逻辑核,在对执行顺序在当前待分配的逻辑核之后的逻辑核进行物理核映射和编译时,可以按照最优映射方案对执行顺序在当前待分配的逻辑核之后的逻辑核进行物理核的映射和编译。
在本公开实施例中,逻辑核编译方法基于控制器实现,为了便于实现逻辑核的物理映射和编译,提高映射和编译效果,控制器能够在逻辑核运行前和运行过程中管理和获取各众核芯片的当前资源情况。对于各众核芯片而言,各众核芯片可以每间隔预定时间(例如50毫秒),定期向控制器发送资源上报信号,信号中可以携带上述当前资源情况,以便控制器获取和管理各众核芯片的当前资源情况。
进一步地,在一些实施例中,在确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系的步骤之前,即在步骤S11之前,该逻辑核编译方法还可以进一步包括:响应于接收到众核芯片的资源上报信号,获取众核芯片的当前资源情况;响应于在第一预设时间内未接收到众核芯片的资源上报信号,将众核芯片标注为不可用的众核芯片。
其中,上述第一预设时间可以根据上述预定时间(如50毫秒)确定,进一步地,上述第一预设时间可以设置为上述预定时间的整数倍,示例性的,上述第一预设时间可以设置为200毫秒。当任一众核芯片在第一预设时间内未向控制器发送资源上报信号时,表示该众核芯片可能存在设备异常状态,故将该众核芯片标注为不可用的众核芯片,并通知和提醒管理员进行设备检查。
在本公开的一些实施例中通过在逻辑核运行前和运行过程中接收众核芯片的资源上报信号,并识别和筛选可用的众核芯片,管理和获取各可用的众核芯片的当前资源情况,以便根据可用的众核芯片的当前资源情况进行逻辑核的物理核映射。
在本公开实施例中,当在对当前待分配的逻辑核进行物理核映射核编译之前,存在已编译的逻辑核时,则在已编译的逻辑核的运行阶段,执行步骤S11和步骤S12,即已编译的逻辑核的运行和待分配的逻辑核的物理核映射及编译可以同时进行。
在本公开实施例中,在步骤S12中,即时编译方式,即在已编译的逻辑核运行时进行待分配的逻辑核的编译,待分配的逻辑核的编译时间(Phase)大于已编译的逻辑核的运行时间(Phase),对于各众核芯片而言,各众核芯片一边运行之前已编译好的逻辑核,一边接收当前编译的新分配的逻辑核。
在本公开实施例中,将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核,以使第一物理核执行逻辑核的计算任务,可以进一步包括:获取当前待分配的逻辑核对应的可执行文件,并将当前待分配的逻辑核对应的可执行文件发送至对应的第一众核芯片的第一物理核,以使第一物理核执行对应的逻辑核中的计算任务。其中,可执行文件是可在物理核上运行的执行代码或指令。
本公开实施例通过即时编译方式,在已编译的逻辑核运行时进行待分配的逻辑核的映射和编译,无需提前进行物理核资源映射,有效降低了资源映射的复杂度,有效提高了逻辑核的映射和编译效率。
图6为本公开实施例提供的另一种逻辑核编译方法的流程示意图,在一些实施例中,参照图6,该逻辑核编译方法还可以进一步包括:步骤S13和步骤S14。
在步骤S13中,在任一已编译的逻辑核的运行阶段,响应于在第二预设时间内未接收到众核芯片针对该已编译的逻辑核的运行完成信号,重新确定该已编译的逻辑核对应的第二众核芯片以及对应的第二物理核。
在步骤S14中,基于即时编译方式,将该已编译的逻辑核重新编译至对应的第二众核芯片的第二物理核。
在本公开的一些实施例中,对于每一个逻辑核,在将该逻辑核映射和编译至对应的物理核之后,在该逻辑核的运行阶段,实时监测该逻辑核在当前对应的物理核上的运行状态,若在指定的第二预设时间内未接收到该逻辑核当前对应的众核芯片针对该逻辑核的运行完成信号,表示该逻辑核在当前对应的物理核上的运行状态可能存在异常,导致该逻辑核在当前对应的物理核上无法按照预期的时间完成运行。
其中,当前对应的众核芯片的硬件老化,该待分配的逻辑核中计算任务异常,多设备间存在通信异常等,均可能导致该逻辑核在当前对应的物理核上的运行状态异常,使得该逻辑核在当前对应的物理核上无法按照预期的时间完成运行。
因此,为了确保已编译的逻辑核的正常运行,若在指定的第二预设时间内未接收到该已编译的逻辑核当前所对应的众核芯片针对该已编译的逻辑核的运行完成信号时,重新确定该已编译的逻辑核对应的第二众核芯片以及对应的第二物理核。其中,重新确定的该已编译的逻辑核对应的第二众核芯片和之前确定的该已编译的逻辑核所对应的第一众核芯片可以是同一芯片,也可以是不同芯片,但重新确定的第二物理核与之前确定的第一物理核是不同的物理核。其中,确定该已编译的逻辑核对应的第二众核芯片以及对应的第二物理核的方式,可参考上述确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核的方式,此处不再赘述。
在重新确定当前待分配的逻辑核对应的第二众核芯片及第二物理核之后,基于即时编译方式,将该已编译的逻辑核重新编译至对应的第二众核芯片的第二物理核,以便由第二众核芯片的第二物理核重新执行该已编译的逻辑核。其中,将已编译的逻辑核重新编译至对应的第二众核芯片的第二物理核的具体描述,同样可参考上述关于将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核的描述,此处不再赘述。
在一些实施例中,当步骤S13中该已编译的逻辑核存在后继逻辑核,后继逻辑核是计算图中与该已编译的逻辑核具有连接关系且执行顺序在该已编译的逻辑核之后的逻辑核,由于该已编译的逻辑核的执行地址由第一众核芯片的第一物理核变更为第二众核芯片的第二物理核,因此,为了确保后继逻辑核的正常运行,需通知后继逻辑核该已编译的逻辑核的执行地址已变更。
进一步地,在一些实施例中,在将当前待分配的逻辑核编译至对应的第二众核芯片的第二物理核的步骤之前,该逻辑核编译方法还可以进一步包括:向与该已编译的逻辑核具有连接关系的后继逻辑核所对应的物理核发送接收地址变更信号。
通过向与该已编译的逻辑核具有连接关系的后继逻辑核所对应的物理核发送接收地址变更信号,以便后继逻辑核所对应的物理核根据接收地址变更信号变更本地存储的该已编译的逻辑核的运行结果的接收地址,即将第一众核芯片的第一物理核的地址变更为第二众核芯片的第二物理核的地址,使得后继逻辑核所对应的物理核可以根据变更后的接收地址读取该已编译的逻辑核的运行结果及相关数据。
进一步地,在一些实施例中,将当前待分配的逻辑核编译至对应的第二众核芯片的第二物理核的步骤,包括:响应于后继逻辑核所对应的物理核的变更确认信号,执行将当前待分配的逻辑核编译至对应的第二众核芯片的第二物理核的步骤。
图7为本公开实施例提供的一种逻辑核运行方法的流程示意图,本公开实施例提供一种基于众核芯片的逻辑核运行方法,待处理的计算图对应多个逻辑核,每个逻辑核对应分配有所述计算图中的一个或多个计算任务,控制器基于上述的逻辑核编译方法将计算图的各逻辑核编译至相应的众核芯片的物理核,针对每个众核芯片,基于本公开实施例的逻辑核运行方法对编译和映射至该众核芯片的逻辑核进行运行管理。参照图7,该逻辑核运行方法包括:步骤S21和步骤S22。
在步骤S21中,在已编译的逻辑核的运行阶段,运行已编译的逻辑核对应的可执行文件,以执行已编译的逻辑核中的计算任务。
在步骤S22中,接收当前待分配的逻辑核对应的可执行文件,并将当前待分配的逻辑核对应的可执行文件加载至对应的物理核。
在本公开实施例中,对于众核芯片,众核芯片在运行已编译的逻辑核的同时,接收控制器发送的当前待分配的逻辑核对应的可执行文件,并将当前待分配的逻辑核的可执行文件加载至对应的物理核,以使对应的物理核在已编译的逻辑核的运行阶段,执行可执行文件,以运行已编译的逻辑核中的计算任务。从而有效提高了逻辑核的映射和编译效率,提高了计算图中多个逻辑核的运行效率。
在一些实施例中,在接收当前待分配的逻辑核对应的可执行文件之后,该逻辑核运行方法还可以进一步包括:将当前待分配的逻辑核对应的可执行文件缓存至预设消息队列。
在一些实施例中,每个众核芯片均预先设置有消息队列,用于缓存控制器发送的新的逻辑核对应的可执行文件,消息队列可以采用双缓存,或者可以根据众核芯片的运行速度设置多个(如三个)缓存。通过消息队列对新接收到的逻辑核对应的可执行文件进行缓存的方式,可以有效降低设备的负荷,在缓存的逻辑核的运行时间到达时或到达之前,将逻辑核对应的可执行文件加载至对应的物理核进行运行。
在一些实施例中,该逻辑核运行方法还可以进一步包括:响应于已编译的逻辑核对应的可执行文件运行完成,向逻辑核对应的目的地址发送运行结果;并且,向控制器发送运行完成信号。
其中,逻辑核对应的目的地址即为逻辑核对应的后继逻辑核所对应的物理核的地址,向逻辑核对应的目的地址发送运行结果,以确保后继逻辑核的正常运行;向控制器发送运行完成信号,以便控制器对已编译的逻辑核的运行状态进行管理和监测。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了一种控制器、众核芯片、电子设备、计算机可读存储介质,上述控制器用于实现本公开提供的逻辑核编译方法,上述众核芯片用于实现本公开提供的逻辑核运行方法,上述电子设备及计算机可读存储介质均可用来实现本公开提供的逻辑核编译方法和/或逻辑核运行方法,相应技术方案和描述和参见方法部分的相应记载,此处不再赘述。
图8为本公开实施例提供的一种控制器的组成框图,参照图8,本公开实施例提供了一种控制器300,该控制器300用于将待处理的计算图对应的多个逻辑核编译至对应的众核芯片上运行,每个逻辑核对应分配有计算图中的一个或多个计算任务,该控制器300包括:确定模块301和编译模块302。
其中,确定模块301,用于确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系;
编译模块302,用于基于即时编译方式,将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核,以使第一物理核执行逻辑核的计算任务。
在一些实施例中,确定模块301用于根据至少一个众核芯片的当前资源情况,确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核。其中,众核芯片的当前资源情况包括以下信息中的至少一种:所述众核芯片的算力、可用的物理核数量、各物理核的算力、各物理核的可用内存、众核芯片上的物理核之间的通信距离、众核芯片的负荷、各物理核的负荷、异常状态信息。
进一步地,确定模块301用于:根据至少一个众核芯片的当前资源情况,确定满足当前待分配的逻辑核的资源需求的备选众核芯片以及备选物理核;根据当前待分配的逻辑核与已编译的逻辑核之间的连接关系,确定与具有连接关系的已编译的逻辑核所对应的物理核之间的通信距离最近的备选众核芯片及备选物理核,以作为第一众核芯片及第一物理核。
在一些实施例中,控制器300还可以进一步包括:获取模块和标注模块(图中未示出),获取模块用于响应于接收到众核芯片的资源上报信号,获取众核芯片的当前资源情况;标注模块用于响应于在第一预设时间内未接收到所述众核芯片的资源上报信号,将众核芯片标注为不可用的众核芯片。
在一些实施例中,确定模块301还用于在任一已编译的逻辑核的运行阶段,响应于在第二预设时间内未接收到对应的众核芯片针对该已编译的逻辑核的运行完成信号,重新确定该已编译的逻辑核对应的第二众核芯片以及对应的第二物理核。编译模块302还用于基于即时编译方式,将该已编译的逻辑核重新编译至对应的第二众核芯片的第二物理核。
图9为本公开实施例提供的一种众核芯片的组成框图,参照图9,本公开实施例提供了一种众核芯片400,该众核芯片400包括:运行模块401和接收模块402。
其中,运行模块401,用于在已编译的逻辑核的运行阶段,运行已编译的逻辑核对应的可执行文件,以执行已编译的逻辑核中的计算任务。接收模块402,用于接收当前待分配的逻辑核对应的可执行文件,并将当前待分配的逻辑核对应的可执行文件部署至对应的物理核。
在一些实施例中,众核芯片400还包括缓存模块(图中未示出),缓存模块用于在接收模块402接收当前待分配的逻辑核对应的可执行文件之后,将当前待分配的逻辑核对应的可执行文件缓存至预设消息队列。
在一些实施例中,众核芯片400还包括发送模块(图中未示出),发送模块用于:响应于已编译的逻辑核对应的可执行文件运行完成,向逻辑核对应的目的地址发送运行结果;并且,向控制器发送运行完成信号。
在本公开实施例中,运行模块401包括已编译的逻辑核所对应的物理核。
图10为本公开实施例提供的一种电子设备的框图,参照图10,本公开实施例提供了一种电子设备,该电子设备包括:至少一个处理器501;至少一个存储器502,以及一个或多个I/O接口503,连接在处理器501与存储器502之间;其中,存储器502存储有可被至少一个处理器501执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器501执行,以使至少一个处理器501能够执行上述的逻辑核编译方法和/或逻辑核运行方法。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器执行时实现上述的逻辑核编译方法和/或逻辑核运行方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述的逻辑核编译方法和/或逻辑核运行方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、闪存或其他存储器技术、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (14)
1.一种逻辑核编译方法,其特征在于,待处理的计算图对应多个逻辑核,每个逻辑核对应分配有所述计算图中的一个或多个计算任务,所述方法包括:
确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系;
基于即时编译方式,将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核,以使所述第一物理核执行所述逻辑核的计算任务。
2.根据权利要求1所述的方法,其特征在于,所述确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系,包括:
根据至少一个众核芯片的当前资源情况,确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核。
3.根据权利要求2所述的方法,其特征在于,所述众核芯片的当前资源情况包括以下信息中的至少一种:所述众核芯片的算力、可用的物理核数量、各物理核的算力、各物理核的可用内存、所述众核芯片上物理核之间的通信距离、所述众核芯片的负荷、各物理核的负荷、异常状态信息。
4.根据权利要求2所述的方法,其特征在于,在所述确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系之前,所述方法还包括:
响应于接收到所述众核芯片的资源上报信号,获取所述众核芯片的当前资源情况;
响应于在第一预设时间内未接收到所述众核芯片的资源上报信号,将所述众核芯片标注为不可用的众核芯片。
5.根据权利要求2所述的方法,其特征在于,所述根据至少一个众核芯片的当前资源情况,确定当前待分配的逻辑核对应的第一众核芯片以及对应的第一物理核,包括:
根据至少一个众核芯片的当前资源情况,确定满足当前待分配的逻辑核的资源需求的备选众核芯片以及备选物理核;
根据当前待分配的逻辑核与已编译的逻辑核之间的连接关系,确定与具有所述连接关系的已编译的逻辑核所对应的物理核之间的通信距离最近的备选众核芯片及备选物理核,作为所述第一众核芯片及所述第一物理核。
6.根据权利要求1所述的方法,其特征在于,所述确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系,包括:
获取针对当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核的多个映射方案,所述映射方案是描述当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核与众核系统中可用的物理核之间的映射关系的方案,不同映射方案中至少存在一个逻辑核与物理核之间的映射关系不同;
根据当前待分配的逻辑核及执行顺序在当前待分配的逻辑核之后的逻辑核中具有连接关系的逻辑核之间的数据传输量,确定最优映射方案;
根据最优映射方案,确定当前待分配的逻辑核以及执行顺序在当前待分配的逻辑核之后的逻辑核中,每个逻辑核与众核系统中可用的物理核之间的映射关系,以确定每个逻辑核对应的第一众核芯片及第一物理核。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在任一已编译的逻辑核的运行阶段,响应于在第二预设时间内未接收到对应的众核芯片针对该已编译的逻辑核的运行完成信号,重新确定该已编译的逻辑核对应的第二众核芯片以及对应的第二物理核;并且,
基于即时编译方式,将该已编译的逻辑核重新编译至对应的第二众核芯片的第二物理核。
8.一种基于众核芯片的逻辑核运行方法,其特征在于,待处理的计算图对应多个逻辑核,每个逻辑核对应分配有所述计算图中的一个或多个计算任务,所述方法包括:
在已编译的逻辑核的运行阶段,运行所述已编译的逻辑核对应的可执行文件,以执行所述已编译的逻辑核中的计算任务;
接收当前待分配的逻辑核对应的可执行文件,并将当前待分配的逻辑核对应的可执行文件加载至对应的物理核。
9.根据权利要求8所述的方法,其特征在于,在所述接收当前待分配的逻辑核对应的可执行文件之后,所述方法还包括:
将所述当前待分配的逻辑核对应的可执行文件缓存至预设消息队列。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于所述已编译的逻辑核对应的可执行文件运行完成,向所述逻辑核对应的目的地址发送运行结果;并且,
向控制器发送运行完成信号。
11.一种控制器,其特征在于,所述控制器用于将计算图对应的多个逻辑核编译至对应的众核芯片上运行,每个逻辑核对应分配有所述计算图中的一个或多个计算任务,所述控制器包括:
确定模块,用于确定当前待分配的逻辑核与第一众核芯片的第一物理核的映射关系;
编译模块,用于基于即时编译方式,将当前待分配的逻辑核编译至对应的第一众核芯片的第一物理核,以使所述第一物理核执行所述逻辑核的计算任务。
12.一种众核芯片,其特征在于,所述众核芯片包括:
运行模块,用于在已编译的逻辑核的运行阶段,运行所述已编译的逻辑核对应的可执行文件,以执行所述已编译的逻辑核中的计算任务;
接收模块,用于接收当前待分配的逻辑核对应的可执行文件,并将当前待分配的逻辑核对应的可执行文件加载至对应的物理核。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7中任一项所述的逻辑核编译方法,和/或,执行如权利要求8-10中任一项所述的逻辑核运行方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-7中任一项所述的逻辑核编译方法,和/或,实现如权利要求8-10中任一项所述的逻辑核运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210350809.1A CN116931942A (zh) | 2022-04-02 | 2022-04-02 | 逻辑核编译方法及运行方法、控制器、众核芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210350809.1A CN116931942A (zh) | 2022-04-02 | 2022-04-02 | 逻辑核编译方法及运行方法、控制器、众核芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116931942A true CN116931942A (zh) | 2023-10-24 |
Family
ID=88374277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210350809.1A Pending CN116931942A (zh) | 2022-04-02 | 2022-04-02 | 逻辑核编译方法及运行方法、控制器、众核芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116931942A (zh) |
-
2022
- 2022-04-02 CN CN202210350809.1A patent/CN116931942A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163610B2 (en) | Method, device, and computer program product for assigning tasks to dedicated processing resources | |
EP3754495B1 (en) | Data processing method and related products | |
KR102008242B1 (ko) | 클라우드-에지 토폴로지 | |
US20220092439A1 (en) | Decoupled architecture for artificial intelligence model management | |
US9684493B2 (en) | R-language integration with a declarative machine learning language | |
CN111831287A (zh) | 用于确定执行代码段所需的资源的方法、设备和程序产品 | |
CN114841322A (zh) | 神经网络计算图的处理方法及处理装置 | |
CN114970814A (zh) | 神经网络计算图的处理方法及处理装置 | |
US11687369B2 (en) | Flexible optimized data handling in systems with multiple memories | |
CN114841323A (zh) | 神经网络计算图的处理方法及处理装置 | |
Schirmer et al. | Fusionize: Improving serverless application performance through feedback-driven function fusion | |
US11163594B2 (en) | Rescheduling JIT compilation based on jobs of parallel distributed computing framework | |
CN113064676A (zh) | 基于js入口的前端运行时远程组件共享机制的方法 | |
CN110958138B (zh) | 一种容器扩容方法及装置 | |
CN118034924A (zh) | 基于众核系统的数据处理方法、装置、电子设备和介质 | |
CN103488517A (zh) | Php代码编译方法、php代码运行方法及装置 | |
CN112633502B (zh) | 一种深度学习模型的跨平台执行方法、装置及电子设备 | |
CN114546493A (zh) | 核共享方法及装置、处理核、电子设备、介质 | |
CN116304704A (zh) | 一种模型训练方法、装置、存储介质及电子设备 | |
CN116931942A (zh) | 逻辑核编译方法及运行方法、控制器、众核芯片 | |
CN110018831A (zh) | 程序处理方法、装置及相关产品 | |
CN113141407B (zh) | 一种页面资源加载方法、装置和电子设备 | |
US11573777B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
US10417055B2 (en) | Runtime movement of microprocess components | |
US9841975B2 (en) | Method and apparatus for performing register allocation |
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 |