CN111158901B - 计算图的优化方法、装置、计算机设备和存储介质 - Google Patents

计算图的优化方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111158901B
CN111158901B CN201911249112.XA CN201911249112A CN111158901B CN 111158901 B CN111158901 B CN 111158901B CN 201911249112 A CN201911249112 A CN 201911249112A CN 111158901 B CN111158901 B CN 111158901B
Authority
CN
China
Prior art keywords
node
calculation
computing
current
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911249112.XA
Other languages
English (en)
Other versions
CN111158901A (zh
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.)
Aixin Yuanzhi Semiconductor Co ltd
Original Assignee
Aixin Yuanzhi Semiconductor Ningbo 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 Aixin Yuanzhi Semiconductor Ningbo Co ltd filed Critical Aixin Yuanzhi Semiconductor Ningbo Co ltd
Priority to CN201911249112.XA priority Critical patent/CN111158901B/zh
Publication of CN111158901A publication Critical patent/CN111158901A/zh
Priority to PCT/CN2020/113290 priority patent/WO2021114757A1/zh
Application granted granted Critical
Publication of CN111158901B publication Critical patent/CN111158901B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及一种计算图的优化方法、装置、计算机设备和存储介质。该方法通过获取计算网络模型的计算图,再在计算图中插入至少一个检查节点,并当运行至每一个检查节点时,通过当前的检查节点获取当前性能裕量,然后根据当前性能裕量,确定优化策略,以及根据该优化策略对当前的检查节点之后的计算节点所需消耗资源进行优化。上述优化方法通过插入检查节点获取计算机设备在运行到各检查节点时的当前性能裕量,再根据当前性能裕量,选择符合计算机设备实际运行情况的优化策略对计算节点所需消耗资源进行优化,使计算机设备运行至上述计算节点的过程中,可以动态调整各计算节点计算时的资源使用情况,以提高计算机设备上的资源利用率。

Description

计算图的优化方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种计算图的优化方法、装置、计算机设备和存储介质。
背景技术
随着计算机网络技术的发展,以及大数据时代的来临,应用于各种技术领域的计算网络模型越来越复杂,但是复杂度高的计算网络模型,例如,神经网络模型,对计算机设备的硬件指标提出了挑战,因此,如何优化计算网络模型成为了目前研究人员比较关注的问题。
现有的计算网络模型的优化过程为,采用统一优化方法对计算网络模型进行优化,即,根据用户提出的硬件指标要求,针对计算网络模型和结合应用环境,设计与该计算网络模型和应用环境对应的优化模型,使该优化模型在后期被编译运行时消耗的计算机设备资源能够满足用户提出的性能指标要求。
但是,上述优化方法只能适用于同一种计算网络模型和应用环境,当变更计算网络模型和应用环境时,需要重新设计对应的优化方法,因此,上述优化方法的适配性极低,进而导致计算网络模型的运行效率极低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效提高适配性和执行效率的计算图的优化方法、装置、计算机设备和存储介质。
第一方面,一种计算图的优化方法,所述方法包括:
获取计算网络模型的计算图;计算图中包括多个计算节点;
在计算图中插入至少一个检查节点;
当运行至每一个检查节点时,通过当前的检查节点获取当前性能裕量;
根据当前延时性能裕量,确定优化策略;
根据优化策略对当前的检查节点之后的计算节点进行优化。
在其中一个实施例中,当前性能裕量包括当前延时性能裕量,根据当前性能裕量,确定优化策略,包括:
若当前延时性能裕量充足,则将存储优化策略确定为优化策略;存储优化策略用于减少计算节点在计算时占用的内存;
若当前延时性能裕量不充足,则将延时优化策略确定为优化策略;延时优化策略用于减少计算节点在计算时的计算消耗时长。
在其中一个实施例中,当前性能裕量包括当前存储性能裕量,根据当前延时性能裕量,确定优化策略,包括:
若当前存储性能裕量充足,则将延时优化策略确定为优化策略;延时优化策略用于减少计算节点在计算时的消耗时长;
若当前存储性能裕量不充足,则将存储优化策略确定为优化策略;存储优化策略用于减少计算节点在计算时占用的内存。
在其中一个实施例中,所述存储优化策略包括:
将检查节点之后的计算节点在计算时产生的数据存储至高访问延迟的存储空间;高访问延迟的存储空间至少包括全局内存和片外存储器;
和/或,延时优化策略包括:将检查节点之后的计算节点在计算时产生的数据存储至低访问延迟的存储空间;低访问延迟的存储空间至少包括缓存空间和片内存储。
在其中一个实施例中,延时优化策略还包括:
获取检查节点之后的计算节点在计算时产生的数据的大小;
将计算节点在计算时产生的数据的大小与预设存储内存的大小进行比较;
若计算节点在计算时产生的数据的大小超出预设存储内存大小,则拆分检查节点之后的计算节点,并将拆分后的计算节点在计算时产生的数据存储至低访问延迟的存储空间;
若计算节点在计算时产生的数据的大小未超出预设存储内存大小,则将检查节点之后的计算节点在计算时产生的数据存储至低访问延迟的存储空间。
在其中一个实施例中,通过当前的检查节点获取当前性能裕量,包括:
获取当前的检查节点之前的所有计算节点的第一总目标计算消耗时长和总实际计算消耗时长;
根据第一总目标计算消耗时长和总实际计算消耗时长,确定当前延时性能裕量。
在其中一个实施例中,获取当前的检查节点之前的所有计算节点的第一总目标计算消耗时长,包括:
获取当前的检查节点所在路径上的所有计算节点的第二总目标计算消耗时长;
根据第二总目标计算消耗时长和预设比例,确定第一总目标计算消耗时长;预设比例为当前的检查节点之前的所有计算节点的总计算消耗时长在检查节点所在路径上的所有计算节点的总计算消耗时长中所占比例。
在其中一个实施例中,在计算图中插入至少一个检查节点,包括:
获取计算图中最长路径上各计算节点的计算消耗时长比例;
根据计算消耗时长比例,在最长路径上确定至少一个检查节点的插入位置;
在至少一个检查节点的插入位置处,插入至少一个所述检查节点。
在其中一个实施例中,获取计算图中最长路径上各计算节点的计算消耗时长比例,包括:
获取最长路径上各计算节点的计算量;
根据各计算节点的计算量获取最长路径上各计算节点的计算消耗时长;
根据最长路径上各计算节点的计算消耗时长,确定最长路径上各计算节点的计算消耗时长比例。
在其中一个实施例中,获取计算图中最长路径上各计算节点的计算消耗时长比例,包括:
构建消耗时长预估模型;
采用消耗时长预估模型,获取最长路径上各计算节点的计算消耗时长;
根据最长路径上各计算节点的计算消耗时长,确定最长路径上各计算节点的计算消耗时长比例。
在其中一个实施例中,根据计算消耗时长比例,在最长路径上确定至少一个检查节点的插入位置,包括:
根据计算消耗时长比例,将最长路径均分成预设数量的多个子路径;
在多个子路径中选择至少一个子路径作为插入检查点的插入位置。
在其中一个实施例中,在计算图中插入至少一个检查节点,包括:
获取计算图中间隔至少一个计算节点的始端计算节点和末端计算节点;
在始端计算节点和末端计算节点的中间位置插入至少一个检查节点。
在其中一个实施例中,获取计算网络模型的计算图,包括:
加载计算网络模型的拓扑结构和参数;
对计算网络模型的拓扑结构和参数进行编译,得到计算网络模型的计算图。
第二方面,一种计算图的优化装置,所述装置包括:
第一获取模块,用于获取计算网络模型的计算图;计算图中包括多个计算节点;
插入模块,用于在计算图中插入至少一个检查节点;
第二获取模块,用于当运行至每一个检查节点时,通过当前的检查节点获取当前性能裕量;
确定模块,用于根据当前性能裕量,确定优化策略;
优化模块,用于根据优化策略对当前的检查节点之后的计算节点进行优化。
第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面任一实施例所述的计算图的优化方法。
第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一实施例所述的计算图的优化方法。
本申请提供的一种计算图的优化方法、装置、计算机设备和存储介质,通过获取包括多个计算节点的计算网络模型的计算图,再在计算图中插入至少一个检查节点,并当运行至每一个检查节点时,通过当前的检查节点获取当前性能裕量,然后根据当前性能裕量,确定优化策略,以及根据该优化策略对当前的检查节点之后的计算节点所需消耗资源进行优化。上述优化方法通过插入检查节点获取计算机设备在运行到各检查节点时的当前性能裕量,然后根据当前性能裕量,选择符合计算机设备实际运行情况的优化策略对检查节点之后的计算节点所需消耗资源进行优化,使计算机设备运行至上述计算节点的过程中,可以动态调整计算图中各计算节点计算时的资源使用情况,以满足用户针对该计算图提出的性能指标需求,以及提高计算机设备上的资源利用率。
附图说明
图1为一个实施例提供的一种计算机设备的内部结构示意图;
图2为一个实施例提供的一种计算图的优化方法的流程图;
图2A为一个实施例提供的一种计算图的优化方法的流程图;
图3为图2实施例中S103的一种实现方式的流程图;
图4为图3实施例中S201的一种实现方式的流程图;
图5为图2实施例中S102的一种实现方式的流程图;
图6为图5实施例中S401的一种实现方式的流程图;
图7为图5实施例中S401的另一种实现方式的流程图;
图8为图5实施例中S402的另一种实现方式的流程图;
图8A为一个实施例提供的一种计算图的结构示意图;
图8B为一个实施例提供的一种计算图的结构示意图;
图9为图2实施例中S102的另一种实现方式的流程图;
图9A为一个实施例提供的一种计算图的结构示意图;
图10为图2实施例中S101的一种实现方式的流程图;
图11为一个实施例提供的一种计算图的优化方法的流程图;
图12为一个实施例提供的一种计算图的优化装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请提供的计算图的优化方法,可以应用于如图1所示的计算机设备中,该计算机设备可以是服务器,也可以是终端,其内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种计算图的优化方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为一个实施例提供的一种计算图的优化方法的流程图,该方法的执行主体为图1中的计算机设备,该方法涉及的是计算机设备在运行计算网络模型的计算图时对该计算图进行优化的具体过程。如图2所示,该方法具体包括以下步骤:
S101、获取计算网络模型的计算图;计算图中包括多个计算节点。
其中,计算网络模型可以由计算机设备预先根据实际应用需求构建,其具体可以是具备各种功能应用的计算网络模型,例如,神经网络模型、机器学习网络模型、智能算法网络模型等。计算图是一种描述计算方法的“语言”,具体由多个计算节点组成,多个存在依赖关系的计算节点之间相互连接。计算节点可以包括执行某种计算功能的代码,用于使计算机设备运行至计算节点时,可以执行计算网络模型中对应的计算任务。
本实施例中,计算机设备可以通过编译器编译预设的计算网络模型,生成编译后的计算图。可选地,计算机设备也可以通过其它方法直接获取到经过编译会后的计算网络模型的计算图,对此本实施例不做限定。可选地,当编译器编译计算网络模型之前,计算机设备还可以预先根据实际应用需求构建该计算网络模型,然后再基于构建好的计算网络模型进行编译,以便之后运行时使用。可选地,计算机设备也可以直接获取预编译的计算网络模型,再基于获取到的计算网络模型进行编译,以便之后运行时使用,对此本实施例不做限定。
S102、在计算图中插入至少一个检查节点。
其中,检查节点可以包括执行某种计算或测试功能的代码,用于使计算机设备运行至检查节点时,可以执行相应的计算或测试任务,该检查节点可以由计算设备预先配置。本实施例中,当计算机设备获取到计算网络模型的计算图,以及需要在之后运行该计算图的过程中优化该计算图时,可以进一步的在该计算图中插入至少一个检查节点,以使计算图被运行至插入的检查节点时,计算机设备可以检测计算机设备在当前时刻的资源消耗情况,从而根据当前资源消耗情况,动态调整之后计算节点的资源利用方式,使计算图在被执行的过程中,消耗的资源情况始终能够满足用户提出的性能指标或达到最优,充分利用了计算机设备上的资源。
S103、当运行至每一个检查节点时,通过当前的检查节点获取当前性能裕量。
其中,当前性能裕量表示计算设备运行至当前的检查节点时实际消耗的计算设备资源与用户期望性能指标所示的计算设备资源之间的裕量,该当前性能裕量可以是表示延时性能指标的性能裕量,也可以是表示存储性能指标的性能裕量,或是表示计算机设备计算时所消耗的其它类型性能指标的性能裕量。具体的,上述表示延时性能指标的性能裕量指计算设备运行至当前的检查节点时实际消耗的计算消耗时长和用户期望的计算消耗时长之间的裕量;上述表示存储指标的性能裕量指计算设备运行至当前的检查节点时实际消耗的内存大小和用户期望消耗的内存大小之间的裕量。在实际应用中,若实际消耗的计算设备资源大于或等于用户期望性能指标所示的计算设备资源时,表示当前性能裕量不充足,若实际消耗的计算设备资源小于用户期望性能指标所示的计算设备资源时,表示当前性能裕量充足。本实施例中,当计算机设备运行至每一个当前的检查节点时,计算机设备可以通过执行该检查节点上的代码获取到计算设备的当前性能裕量,以便之后计算机设备根据该当前性能裕量,对检查点之后的计算节点进行不同方法的优化,从而使优化后的计算节点在被执行时可以充分利用计算设备的资源。
S104、根据当前性能裕量,确定优化策略。
其中,优化策略用于对检查节点之后的计算节点所需消耗的资源进行优化,使之后的计算节点在被执行时所消耗的资源能够满足用户需求或与计算设备的性能指标匹配。本实施例中,当计算机设备通过当前的检查节点获取当前性能裕量时,可以通过判断当前性能裕量是否充足,从而根据判断结果选择不同的优化策略,以动态优化计算图中检查节点之后的计算节点。例如,若表示延时性能指标的当前性能裕量充足,则可以采用减少内存的优化策略进行编译和运行,以降低计算机设备存储时的性能消耗,使计算机设备各方面的性能指标均能够满足用户需求,若表示延时性能指标的当前延时性能裕量不充足,则可以采用减少访问延时高的访存操作的优化策略进行编译和运行,以降低计算机设备计算时的延时性能消耗,使计算机设备各方面的性能指标均能够满足用户需求。相应的,若表示存储性能指标的当前性能裕量充足,则可以采用减少访问延时高的访存操作的优化策略进行编译和运行,以降低计算机设备计算时的延时性能消耗;若表示存储性能指标的当前性能裕量充足,以降低计算机设备存储时的性能消耗。
S105、根据优化策略对当前的检查节点之后的计算节点进行优化。
本实施例中,当计算机设备根据当前性能裕量确定优化策略后,即可根据该优化策略对当前的检查节点之后的计算节点上的参数或变量进行优化,例如,计算机设备可以改变计算节点上参数或变量的存储方式,从而改变该计算节点读取或写入数据时的时间长度,进而改变计算机设备运行至该计算节点时的计算时间,以改善计算设备的延时性能,完成对该计算节点的优化。又例如,计算机设备还可以拆分计算节点,使一个计算节点所消耗的资源分成多个计算节点所消耗的资源,以减轻计算设备运行至各计算节点时的资源消耗负担,完成对该计算节点的优化。
本实施例提供的计算图的优化方法,通过获取包括多个计算节点的计算网络模型的计算图,再在计算图中插入至少一个检查节点,并当运行至每一个检查节点时,通过当前的检查节点获取当前性能裕量,然后根据当前性能裕量,确定优化策略,以及根据该优化策略对当前的检查节点之后的计算节点所需消耗资源进行优化。上述优化方法通过插入检查节点获取计算机设备在运行到各检查节点时的当前性能裕量,然后根据当前性能裕量,选择符合计算机设备实际运行情况的优化策略对检查节点之后的计算节点所需消耗资源进行优化,使计算机设备运行至上述计算节点的过程中,可以动态调整计算图中各计算节点计算时的资源使用情况,以满足用户针对该计算图提出的性能指标需求,以及提高计算机设备上的资源利用率。
在一个实施例中,上述当前性能裕量包括表示延时性能指标的性能裕量,即当前延时性能裕量,在该应用场景下,本申请提供了上述S104的一种实现方式,该方法包括:若当前延时性能裕量充足,则将存储优化策略确定为优化策略;存储优化策略用于减少计算节点在计算时占用的内存。
本实施例涉及计算机设备获取到当前延时性能裕量充足的应用场景,说明计算机设备此时所需的计算消耗时长比较充裕,还能够满足后期计算节点的计算需求,在该种应用下,计算机设备可以不关注计算节点在计算时的计算消耗时长问题,可以重点关注计算节点在计算时占用的内存情况,以优化计算设备上的内存资源,避免计算机设备内存被占用过大,从而影响计算机设备的计算性能,进而影响计算图被执行的计算速度。
可选地,上述存储优化策略具体可以包括:将检查节点之后的计算节点在计算时产生的数据存储至高访问延迟的存储空间;高访问延迟的存储空间至少包括全局内存和片外存储器。
上述计算节点在计算时产生的数据可以包括计算中所需的中间结果和临时变量。当计算机设备根据存储优化策略对检查节点之后的计算节点进行优化时,具体可以将检查节点之后的计算节点在计算时产生的数据存储至高访问延迟的存储空间,例如,GPU的全局内存或TPU的片外存储等,以减少计算机设备内存的占用率,从而提高计算机设备的计算速度。
可选地,基于上述实施例,若当前延时性能裕量不充足,则将延时优化策略确定为优化策略;延时优化策略用于减少计算节点在计算时的计算消耗时长。
本实施例涉及计算机设备获取到当前延时性能裕量不充足的应用场景,说明计算机设备此时所需的计算消耗时长比较紧张,可能不能够满足后期计算节点的计算需求,在该种应用下,计算机设备需要重点关注计算节点在计算时的计算消耗时长问题,可以不关注计算节点在计算时占用的内存问题,以优化计算设备的延时性能,避免计算节点在计算时消耗的时长过长,从而影响计算图被执行的计算速度。
可选地,上述延时优化策略具体可以包括:将检查节点之后的计算节点在计算时产生的数据存储至低访问延迟的存储空间;低访问延迟的存储空间至少包括缓存空间和片内存储。
本实施例中,当计算机设备根据延时优化策略对检查节点之后的计算节点进行优化时,具体可以将检查节点之后的计算节点在计算时产生的数据存储至低访问延迟的存储空间,例如,计算机设备的内存或缓存等,以减少计算节点在计算时访问存储空间的时间,从而提高计算节点的计算速度,进而提高计算机设备的计算速度。
在一个实施例中,上述当前性能裕量包括表示存储性能指标的性能裕量,即当前存储性能裕量,在该应用场景下,本申请提供了上述S104的一种实现方式,该方法包括:若当前存储性能裕量充足,则将延时优化策略确定为优化策略;延时优化策略用于减少所述计算节点在计算时的消耗时长。
本实施例涉及计算机设备获取到当前存储性能裕量充足的应用场景,说明计算机设备此时所需的内存资源比较充裕,还能够满足后期计算节点的计算需求,在该种应用下,计算机设备需要重点关注计算节点在计算时的计算消耗时长问题,可以不关注计算节点在计算时占用的内存问题,以优化计算设备的延时性能,避免计算节点在计算时消耗的时长过长,从而影响计算图被执行的计算速度。
可选地,基于上述实施例,若当前存储性能裕量不充足,则将存储优化策略确定为优化策略;存储优化策略用于减少计算节点在计算时占用的内存。
本实施例涉及计算机设备获取到当前存储性能裕量不充足的应用场景,说明计算机设备此时所需的内存资源比较紧张,可能不能够满足后期计算节点的计算需求,在该种应用下,计算机设备需要重点关注计算节点在计算时时占用的内存问题,可以不关注计算节点在计算时消耗时长问题,以优化计算设备的存储性能,避免计算节点在计算时内存占用过多,从而影响计算图被执行的计算速度。
可选地,在实际应用中,基于上述的延时优化策略,如图2A所示,该延时优化策略还可以包括:
S1041、获取当前的检查节点之后的计算节点在计算时产生的数据的大小。
本实施例适用于计算机设备上的内存或缓存不能够满足计算节点计算所需的内存或缓存时的应用场景,在该种应用场景下,当计算机设备确定的优化策略为延时优化策略时,可以先获取当前的检查节点之后的计算节点在计算时产生的数据大小,以便之后根据该数据大小预估计算机设备上的内存或缓存是否满足计算要求。
S1042、将计算节点在计算时产生的数据的大小与预设存储空间的大小进行比较,若计算节点在计算时产生的数据的大小超出预设存储空间的大小,则执行步骤S1043,若计算节点在计算时产生的数据的大小未超出预设存储空间的大小,则执行步骤S1044。
本实施例中,当计算机设备获取到计算节点在计算时产生的数据的大小时,可以进一步的将计算节点在计算时产生的数据的大小与预设存储空间的大小进行比较,得到比较结果,然后根据该比较结果选择不同的延时优化策略对当前的检查节点之后的计算节点进行优化处理。上述预设存储空间可以为低访问延迟的存储空间,例如计算机设备的内存和/或缓存空间。上述比较结果包括:计算节点在计算时产生的数据的大小超出预设存储空间的大小,此时说明计算机设备上现有的存储空间不能满足计算节点计算所需,以及计算节点在计算时产生的数据的大小未超出预设存储空间的大小,此时说明计算机设备上现有的存储空间还比较宽裕,能够满足计算节点计算所需。
S1043、拆分当前的检查节点之后的计算节点,并将拆分后的计算节点在计算时产生的数据存储至低访问延迟的存储空间。
本实施例涉及上述比较结果为计算节点在计算时产生的数据的大小超出预设存储空间的大小的应用场景,在该种应用下,计算机设备可以拆分检查节点之后的计算节点,并将拆分后的计算节点在计算时产生的数据存储至低访问延迟的存储空间,即计算机设备上的内存和/或缓存中。因为上述计算节点已被拆分,因此,计算机设备上现有的存储空间即可满足拆分后的各计算节点计算时所需的预设存储空间的大小。
S1044、将当前的检查节点之后的计算节点在计算时产生的数据存储至低访问延迟的存储空间。
本实施例涉及上述比较结果为计算节点在计算时产生的数据的大小未超出预设存储空间的大小的应用场景,在该种应用下,计算机设备可以直接将检查节点之后的计算节点在计算时产生的数据存储至低访问延迟的存储空间。该步骤与前述描述延时优化策略时的步骤相同,详细内容请参见前述说明,在此不重复累赘说明。
图3为图2实施例中S103的一种实现方式的流程图,如图3所示,上述S103中的“通过当前的检查节点获取当前性能裕量”,包括:
S201、获取当前的检查节点之前的所有计算节点的第一总目标计算消耗时长和总实际计算消耗时长。
其中,第一总目标计算消耗时长表示当前的检查节点之前所有计算节点在计算时,用户期望的该所有计算节点累计的计算消耗时长。总实际消耗时长表示计算机设备运行至当前的检查节点时,该当前的检查节点之前的所有计算节点计算时累计的实际计算消耗的时长。当计算机设备需要获取当前性能裕量时,可以先获取当前的检查节点之前的所有计算节点的第一总目标计算消耗时长和总实际计算消耗时长,以便之后根据该第一总目标计算消耗时长和总实际计算消耗时长确定当前性能裕量。
S202、根据第一总目标计算消耗时长和总实际计算消耗时长,确定当前性能裕量。
当计算机设备获取到第一总目标计算消耗时长和总实际计算消耗时长,可以直接将该第一总目标计算消耗时长和总实际计算消耗时长进行差值运算,得到当前性能裕量;可选地,也可以将第一总目标计算消耗时长和总实际计算消耗时长分别加权后再进行差值运算,得到当前性能裕量。
可选地,如图4所示,上述S201中的“获取当前的检查节点之前的所有计算节点的第一总目标计算消耗时长”的一种方法具体可以包括:
S301、获取当前的检查节点所在路径上的所有计算节点的第二总目标计算消耗时长;
其中,第二总目标计算消耗时长表示当前的检查节点所在路径上的所有计算节点在计算时,用户期望的累计的计算消耗时长。当计算机设备需要获取当前的检查节点之前的所有计算节点的第一总目标计算消耗时长时,可以先获取当前的检查节点所在路径上的所有计算节点的第二总目标计算消耗时长,之后再根据该第二总目标计算消耗时长确定第一总目标计算消耗时长。
S302、根据第二总目标计算消耗时长和预设比例,确定第一总目标计算消耗时长;预设比例为当前的检查节点之前的所有计算节点的总计算消耗时长在所述检查节点所在路径上的所有计算节点的总计算消耗时长中所占比例。
其中,预设比例可以由计算机设备预先获取,具体的可以通过多种方法得到,例如,计算机设备可以预先计算计算图中各计算节点的计算量,再基于各计算节点的计算量估计各计算节点的计算消耗时长,最后通过当前检查节点之前的计算节点的总的计算消耗时长,以及所有计算节点的总的计算消耗时长,确定预设比例。再例如,计算机设备还可以采用现有的消耗时长估计模型,预估各计算节点的计算消耗时长,再相应的通过当前检查节点之前的计算节点的总的计算消耗时长,以及所有计算节点的总的计算消耗时长,确定预设比例。可选的,预设比例还可以采用其它方法确定,对此本实施例不做限定。
本实施例中,当计算机设备获取到当前的检查节点所在路径上所有计算节点的预设计算消耗时长,即第二总目标计算消耗时长,以及预设比例时,可以将第二总目标计算消耗时长和预设比例进行乘法运算,得到第一总目标计算消耗时长。例如,第二总目标计算消耗时长为10小时,预设比例为1/2,则对应的第一总目标计算消耗时长为5小时。可选地,计算机设备也可以将第二总目标计算消耗时长和预设比例进行加权后,再进行乘法运算,得到第一总目标计算消耗时长。
图5为图2实施例中S102的一种实现方式的流程图,如图5所示,上述S102中的“在计算图中插入至少一个检查节点”,包括:
S401、获取计算图中最长路径上计算节点的消耗时长比例。
本实施例中,计算机设备可以先根据计算图中各计算节点的布局方式确定其中的最长路径,再获取该最长路径上各计算节点的计算消耗时长,然后可以根据各计算节点的计算消耗时长进行比例运算,得到该最长路径上计算节点的计算消耗时长比例。
S402、根据计算消耗时长比例,在最长路径上确定至少一个检查节点的插入位置。
本实施例中,为了平衡最长路径上各计算节点的计算消耗时长,计算机设备在插入检查节点时,可以根据计算消耗时长比例,在最长路径上确定至少一个检查节点的插入位置,使该位置上插入的检查节点之前的所有计算节点和之后的所有计算节点的总的计算消耗时长相等。当然,也可以使该位置上插入的检查节点之前的所有计算节点和之后的所有计算节点的总的计算消耗时长不完全相等,使检查节点之前的所有计算节点和之后的所有计算节点的总的计算消耗时长之差在预设时长范围内即可。
S403、在至少一个检查节点的插入位置处,插入至少一个检查节点。
当计算机设备在最长路径上确定了至少一个检查节点的插入位置时,即可在至少一个检查节点的插入位置处,插入至少一个检查节点,以便之后通过该检查节点优化之后的计算节点。
可选地,基于上述实施例,本申请提供了计算机设备获取计算消耗时长比例的一种具体方式,如图6所示,上述S401“获取计算图中最长路径上计算节点的计算消耗时长比例”的一种方法具体可以包括:
S501、获取最长路径上各计算节点的计算量。
当计算机设备通过编译计算网络模型,得到对应的计算图时,即可根据各计算节点包含的计算步骤等信息获取到该计算图中各计算节点的计算量。因此,本实施例中,计算机设备可以先确定计算图中的最长路径,再确定该最长路径上包含的各计算节点,然后即可根据最长路径上各计算节点包含的计算步骤等信息,得到最长路径上各计算节点的计算量。
S502、根据各计算节点的计算量获取最长路径上各计算节点的计算消耗时长。
当计算机设备获取到最长路径上各计算节点的计算量时,可以进一步的根据各计算节点的计算量的大小,预估各计算节点的计算消耗时长,从而得到最长路径上各计算节点的计算消耗时长。上述各计算节点的计算量越大,预估的各计算节点的计算消耗时长越长,各计算节点的计算量越小,预估的各计算节点的计算消耗时长越小。
S503、根据最长路径上各计算节点的计算消耗时长,确定最长路径上各计算节点的计算消耗时长比例。
当计算机设备获取到最长路径上各计算节点的计算消耗时长时,即可对各计算节点的计算消耗时长进行比例运算,得到最长路径上各计算节点的计算消耗时长比例。
可选地,本申请提供了计算机设备获取计算消耗时长比例的另一种具体方式,如图7所示,上述S401“获取计算图中最长路径上各计算节点的计算消耗时长比例”的另一种方法具体可以包括:
S601、构建消耗时长预估模型。
当计算机设备需要获取最长路径上各计算节点的计算消耗时长比例时,可以先构建消耗时长预估模型,用于分析各计算节点包含的计算步骤等信息预估各计算节点的计算量。需要说明的是,上述消耗时长预估模型可以为预先训练好的预估模型,属于现有技术,对此不具体累赘说明。
S602、采用消耗时长预估模型,获取最长路径上各计算节点的计算消耗时长。
当计算机设备构建完成消耗时长预估模型时,即可采用该消耗时长预估模型通过分析最长路径上各计算节点的计算步骤等信息,预估出最长路径上各计算节点的计算消耗时长。
S603、根据最长路径上各计算节点的计算消耗时长,确定最长路径上各计算节点的计算消耗时长比例。
本实施例S603的步骤与上述S503的步骤内容相同,详细内容请参见前述说明,在此不重复累赘说明。
在一个实施例中,还提供了上述S402步骤的具体实现方式,如图8所示,上述S402“根据计算消耗时长比例,在最长路径上确定至少一个检查节点的插入位置”,包括:
S701、根据计算消耗时长比例,将最长路径均分成预设数量的多个子路径。
其中,预设数量表示在最长路径上预插入检查节点的数量,该预设数量可以由计算机设备预先根据最长路径的长短或实际应用需求确定。本实施例中,当计算机设备确定了插入检查节点的预设数量时,可以进一步的通过分析该最长路径上计算节点的计算消耗时长比例,将该最长路径均分成预设数量的多个子路径,使各子路径上的计算节点的计算消耗时长均衡。
S702、在多个子路径中选择至少一个子路径作为插入检查点的插入位置。
当计算机设备将最长路径均分成预设数量的多个子路径,即可在多个子路径中选择至少一个子路径作为插入检查点的插入位置,其中选择的子路径之前的所有计算节点和之后的所有计算节点的总的计算消耗时长尽可能的相等,以平衡最长路径上各计算节点的计算消耗时长。
示例性说明上述图8实施例所述的确定检查节点的插入位置的方法,如图8A所示的计算图(未插入检查节点时的计算图),该计算图中的最长路径上计算节点1、计算节点2、和计算节点3,已知计算节点1、计算节点2、和计算节点3的计算消耗时长比例是1:5:6,则通过分析该计算消耗时长比例,将该最长路径均匀划分为2份,使计算节点1和计算节点2的计算消耗时长总长(6小时),与计算节点3的计算消耗时长(6小时)相等,则可以具体在计算节点2和计算节点3之间插入检查节点a(如图8B所示)。
图9为图2实施例中S102的另一种实现方式的流程图,如图9所示,上述S102中的“在计算图中插入至少一个检查节点”,包括:
S801、获取计算图中间隔至少一个计算节点的始端计算节点和末端计算节点。
当计算图中存在跨计算节点的路径时,可以获取该路径上的始端计算节点和末端计算节点,以便之后在始端计算节点和末端计算节点之间插入检查节点。需要说明的是,跨计算节点的数量可以是一个,也可以是多个,对此本实施例不做限定。
S802、在始端计算节点和末端计算节点的中间位置插入至少一个检查节点。
当计算机设备确定了始端计算节点和末端计算节点时,即可在始端计算节点和末端计算节点的中间位置插入至少一个检查节点。示例性说明上述图9实施例所述的在计算图中插入至少一个检查节点的方法,如图8A所示的计算图(未插入检查节点时的计算图),该计算图中的最长路径上计算节点1、计算节点2、和计算节点3,其中计算节点1和计算节点3之间跨计算节点2,则计算节点1为始端计算节点,计算节点3为末端计算节点,则对应在计算节点1和计算节点3的中间位置插入一个检查节点b(如图9A所示)。
图10为图2实施例中S101的一种实现方式的流程图,如图10所示,上述S101中的“获取计算网络模型的计算图”,包括:
S901、加载计算网络模型的拓扑结构和参数。
在实际应用中,当计算机设备的编译器可以通过加载计算网络模型的拓扑结构和参数进行编译的方法获取到计算网络模型的计算图。
S902、对计算网络模型的拓扑结构和参数进行编译,得到计算网络模型的计算图。
当计算机设备的编译器载入计算网络模型的拓扑结构和参数时,可以进行编译,得到该计算网络模型的计算图,以便之后运行该计算图的过程中优化该计算图的计算消耗资源。
综上,本申请还提供了一种计算图的优化方法,如图11所示,该方法包括:
S1001、加载计算网络模型的拓扑结构和参数。
S1002、对计算网络模型的拓扑结构和参数进行编译,获取到计算网络模型的计算图。
S1003、获取计算图中最长路径上各计算节点的计算消耗时长比例。
S1004、根据计算消耗时长比例,在最长路径上确定至少一个检查节点的插入位置。
S1005、在至少一个检查节点的插入位置处,插入至少一个所述检查节点。
S1006、获取计算图中间隔至少一个计算节点的始端计算节点和末端计算节点。
S1007、在始端计算节点和末端计算节点的中间位置插入至少一个检查节点。
S1008、当运行至每一个检查节点时,通过当前的检查节点获取当前延时性能裕量。
S1009、判断当前延时性能裕量是否充足,若当前延时性能裕量充足,则执行步骤S1010;若当前延时性能裕量不充足,则执行步骤S1011。
S1010、选择存储优化策略对当前的检查节点之后的计算节点进行优化;存储优化策略包括:将当前的检查节点之后的计算节点在计算时产生的数据存储至高访问延迟的存储空间。
S1011、获取当前的检查节点之后的计算节点在计算时产生的数据的大小,并将计算节点在计算时产生的数据的大小与预设存储空间的大小进行比较,若计算节点在计算时产生的数据的大小超出预设存储空间的大小,则执行步骤S1012,若计算节点在计算时产生的数据的大小未超出存储内存大小,则执行步骤S1013。
S1012、拆分当前的检查节点之后的计算节点,并将拆分后的计算节点在计算时产生的数据存储至低访问延迟的存储空间。
S1013、将当前的检查节点之后的计算节点在计算时产生的数据存储至低访问延迟的存储空间。
综上所有实施例,示例性说明其优化方法的步骤,例如,以如图8B所示的计算图为例进行说明,假设图8B中最长路径上计算节点1、计算节点2、和计算节点3的总的预设计算消耗时长为T,内存占用为M,计算机设备通过计算量或预估时长计算模型预估出的计算节点1、计算节点2、和计算节点3的计算消耗时长比例为1:5:6,设定预设时长阈值为th,则当计算机设备运行至检查节点a时,检查节点a之前的计算节点1和计算节点2实际计算消耗时长为Tr,则当前延时性能裕量为T*6/12-Tr,若T*6/12-Tr>th,则对应采用存储优化策略对检查节点之后的计算节点进行优化,具体的将计算节点3中计算所需的中间结果或临时变量存入高访问延迟存储空间(片外GPU存储空间或TPU存储空间);若T*6/12-Tr≤th,则对应采用延时优化策略对检查节点之后的计算节点进行优化,具体将计算节点3中计算所需的中间结果或临时变量存入低访问延迟存储空间(内存或缓存),在存入之前,可以先判断计算节点3计算所需内存空间或缓存空间的大小是否大于现有内存空间或缓存空间M,若大于,则对应采用其它延时优化策略,比如,拆分计算节点3,并将拆分后的计算节点中计算所需的中间结果或临时变量存入低访问延迟存储空间(内存或缓存)。
应该理解的是,虽然图2-11的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-11中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行。
在一个实施例中,如图12所示,提供了一种计算图的优化装置,包括:第一获取模块11、插入模模块12、第二获取模块13、确定模块14和优化模块15,其中:
第一获取模块11,用于获取计算网络模型的计算图;计算图中包括多个计算节点;
插入模块12,用于在计算图中插入至少一个检查节点;
第二获取模块13,用于当运行至每一个检查节点时,通过当前的检查节点获取当前延时性能裕量;
确定模块14,用于根据当前延时性能裕量,确定优化策略;
优化模块15,用于根据优化策略对当前的检查节点之后的计算节点进行优化。
关于计算图的优化装置的具体限定可以参见上文中对于一种计算图的优化方法的限定,在此不再赘述。上述计算图的优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取计算网络模型的计算图;计算图中包括多个计算节点;
在计算图中插入至少一个检查节点;
当运行至每一个检查节点时,通过当前的检查节点获取当前延时性能裕量;
根据当前延时性能裕量,确定优化策略;
根据优化策略对当前的检查节点之后的计算节点进行优化。
上述实施例提供的一种计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时还实现以下步骤:
获取计算网络模型的计算图;计算图中包括多个计算节点;
在计算图中插入至少一个检查节点;
当运行至每一个检查节点时,通过当前的检查节点获取当前延时性能裕量;
根据当前延时性能裕量,确定优化策略;
根据优化策略对当前的检查节点之后的计算节点进行优化。
上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (16)

1.一种计算图的优化方法,其特征在于,所述方法包括:
获取计算网络模型的计算图;所述计算图由多个相互连接的计算节点组成;各所述计算节点用于使计算机设备运行至对应计算节点时执行所述计算网络模型中对应的计算任务;
在所述计算图中插入至少一个检查节点;
当运行至每一个所述检查节点时,通过当前的检查节点获取当前性能裕量;所述当前性能裕量表示计算设备运行至所述当前的检查节点时实际消耗的计算设备资源与用户期望性能指标所示的计算设备资源之间的裕量;所述当前性能裕量包括当前延时性能裕量和当前存储性能裕量;
根据所述当前性能裕量,确定优化策略;
根据所述优化策略对所述当前的检查节点之后的计算节点进行优化。
2.根据权利要求1所述的方法,其特征在于,所述当前性能裕量包括当前延时性能裕量,所述根据所述当前性能裕量,确定优化策略,包括:
若所述当前延时性能裕量充足,则将存储优化策略确定为所述优化策略;所述存储优化策略用于减少所述计算节点在计算时占用的内存;
若所述当前延时性能裕量不充足,则将延时优化策略确定为所述优化策略;所述延时优化策略用于减少所述计算节点在计算时的消耗时长。
3.根据权利要求1所述的方法,其特征在于,所述当前性能裕量包括当前存储性能裕量,所述根据所述当前性能裕量,确定优化策略,包括:
若所述当前存储性能裕量充足,则将延时优化策略确定为所述优化策略;所述延时优化策略用于减少所述计算节点在计算时的消耗时长;
若所述当前存储性能裕量不充足,则将存储优化策略确定为所述优化策略;所述存储优化策略用于减少所述计算节点在计算时占用的内存。
4.根据权利要求2或3所述的方法,其特征在于,所述存储优化策略包括:
将所述检查节点之后的计算节点在计算时产生的数据存储至高访问延迟的存储空间;所述高访问延迟的存储空间至少包括全局内存和片外存储器;
和/或,所述延时优化策略包括:将所述检查节点之后的计算节点在计算时产生的数据存储至低访问延迟的存储空间;所述低访问延迟的存储空间至少包括缓存空间和片内存储。
5.根据权利要求4所述的方法,其特征在于,所述延时优化策略还包括:
获取所述当前的检查节点之后的计算节点在计算时产生的数据的大小;
将所述计算节点在计算时产生的数据的大小与预设存储空间的大小进行比较;
若所述计算节点在计算时产生的数据的大小超出所述预设存储空间的大小,则拆分所述当前的检查节点之后的计算节点,并将拆分后的计算节点在计算时产生的数据存储至所述低访问延迟的存储空间;
若所述计算节点在计算时产生的数据的大小未超出所述预设存储空间的大小,则将所述当前的检查节点之后的计算节点在计算时产生的数据存储至低访问延迟的存储空间。
6.根据权利要求2所述的方法,其特征在于,所述通过当前的检查节点获取当前性能裕量,包括:
获取所述当前的检查节点之前的所有计算节点的第一总目标计算消耗时长和总实际计算消耗时长;
根据所述第一总目标计算消耗时长和所述总实际计算消耗时长,确定所述当前性能裕量。
7.根据权利要求6所述的方法,其特征在于,所述获取所述当前的检查节点之前的所有计算节点的第一总目标计算消耗时长,包括:
获取所述当前的检查节点所在路径上的所有计算节点的第二总目标计算消耗时长;
根据所述第二总目标计算消耗时长和预设比例,确定所述第一总目标计算消耗时长;所述预设比例为所述当前的检查节点之前的所有计算节点的总计算消耗时长在所述检查节点所在路径上的所有计算节点的总计算消耗时长中所占比例。
8.根据权利要求1所述的方法,其特征在于,所述在所述计算图中插入至少一个检查节点,包括:
获取所述计算图中最长路径上计算节点的计算消耗时长比例;
根据所述计算消耗时长比例,在所述最长路径上确定至少一个所述检查节点的插入位置;
在所述至少一个所述检查节点的插入位置处,插入至少一个所述检查节点。
9.根据权利要求8所述的方法,其特征在于,所述获取所述计算图中最长路径上计算节点的计算消耗时长比例,包括:
获取所述最长路径上各计算节点的计算量;
根据各所述计算节点的计算量获取所述最长路径上各计算节点的计算消耗时长;
根据所述最长路径上各计算节点的计算消耗时长,确定所述最长路径上各计算节点的计算消耗时长比例。
10.根据权利要求8所述的方法,其特征在于,所述获取所述计算图中最长路径上各计算节点的计算消耗时长比例,包括:
构建消耗时长预估模型;
采用所述消耗时长预估模型,获取所述最长路径上各所述计算节点的计算消耗时长;
根据所述最长路径上各所述计算节点的计算消耗时长,确定所述最长路径上各所述计算节点的计算消耗时长比例。
11.根据权利要求9或10所述的方法,其特征在于,所述根据所述消耗时长比例,在所述最长路径上确定至少一个所述检查节点的插入位置,包括:
根据所述计算消耗时长比例,将所述最长路径均分成预设数量的多个子路径;
在所述多个子路径中选择至少一个子路径作为插入所述检查节点的插入位置。
12.根据权利要求1或8所述的方法,其特征在于,所述在所述计算图中插入至少一个检查节点,包括:
获取所述计算图中间隔至少一个计算节点的始端计算节点和末端计算节点;
在所述始端计算节点和末端计算节点的中间位置插入至少一个所述检查节点。
13.根据权利要求1所述的方法,其特征在于,所述获取计算网络模型的计算图,包括:
加载所述计算网络模型的拓扑结构和参数;
对所述计算网络模型的拓扑结构和参数进行编译,得到所述计算网络模型的计算图。
14.一种计算图的优化装置,其特征在于,所述装置包括:
第一获取模块,用于获取计算网络模型的计算图;所述计算图由多个相互连接的计算节点组成;各所述计算节点用于使计算机设备运行至对应计算节点时执行所述计算网络模型中对应的计算任务;
插入模块,用于在所述计算图中插入至少一个检查节点;
第二获取模块,用于当运行至每一个所述检查节点时,通过当前的检查节点获取当前性能裕量;所述当前性能裕量表示计算设备运行至所述当前的检查节点时实际消耗的计算设备资源与用户期望性能指标所示的计算设备资源之间的裕量;所述当前性能裕量包括当前延时性能裕量和当前存储性能裕量;
确定模块,用于根据所述当前性能裕量,确定优化策略;
优化模块,用于根据所述优化策略对所述当前的检查节点之后的计算节点进行优化。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
CN201911249112.XA 2019-12-09 2019-12-09 计算图的优化方法、装置、计算机设备和存储介质 Active CN111158901B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911249112.XA CN111158901B (zh) 2019-12-09 2019-12-09 计算图的优化方法、装置、计算机设备和存储介质
PCT/CN2020/113290 WO2021114757A1 (zh) 2019-12-09 2020-09-03 计算图的优化方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911249112.XA CN111158901B (zh) 2019-12-09 2019-12-09 计算图的优化方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111158901A CN111158901A (zh) 2020-05-15
CN111158901B true CN111158901B (zh) 2023-09-08

Family

ID=70555798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911249112.XA Active CN111158901B (zh) 2019-12-09 2019-12-09 计算图的优化方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN111158901B (zh)
WO (1) WO2021114757A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158901B (zh) * 2019-12-09 2023-09-08 爱芯元智半导体(宁波)有限公司 计算图的优化方法、装置、计算机设备和存储介质
CN114003306B (zh) * 2021-10-27 2024-03-15 上海商汤科技开发有限公司 一种显存优化方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504970B1 (en) * 2011-07-05 2013-08-06 Altera Corporation Method and apparatus for performing automated timing closure analysis for systems implemented on target devices
WO2019042294A1 (zh) * 2017-08-31 2019-03-07 Oppo广东移动通信有限公司 资源配置方法及相关产品
CN110515739A (zh) * 2019-10-23 2019-11-29 上海燧原智能科技有限公司 深度学习神经网络模型负载计算方法、装置、设备及介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339252B (zh) * 2015-07-08 2020-06-23 阿里巴巴集团控股有限公司 分布式dag系统的自适应优化方法和装置
EP4202782A1 (en) * 2015-11-09 2023-06-28 Google LLC Training neural networks represented as computational graphs
US10346206B2 (en) * 2016-08-27 2019-07-09 International Business Machines Corporation System, method and computer program product for resource management in a distributed computation system
US10592280B2 (en) * 2016-11-23 2020-03-17 Amazon Technologies, Inc. Resource allocation and scheduling for batch jobs
CN107045455B (zh) * 2017-06-19 2019-06-11 华中科技大学 一种基于负载预测的Docker Swarm集群资源调度优化方法
CN109189572B (zh) * 2018-08-02 2021-06-04 中兴飞流信息科技有限公司 一种资源预估方法及系统、电子设备和存储介质
US10965536B2 (en) * 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
CN110362611B (zh) * 2019-07-12 2021-07-09 拉卡拉支付股份有限公司 一种数据库查询方法、装置、电子设备及存储介质
CN111158901B (zh) * 2019-12-09 2023-09-08 爱芯元智半导体(宁波)有限公司 计算图的优化方法、装置、计算机设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504970B1 (en) * 2011-07-05 2013-08-06 Altera Corporation Method and apparatus for performing automated timing closure analysis for systems implemented on target devices
WO2019042294A1 (zh) * 2017-08-31 2019-03-07 Oppo广东移动通信有限公司 资源配置方法及相关产品
CN110515739A (zh) * 2019-10-23 2019-11-29 上海燧原智能科技有限公司 深度学习神经网络模型负载计算方法、装置、设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谭海中 等.结合Backfilling和空闲资源调度的云工作流调度方法.《西南大学学报(自然科学版)》.2018,前言到第3节. *

Also Published As

Publication number Publication date
CN111158901A (zh) 2020-05-15
WO2021114757A1 (zh) 2021-06-17

Similar Documents

Publication Publication Date Title
US9239740B2 (en) Program partitioning across client and cloud
Nunes et al. Parallelization of sequential Gaussian, indicator and direct simulation algorithms
US20210049231A1 (en) Multiple Output Fusion For Operations Performed In A Multi-Dimensional Array of Processing Units
CN112101562A (zh) 机器学习建模过程的实现方法和系统
CN111126668B (zh) 基于图卷积网络的Spark作业时间预测方法和装置
Li et al. Sculptor: Flexible approximation with selective dynamic loop perforation
CN111158901B (zh) 计算图的优化方法、装置、计算机设备和存储介质
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
Malyshkin et al. Optimization methods of parallel execution of numerical programs in the LuNA fragmented programming system
Kwon et al. Precise execution offloading for applications with dynamic behavior in mobile cloud computing
Horovitz et al. Faastest-machine learning based cost and performance faas optimization
CN109189572A (zh) 一种资源预估方法及系统、电子设备和存储介质
Van Tendeloo et al. Activity in pythonpdevs
US20200302304A1 (en) Methods of operating a graphics processing unit (gpu) to train a deep neural network using a gpu local memory and related articles of manufacture
CN113504918A (zh) 设备树配置优化方法、装置、计算机设备和存储介质
Huang et al. Cümülön: Matrix-based data analytics in the cloud with spot instances
Lattuada et al. Performance prediction of deep learning applications training in GPU as a service systems
Cordingly et al. Function memory optimization for heterogeneous serverless platforms with cpu time accounting
JP2016115213A (ja) 情報処理装置、データ処理方法、およびデータ処理プログラム
CN113158435B (zh) 基于集成学习的复杂系统仿真运行时间预测方法与设备
Scheerer et al. Design-time validation of runtime reconfiguration strategies: An environmental-driven approach
Mele et al. A PETSc parallel‐in‐time solver based on MGRIT algorithm
Riahi et al. Comparison of analytical and ML-based models for predicting CPU–GPU data transfer time
CN114021733B (zh) 模型训练优化方法、装置、计算机设备及存储介质
CN116662014A (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: 20230808

Address after: Room 59, 17th Floor, Science and Technology Innovation Building, No. 777 Zhongguan West Road, Zhuangshi Street, Zhenhai District, Ningbo City, Zhejiang Province, 315200

Applicant after: Aixin Yuanzhi Semiconductor (Ningbo) Co.,Ltd.

Address before: 316-318, block a, Rongke Information Center, No.2, South Road, Academy of Sciences, Haidian District, Beijing, 100190

Applicant before: MEGVII (BEIJING) TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: Room 59, 17th Floor, Science and Technology Innovation Building, No. 777 Zhongguan West Road, Zhuangshi Street, Ningbo City, Zhejiang Province, 315200

Patentee after: Aixin Yuanzhi Semiconductor Co.,Ltd.

Country or region after: China

Address before: Room 59, 17th Floor, Science and Technology Innovation Building, No. 777 Zhongguan West Road, Zhuangshi Street, Zhenhai District, Ningbo City, Zhejiang Province, 315200

Patentee before: Aixin Yuanzhi Semiconductor (Ningbo) Co.,Ltd.

Country or region before: China