CN111860816A - 神经网络模型的编译方法、装置、设备及存储介质 - Google Patents

神经网络模型的编译方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111860816A
CN111860816A CN202010652085.7A CN202010652085A CN111860816A CN 111860816 A CN111860816 A CN 111860816A CN 202010652085 A CN202010652085 A CN 202010652085A CN 111860816 A CN111860816 A CN 111860816A
Authority
CN
China
Prior art keywords
compiling
neural network
target
network model
hardware
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
CN202010652085.7A
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010652085.7A priority Critical patent/CN111860816A/zh
Publication of CN111860816A publication Critical patent/CN111860816A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本申请实施例公开了一种神经网络模型的编译方法、装置、设备及存储介质,属于人工智能技术领域。该方法包括:获取神经网络模型的图表示和中间表示,图表示用于表征神经网络模型的网络结构,中间表示是采用中间语言的代码;根据图表示的特征,将图表示拆分为至少两个子图;通过至少两个编译服务实例,对至少两个子图对应的子图中间表示进行并行编译,得到至少两段目标子程序,目标子程序为硬件的可识别代码;对至少两段目标子程序进行组合,得到神经网络模型的目标程序。该方法能够缩短神经网络模型的编译时长,提高编译效率,并且将编译工作分担给不同的编译服务实例,缓解了编译器所在设备负担过重的情况。

Description

神经网络模型的编译方法、装置、设备及存储介质
技术领域
本申请实施例涉及人工智能技术领域,特别涉及一种神经网络模型的编译 方法、装置、设备及存储介质。
背景技术
神经网络是由处理单元广泛地互相连接形成的复杂网络系统,通过调整内 部节点之间相互连接的关系,从而达到处理信息的目的。
在神经网络的模型推理过程中,为了提高计算机硬件的运算效率,提高神 经网络模型的运行速度,通常采用提前编译(Ahead of Time,AOT)的方式对 神经网络模型进行编译,预先离线生成目标程序。
然而,若采用相关技术中的AOT编译器对神经网络模型进行编译,串行分 析、优化并生成机器指令,则神经网络模型复杂度越高,其需要的编译时长越 多,导致神经网络模型的推理部署效率降低。
发明内容
本申请实施例提供了一种神经网络模型的编译方法、装置、设备及存储介 质。所述技术方案如下:
一方面,本申请实施例提供了一种神经网络模型的编译方法,所述方法包 括:
获取神经网络模型的图表示和中间表示,所述图表示用于表征所述神经网 络模型的网络结构,所述中间表示是采用中间语言的代码;
根据所述图表示的特征,将所述图表示拆分为至少两个子图;
通过至少两个编译服务实例,对至少两个所述子图对应的子图中间表示进 行并行编译,得到至少两段目标子程序,所述目标子程序为硬件的可识别代码;
对至少两段所述目标子程序进行组合,得到所述神经网络模型的目标程序。
另一方面,本申请实施例提供了一种神经网络模型的编译装置,所述装置 包括:
获取模块,用于获取神经网络模型的图表示和中间表示,所述图表示用于 表征所述神经网络模型的网络结构,所述中间表示是采用中间语言的代码;
拆分模块,用于根据所述图表示的特征,将所述图表示拆分为至少两个子 图;
编译模块,用于通过至少两个编译服务实例,对至少两个所述子图对应的 子图中间表示进行并行编译,得到至少两段目标子程序,所述目标子程序为硬 件的可识别代码;
组合模块,用于对至少两段所述目标子程序进行组合,得到所述神经网络 模型的目标程序。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括: 处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集 或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所 述处理器加载并执行以实现如上述方面所述的神经网络模型的编译方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中 存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、 所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方 面所述的神经网络模型的编译方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计 算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读 存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令, 处理器执行该计算机指令,使得该计算机设备执行上述方面或上述方面的各种 可选实现方式中提供的神经网络模型的编译方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例中,在神经网络模型的编译阶段,首先根据图表示的特征将 神经网络模型的网络结构拆分,能够使编译的时长不会因为神经网络模型的复 杂度上升而有较大程度的延长;将拆分得到的子图对应的子图中间表示分别通 过不同的编译服务实例并行编译,相较于将神经网络模型作为整体串行编译的 编译方式,缩短了神经网络模型的编译时长,提高了编译效率,并且将编译工 作分担给不同的编译服务实例,缓解了编译器所在设备负担过重的情况。
附图说明
图1是相关技术提供的对神经网络模型进行编译的流程图;
图2是根据本申请一示例性实施例提供的神经网络模型的编译方法的流程 图;
图3是根据本申请另一示例性实施例提供的神经网络模型的编译方法的流 程图;
图4是根据本申请另一示例性实施例提供的根据数据量特征拆分图表示的 示意图;
图5是根据本申请另一示例性实施例提供的神经网络模型的编译方法的流 程图;
图6是根据本申请一示例性实施例提供的神经网络模型的编译装置的结构 框图;
图7是根据本申请一示例性实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请 实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关 联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A, 同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一 种“或”的关系。
首先,对本申请实施例中涉及的名词进行介绍:
图表示:图表示(Graph)是神经网络模型的编译器中,用于表征神经网络 模型的网络结构的数据。在一种可能的实施方式中,该图表示可以为神经网络 模型对应源代码的抽象语法树。
中间表示:中间表示(Intermediate Representation,IR)是神经网络模型的 编译器中,采用中间语言的代码。编译器的前段将神经网络模型的源代码转换 为中间表示,向上能支持多种语言的映射,向下能适应多平台的转换,且易于 进行优化。
计算节点:计算节点(Operation,OP)为神经网络模型的图表示的节点, 相当于神经网络中的神经元。
目标程序:又称为“目的程序”,是源程序经编译后,可直接被计算机设备运 行的机器指令的集合。神经网络模型的编译器对神经网络模型的源程序进行处 理(解析、优化、编译)得到的计算机设备能够直接运行的程序,为神经网络 模型的目标程序。
相关技术中,编译器对神经网络模型整体进行串行分析、优化并生成完整 的机器指令,如图1所示,相关技术的编译过程包括:步骤101,解析神经网络 模型,得到图表示和中间表示;步骤102,对图表示进行图级别优化;步骤103, 对图级别优化后的中间表示进行指令级优化;步骤104,编译生成硬件指令。随 着神经网络模型的发展,计算节点的个数增多、计算节点间的关联关系也越来 越复杂,因此编译所需的时长逐渐增加,神经网络模型的部署和运行难度加大, 效率降低。
为了提高神经网络模型的编译效率,本申请实施例提供的神经网络模型的 编译方法中,依据神经网络模型的图表示的特征,将图表示拆分为至少两个子 图,分别通过不同的编译服务实例进行并行编译,再将编译得到的至少两段目 标子程序组合,得到神经网络模型的目标程序。相较于相关技术中提供的神经 网络模型的编译方法,本申请实施例的方法采用并行技术,能够使编译的时长 不会因为神经网络模型的复杂度上升而有较大程度的延长,提高了编译效率, 并且将编译工作分担给不同的编译服务实例,缓解了编译器所在设备负担过重 的情况。
请参考图2,其示出了本申请一个示例性实施例提供的神经网络模型的编译 方法的流程图。本实施例以该方法用于配置有神经网络模型编译服务实例的计 算机设备或计算机系统为例进行说明,该方法包括如下步骤:
步骤201,获取神经网络模型的图表示和中间表示,图表示用于表征神经网 络模型的网络结构,中间表示是采用中间语言的代码。
其中,图表示用于表征神经网络模型的网络结构。为了方便编译器对神经 网络模型的结构进行优化,例如删除常见的子表达式和内核融合等,以及方便 形成独立于平台的计算模型,完成在不同硬件设备中的分布式部署,编译器解 析神经网络模型得到其图表示。中间表示是指编译器对神经网络模型的源程序 进行扫描解析后生成的内部表示,中间表示通常与语言无关,不同的上层语言 都可以转化为同一种中间表示,方便编译器对神经网络模型做静态分析以及优 化。
在一种可能的实施方式中,用于编译神经网络模型的计算机设备中安装有 编译主控程序,计算机设备通过该编译主控程序对神经网络模型进行解析,得 到神经网络模型在编译器内部统一的表示,即图表示和中间表示。
步骤202,根据图表示的特征,将图表示拆分为至少两个子图。
在一种可能的实施方式中,为了实现分布式并行编译神经网络模型,提高 编译效率,计算机设备通过编译主控程序,根据图表示的特征对图表示进行拆 分。在不破坏神经网络模型结构的基础上,编译主控程序尽可能多地拆分出子 图,从而减少后续编译的时长。
可选地,该编译主控程序除了解析神经网络模型获取图表示和中间表示, 拆分图表示之外,还用于部分子图的编译工作,以及并行编译完成后的目标子 程序组合工作。
步骤203,通过至少两个编译服务实例,对至少两个子图对应的子图中间表 示进行并行编译,得到至少两段目标子程序,目标子程序为硬件的可识别代码。
在一种可能的实施方式中,计算机设备通过编译主控程序将图表示拆分为 至少两个子图后,将各个子图对应的子图中间表示传输至不同的编译服务实例 进行编译。
可选地,计算机设备通过编译主控程序拆分图表示,在图表示全部拆分完 成,得到所有的子图后,同时将子图对应的子图中间表示传输至对应的编译服 务实例。
可选地,计算机设备通过编译主控程序拆分图表示,每得到一个子图立即 将该子图对应的子图中间表示传输至对应的编译服务实例。
示意性的,计算机设备根据不同子图的特性确定对应的编译服务实例。例 如,将后续在中央处理器(Central Processing Unit,CPU)中优化效率更高的子 图传输至CPU性能高的编译服务实例。
步骤204,对至少两段目标子程序进行组合,得到神经网络模型的目标程序。
在一种可能的实施方式中,由于后续运行神经网络模型时需要完整的目标 程序,因此计算机设备通过编译主控程序根据图表示的拆分方式,组合各个子 图的目标子程序。
可选地,编译主控程序直接将各个目标子程序的文件打包,或者将各个子 图中间表示的目标子程序组合,得到完整的目标程序对应的文件。
综上所述,本申请实施例中,在神经网络模型的编译阶段,首先根据图表 示的特征将神经网络模型的网络结构拆分,能够使编译的时长不会因为神经网 络模型的复杂度上升而有较大程度的延长;将拆分得到的子图对应的子图中间 表示分别通过不同的编译服务实例并行编译,相较于将神经网络模型作为整体 串行编译的编译方式,缩短了神经网络模型的编译时长,提高了编译效率,并 且将编译工作分担给不同的编译服务实例,缓解了编译器所在设备负担过重的 情况。
对神经网络模型的拆分需要依据一定的原则,保证拆分以及组合后目标程 序的完整性,不破坏神经网络原本的网络结构,同时需要尽可能地保证子图在 合适的编译服务实例中进行编译,从而最大程度上发挥分布式并行编译的优势, 提高编译效率。在一种可能的实施方式中,编译主控程序根据图表示的至少一 种特征进行拆分,得到子图。
请参考图3,其示出了本申请另一个示例性实施例提供的神经网络模型的编 译方法的流程图。本实施例以该方法用于配置有神经网络模型编译服务实例的 计算机设备或计算机系统为例进行说明,该方法包括如下步骤:
步骤301,获取神经网络模型的图表示和中间表示,图表示用于表征神经网 络模型的网络结构,中间表示是采用中间语言的代码。
步骤301的实施方式参考上述步骤201,本申请实施例在此不再赘述。
步骤302,获取图表示中计算节点的硬件支持特征、网络拓扑特征和数据量 特征中的至少一种。
其中,硬件支持特征用于表征计算节点在不同硬件上的运行效率,数据量 特征用于表征计算节点在计算过程中所占用硬件缓存的大小。
在一种可能的实施方式中,计算机设备中的编译主控程序需要根据图表示 的特征拆分图表示,图表示的特征包括计算节点的硬件支持特征、网络拓扑特 征和数据量特征中的至少一种。
步骤303,根据硬件支持特征、网络拓扑特征和数据量特征中的至少一种, 将图表示拆分为至少两个子图。
在一种可能的实施方式中,编译主控程序根据一种特征拆分图表示,或结 合多种不同的特征拆分图表示。
示意性的,编译主控程序根据图表示中计算节点的硬件支持特征拆分图表 示,将在嵌入式神经网络处理器(Neural-network Processing Unit,NPU)中运 行效率高的计算节点拆分为一个子图,将在CPU中运行效率高的计算节点拆分 为一个子图,将在图形处理器(Graphics Processing Unit,GPU)中运行效率高 的计算节点拆分为一个子图。
在一种可能的实施方式中,图表示的特征包括硬件支持特征,计算机设备 根据图表示中计算节点的硬件支持特征通过编译主控程序拆分图表示,上述步 骤303包括如下步骤:
步骤一,根据硬件支持特性确定计算节点对应的目标硬件类型,其中,计 算节点在目标硬件类型对应目标硬件上的运行效率高于在其他硬件上的运行效 率。
在一种可能的实施方式中,对于仅支持在一种硬件中运行的计算节点,编 译主控程序直接将该计算节点所支持的硬件类型确定为目标硬件类型;对于支 持在多种硬件中运行的计算节点,编译主控程序确定其运行效率最高的硬件, 并将该硬件的类型确定为目标硬件类型。
示意性的,计算节点A支持在CPU和GPU中运行,而计算节点A在GPU 中的运行效率高于在CPU中的运行效率,则编译主控程序确定计算节点A对应 的目标硬件类型为GPU。
步骤二,根据目标硬件类型将图表示拆分为至少两个子图,其中,同一子 图中的计算节点对应相同目标硬件类型。
在一种可能的实施方式中,编译主控程序将目标硬件类型相同的计算节点 拆分为一个子图或多个子图。可选地,编译主控程序根据目标硬件类型和编译 服务实例的数量,拆分图表示,例如目标硬件类型包含三种,而编译服务实例 包括五个,则编译主控程序将计算节点数量多的子图进行拆分。
在另一种可能的实施方式中,图表示的特征包括网络拓扑特征,计算机设 备根据图表示的网络拓扑特征通过编译主控程序拆分图表示,上述步骤303包 括如下步骤:
步骤三,根据网络拓扑特征确定计算节点中的条件判断节点。
在一种可能的实施方式中,由于条件判断节点下,不同的条件判断分支的 计算逻辑通常不同,因此条件判断节点是可选的拆分依据。
步骤四,将条件判断节点对应的不同条件判断分支划分为不同子图。
在一种可能的实施方式中,编译主控程序将不同条件判断分支划分为不同 子图,例如条件判断节点下包含条件判断分支A和B,则编译主控程序将条件 判断分支A包含的计算节点划分为子图a,将条件判断分支B包含的计算节点 划分为子图b。
可选地,编译主控程序根据条件判断分支的数量确定是否划分子图,对于 条件判断分支数量多于数量阈值的条件判断节点,编译主控程序将该条件判断 节点下的条件判断分支划分为至少两个子图,对于条件判断分支数量少于数量 阈值的条件判断节点,则没有划分的必要,编译主控程序将该条件判断节点对 应的条件判断分支划分至同一子图中。
和/或,
步骤五,根据网络拓扑特征将执行同一计算任务的计算节点划分至同一子 图。
在一种可能的实施方式中,并非每个条件判断节点都需要进行划分,由于 神经网络模型中存在多个计算节点共同执行同一计算任务的情况,若将这类计 算节点拆分至不同的子图,经过优化和编译后可能导致后续运行过程中出现错 误的结果,或者导致组合后的目标程序并非最优的目标程序,因此编译主控程 序需要保证将执行同一计算任务的计算节点划分至同一子图。
示意性的,条件判断节点下包含三个条件判断分支,条件判断分支A中包 含计算节点a、b和c,条件判断分支B中包含计算节点d和e,条件判断分支C 中包含计算节点f和g,而计算节点a、b、c和计算节点f、g共同执行同一计算 任务,则编译主控程序将条件判断分支A和条件判断分支C中的计算节点划分 至同一子图中。
在另一种可能的实施方式中,图表示的特征包括数据量特征,计算机设备 根据图表示的数据量特征通过编译主控程序拆分图表示,上述步骤303包括如 下步骤:
步骤六,获取第n计算节点的第n权重数据量和第n计算数据量,以及第 n+1计算节点的第n+1权重数据量,其中,权重数据量为计算节点中网络权重的 数据量,计算数据量为计算节点计算过程中产生数据的数据量,第n计算节点 与第n+1计算节点为连续计算节点,n为正整数。
编译过程中,当前计算节点进行计算时,当前计算节点的网络权重以及计 算数据需要加载到内存中,同时计算机设备预加载下一计算节点的网络权重, 因此需要保证计算机设备处理器的内存能够满足同时存储上述数据。
在一种可能的实施方式中,为了降低编译服务实例的负担,计算机设备根 据各个计算节点的数据量划分子图,从而防止部分编译服务实例被分配的子图 数据量过大,负担较重,而部分编译服务实例被分配的子图数据量较小,不能 充分发挥分布式并行编译的优势。
步骤七,响应于第n权重数据量、第n计算数据量和第n+1权重数据量的 数据总量小于数据量阈值,将第n计算节点和第n+1计算节点划分至同一子图。
在一种可能的实施方式中,编译主控程序根据各个编译服务实例的数据处 理能力确定对应的数据量阈值。
示意性的,如图4所示,计算节点1至计算节点n+1为在NPU中进行计算 的计算节点,计算过程中该类计算节点的权重需要保存在NPU的片上内存401 中,其中,计算节点1至计算节点n能够满足计算与权重加载的并行优化,而 计算节点n+1的权重数据量过大,无法在计算过程中并行加载至片上内存401, 即前n个计算节点的计算数据与计算节点n的权重和计算节点n+1的权重的数 据总量大于数据量阈值,因此,编译主控程序将计算节点1至计算节点n划分 至同一子图中,而计算节点N+1以及后续的计算节点被划分至其他子图中。
上述步骤中,三种图表示的拆分依据为并列关系,不分先后,计算机设备 根据其中一种或几种特征拆分图表示。为了更进一步拆分图表示,同时保证神 经网络模型的结构的完整性,在另一种可能的实施方式中,硬件支持特征的特 征优先级高于网络拓扑特征的特征优先级,硬件支持特征的特征优先级高于数 据量特征的特征优先级,上述步骤303包括如下步骤:
步骤八,响应于获取到至少两种图表示的特征,根据特征优先级将图表示 拆分为至少两个子图。
在一种可能的实施方式中,为了保证后续神经网络模型在不同硬件中部署 时的运行效率,计算机设备将硬件支持特征作为拆分图表示的首要依据。
可选地,计算机设备通过编译主控程序,先根据计算节点的硬件支持特征 拆分计算图,再在拆分得到的子图的基础上,根据其它特征进一步拆分,得到 更小的子图。
步骤304,通过本地编译服务实例对至少两个子图对应的子图中间表示进行 并行编译,得到至少两段目标子程序,本地编译服务实例运行在本地硬件。
可选地,编译服务实例部署在如下至少一种硬件:CPU、GPU和NPU。
在一种可能的实施方式中,编译主控程序所在的计算机设备中包含多个本 地编译服务实例,例如,包含多个CPU,且每个CPU中运行有编译服务实例, 则该计算机设备能够负责编译相应个数的运行于CPU的子图。
可选地,编译主控程序本身能够负责部分子图的编译工作。
在一种可能的实施方式中,本地编译服务实例接收到子图中间表示后,首 先对子图进行图优化,优化子图对应的神经网络模型的部分结构,例如,删除 实际运行过程中不参与计算的计算节点,以及对计算逻辑相同的计算节点进行 合并等。针对优化后的子图,进行计算节点的指令级优化,最终得到子图对应 的硬件指令,即目标子程序。
步骤305,向远程编译服务实例分发至少两个子图对应的子图中间表示。
在一种可能的实施方式中,编译主控程序所在的计算机设备关联有多个安 装有编译服务实例的其他设备,编译主控程序将子图的子图中间表示发送至对 应的远程编译服务实例。
可选地,与本地编译服务实例相同,远程编译服务实例同样对子图和对应 的子图中间表示进行图优化和指令级优化,得到目标子程序。
步骤306,接收远程编译服务实例发送的目标子程序,远程编译服务实例部 署在远程编译设备的硬件中。
在一种可能的实施方式中,计算机设备接收远程编译服务实例发送的目标 子程序,并将接收到的目标子程序与本地编译服务实例编译得到的目标子程序 进行集中存储,便于后续对目标子程序进行组合。
步骤307,获取各段目标子程序对应的输入指针和输出指针,输入指针指向 目标子程序的输入地址,输出指针指向目标子程序的输出地址。
其中,目标子程序的输入指针为子图的输入指针,目标子程序的输出指针 为子图的输出指针。
在一种可能的实施方式中,编译主控程序根据神经网络模型的拓扑结构组 合目标子程序,即利用相邻计算节点中,前一个计算节点的输出为后一个计算 节点的输入的拓扑关系进行组合。为了方便组合,编译主控程序在图表示的拆 分阶段,为拆分出的子图添加输入指针和输出指针,对于结构上相连的两个子 图,前一个子图的输出指针与后一个子图的输入指针指向相同的地址。
步骤308,根据输入指针和输出指针对至少两段目标子程序进行组合,得到 神经网络模型的目标程序。
在一种可能的实施方式中,编译主控程序根据已组合的最后一个目标子程 序的输出指针,查询剩余未组合的目标子程序,将输入指针与该输出指针指向 相同地址的目标子程序确认为下一段目标子程序进行组合。所有目标子程序组 合完成后,得到神经网络模型的目标程序。
示意性的,目标子程序1的输入指针指向内存地址A,输出指针指向内存 地址B;目标子程序2的输入指针指向内存地址B,输出指针指向内存地址C, 编译主控程序确定目标子程序1的输出为目标子程序2的输入,并对目标子程 序1和目标子程序2进行组合。
本申请实施例中,根据图表示的至少一种特征对神经网络模型进行拆分, 并将拆分得到的至少两个子图对应的子图中间表示分发至本地或远程编译服务 实例并行优化和编译,缩短了神经网络模型的编译时长,提高了编译效率;在 拆分阶段为各个子图添加输入指针和输出指针,根据各个目标子程序的指针, 对目标子程序进行组合,能够避免组合过程中目标子程序之间的关系混乱,保 证了组合目标子程序的正确率。根据计算节点的硬件支持特征拆分图表示,能 够使神经网络模型的各部分在合适的编译服务实例中进行编译,从而提高整体 的编译效率;根据网络拓扑特征拆分图表示,能够进一步拆分图表示且不破坏 神经网络模型的结构;根据数据量特征拆分图表示,能够平衡各个编译服务实 例的数据处理量,避免出现部分编译服务实例负担过重和部分编译服务实例利 用率低的问题。
结合上述实施例,在一个示意性的例子中,神经网络模型的编译流程如图5 所示。
步骤501,编译主控程序解析神经网络模型,得到图表示和中间表示。
步骤502,编译主控程序将图表示拆分为至少两个子图。
步骤503,编译主控程序将子图分发至对应的编译服务实例。
步骤504,编译服务实例对子图进行图优化。
步骤505,编译服务实例对子图优化后的中间表示进行指令级优化。
步骤506,编译服务实例编译生成目标子程序。
步骤507,编译主控程序组合各个目标子程序,得到目标程序。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请 装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图6,其示出了本申请一个实施例提供的神经网络模型的编译装置的 结构框图。该装置可以包括:获取模块601、拆分模块602、编译模块603和组 合模块604。
获取模块601,用于获取神经网络模型的图表示和中间表示,所述图表示用 于表征所述神经网络模型的网络结构,所述中间表示是采用中间语言的代码;
拆分模块602,用于根据所述图表示的特征,将所述图表示拆分为至少两个 子图;
编译模块603,用于通过至少两个编译服务实例,对至少两个所述子图对应 的子图中间表示进行并行编译,得到至少两段目标子程序,所述目标子程序为 硬件的可识别代码;
组合模块604,用于对至少两段所述目标子程序进行组合,得到所述神经网 络模型的目标程序。
可选的,所述拆分模块602,包括:
第一获取单元,用于获取所述图表示中计算节点的硬件支持特征、网络拓 扑特征和数据量特征中的至少一种,所述硬件支持特征用于表征所述计算节点 在不同硬件上的运行效率,所述数据量特征用于表征所述计算节点在计算过程 中所占用硬件缓存的大小;
拆分单元,用于根据所述硬件支持特征、网络拓扑特征和数据量特征中的 至少一种,将所述图表示拆分为至少两个所述子图。
可选的,所述图表示的特征包括所述硬件支持特征;
所述拆分单元,还用于:
根据所述硬件支持特性确定所述计算节点对应的目标硬件类型,其中,所 述计算节点在所述目标硬件类型对应目标硬件上的运行效率高于在其他硬件上 的运行效率;
根据所述目标硬件类型将所述图表示拆分为至少两个所述子图,其中,同 一子图中的计算节点对应相同目标硬件类型。
可选的,所述图表示的特征包括所述网络拓扑特征;
所述拆分单元,还用于:
根据所述网络拓扑特征确定所述计算节点中的条件判断节点;将所述条件 判断节点对应的不同条件判断分支划分为不同子图;
和/或,
根据所述网络拓扑特征将执行同一计算任务的计算节点划分至同一子图。
可选的,所述图表示的特征包括所述数据量特征;
所述拆分单元,还用于:
获取第n计算节点的第n权重数据量和第n计算数据量,以及第n+1计算 节点的第n+1权重数据量,其中,权重数据量为所述计算节点中网络权重的数 据量,计算数据量为所述计算节点计算过程中产生数据的数据量,所述第n计 算节点与所述第n+1计算节点为连续计算节点,n为正整数;
响应于所述第n权重数据量、所述第n计算数据量和所述第n+1权重数据 量的数据总量小于数据量阈值,将所述第n计算节点和所述第n+1计算节点划 分至同一子图。
可选的,所述硬件支持特征的特征优先级高于所述网络拓扑特征的特征优 先级,所述硬件支持特征的特征优先级高于所述数据量特征的特征优先级;
所述拆分单元,还用于:
响应于获取到至少两种所述图表示的特征,根据所述特征优先级将所述图 表示拆分为至少两个所述子图。
可选的,所述编译模块603,包括:
编译单元,用于通过本地编译服务实例对至少两个所述子图对应的子图中 间表示进行并行编译,得到至少两段所述目标子程序,所述本地编译服务实例 运行在本地硬件;
或,
发送接收单元,用于向远程编译服务实例分发至少两个所述子图对应的子 图中间表示;接收所述远程编译服务实例发送的所述目标子程序,所述远程编 译服务实例部署在远程编译设备的硬件中。
可选的,所述组合模块604,包括:
第二获取单元,用于获取各段所述目标子程序对应的输入指针和输出指针, 所述输入指针指向所述目标子程序的输入地址,所述输出指针指向所述目标子 程序的输出地址;
组合单元,用于根据所述输入指针和所述输出指针对至少两段所述目标子 程序进行组合,得到所述神经网络模型的所述目标程序。
综上所述,本申请实施例中,在神经网络模型的编译阶段,首先根据图表 示的特征将神经网络模型的网络结构拆分,能够使编译的时长不会因为神经网 络模型的复杂度上升而有较大程度的延长;将拆分得到的子图对应的子图中间 表示分别通过不同的编译服务实例并行编译,相较于将神经网络模型作为整体 串行编译的编译方式,缩短了神经网络模型的编译时长,提高了编译效率,并 且将编译工作分担给不同的编译服务实例,缓解了编译器所在设备负担过重的 情况。
本申请实施例中,根据图表示的至少一种特征对神经网络模型进行拆分, 并将拆分得到的至少两个子图分发至本地或远程编译服务实例并行优化和编译, 缩短了神经网络模型的编译时长,提高了编译效率;在拆分阶段为各个子图添 加输入指针和输出指针,根据图表示的拓扑结构和各个目标子程序的指针,对 目标子程序进行组合,能够避免组合过程中目标子程序之间的关系混乱,保证 了组合目标子程序的正确率。
需要说明的是:上述实施例提供的神经网络模型的编译装置,仅以上述各 功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配 由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成 以上描述的全部或者部分功能。另外,上述实施例提供的神经网络模型的编译 装置与神经网络模型的编译方法实施例属于同一构思,其具体实现过程详见方 法实施例,这里不再赘述。
请参考图7,其示出了本申请一个示例性实施例提供的计算机设备的结构示 意图。具体来讲:所述计算机设备700包括中央处理单元701、包括随机存取存 储器(RandomAccess Memory,RAM)702和只读存储器(Read-Only Memory, ROM)703的系统存储器704,以及连接系统存储器704和中央处理单元701的 系统总线705。所述计算机设备700还包括帮助计算机内的各个器件之间传输信 息的基本输入/输出系统(Input/Output系统,I/O系统)706,和用于存储操作系 统713、应用程序714和其他程序模块715的大容量存储设备707。
所述基本输入/输出系统706包括有用于显示信息的显示器708和用于用户 输入信息的诸如鼠标、键盘之类的输入设备709。其中所述显示器708和输入设 备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元 701。所述基本输入/输出系统706还可以包括输入输出控制器710以用于接收和 处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输 出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备707通过连接到系统总线705的大容量存储控制器(未 示出)连接到中央处理单元701。所述大容量存储设备707及其相关联的计算机 可读介质为计算机设备700提供非易失性存储。也就是说,所述大容量存储设 备707可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory, CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。 计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或 其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移 动介质。计算机存储介质包括RAM、ROM、计算机存储器(Erasable Programmable Read Only Memor,EPROM)、读写存储器(Electrically Erasable Programmable Read Only Memory,EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字 通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘 存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不 局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存 储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中 央处理单元701执行,一个或多个程序包含用于实现上述神经网络模型的编译 方法的指令,中央处理单元701执行该一个或多个程序实现上述各个方法实施 例提供的方法。
根据本申请的各种实施例,所述计算机设备700还可以通过诸如因特网等 网络连接到网络上的远程计算机运行。也即计算机设备700可以通过连接在所 述系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网 络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序 存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供 的方法中由计算机设备所执行的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质 存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上 各个实施例所述的神经网络模型的编译方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计 算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读 存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令, 处理器执行该计算机指令,使得该计算机设备执行上述方面或上述方面的各种 可选实现方式中提供的神经网络模型的编译方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施 例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软 件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读 存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算 机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送 计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可 用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的 保护范围之内。

Claims (12)

1.一种神经网络模型的编译方法,其特征在于,所述方法包括:
获取神经网络模型的图表示和中间表示,所述图表示用于表征所述神经网络模型的网络结构,所述中间表示是采用中间语言的代码;
根据所述图表示的特征,将所述图表示拆分为至少两个子图;
通过至少两个编译服务实例,对至少两个所述子图对应的子图中间表示进行并行编译,得到至少两段目标子程序,所述目标子程序为硬件的可识别代码;
对至少两段所述目标子程序进行组合,得到所述神经网络模型的目标程序。
2.根据权利要求1所述的方法,其特征在于,所述根据所述图表示的特征,将所述图表示拆分为至少两个子图,包括:
获取所述图表示中计算节点的硬件支持特征、网络拓扑特征和数据量特征中的至少一种,所述硬件支持特征用于表征所述计算节点在不同硬件上的运行效率,所述数据量特征用于表征所述计算节点在计算过程中所占用硬件缓存的大小;
根据所述硬件支持特征、网络拓扑特征和数据量特征中的至少一种,将所述图表示拆分为至少两个所述子图。
3.根据权利要求2所述的方法,其特征在于,所述图表示的特征包括所述硬件支持特征;
所述根据所述硬件支持特征、网络拓扑特征和数据量特征中的至少一种,将所述图表示拆分为至少两个所述子图,包括:
根据所述硬件支持特性确定所述计算节点对应的目标硬件类型,其中,所述计算节点在所述目标硬件类型对应目标硬件上的运行效率高于在其他硬件上的运行效率;
根据所述目标硬件类型将所述图表示拆分为至少两个所述子图,其中,同一子图中的计算节点对应相同目标硬件类型。
4.根据权利要求2所述的方法,其特征在于,所述图表示的特征包括所述网络拓扑特征;
所述根据所述硬件支持特征、网络拓扑特征和数据量特征中的至少一种,将所述图表示拆分为至少两个所述子图,包括:
根据所述网络拓扑特征确定所述计算节点中的条件判断节点;将所述条件判断节点对应的不同条件判断分支划分为不同子图;
和/或,
根据所述网络拓扑特征将执行同一计算任务的计算节点划分至同一子图。
5.根据权利要求2所述的方法,其特征在于,所述图表示的特征包括所述数据量特征;
所述根据所述硬件支持特征、网络拓扑特征和数据量特征中的至少一种,将所述图表示拆分为至少两个所述子图,包括:
获取第n计算节点的第n权重数据量和第n计算数据量,以及第n+1计算节点的第n+1权重数据量,其中,权重数据量为所述计算节点中网络权重的数据量,计算数据量为所述计算节点计算过程中产生数据的数据量,所述第n计算节点与所述第n+1计算节点为连续计算节点,n为正整数;
响应于所述第n权重数据量、所述第n计算数据量和所述第n+1权重数据量的数据总量小于数据量阈值,将所述第n计算节点和所述第n+1计算节点划分至同一子图。
6.根据权利要求2至5任一所述的方法,其特征在于,所述硬件支持特征的特征优先级高于所述网络拓扑特征的特征优先级,所述硬件支持特征的特征优先级高于所述数据量特征的特征优先级;
所述根据所述硬件支持特征、网络拓扑特征和数据量特征中的至少一种,将所述图表示拆分为至少两个所述子图,包括:
响应于获取到至少两种所述图表示的特征,根据所述特征优先级将所述图表示拆分为至少两个所述子图。
7.根据权利要求1至5任一所述的方法,其特征在于,所述通过至少两个编译服务实例,对至少两个所述子图对应的子图中间表示进行编译,得到至少两段目标子程序,包括:
通过本地编译服务实例对至少两个所述子图对应的子图中间表示进行并行编译,得到至少两段所述目标子程序,所述本地编译服务实例运行在本地硬件;
或,
向远程编译服务实例分发至少两个所述子图对应的子图中间表示;接收所述远程编译服务实例发送的所述目标子程序,所述远程编译服务实例部署在远程编译设备的硬件中。
8.根据权利要求1至5任一所述的方法,其特征在于,所述对至少两段所述目标子程序进行组合,得到所述神经网络模型的目标程序,包括:
获取各段所述目标子程序对应的输入指针和输出指针,所述输入指针指向所述目标子程序的输入地址,所述输出指针指向所述目标子程序的输出地址;
根据所述输入指针和所述输出指针对至少两段所述目标子程序进行组合,得到所述神经网络模型的所述目标程序。
9.根据权利要求1至5任一所述的方法,其特征在于,所述编译服务实例部署在如下至少一种硬件:中央处理器CPU、图形处理器GPU和神经网络处理器NPU。
10.一种神经网络模型的编译装置,其特征在于,所述装置包括:
获取模块,用于获取神经网络模型的图表示和中间表示,所述图表示用于表征所述神经网络模型的网络结构,所述中间表示是采用中间语言的代码;
拆分模块,用于根据所述图表示的特征,将所述图表示拆分为至少两个子图;
编译模块,用于通过至少两个编译服务实例,对至少两个所述子图对应的子图中间表示进行并行编译,得到至少两段目标子程序,所述目标子程序为硬件的可识别代码;
组合模块,用于对至少两段所述目标子程序进行组合,得到所述神经网络模型的目标程序。
11.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至9任一项所述的神经网络模型的编译方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至9任一项所述的神经网络模型的编译方法。
CN202010652085.7A 2020-07-08 2020-07-08 神经网络模型的编译方法、装置、设备及存储介质 Pending CN111860816A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010652085.7A CN111860816A (zh) 2020-07-08 2020-07-08 神经网络模型的编译方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010652085.7A CN111860816A (zh) 2020-07-08 2020-07-08 神经网络模型的编译方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN111860816A true CN111860816A (zh) 2020-10-30

Family

ID=73153171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010652085.7A Pending CN111860816A (zh) 2020-07-08 2020-07-08 神经网络模型的编译方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111860816A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112529175A (zh) * 2020-11-05 2021-03-19 上海交通大学 神经网络的编译方法、系统、计算机存储介质及编译设备
CN113190345A (zh) * 2021-03-26 2021-07-30 中国科学院软件研究所 一种面向软件定义卫星的神经网络模型部署的方法以及装置
CN113703775A (zh) * 2021-08-31 2021-11-26 上海阵量智能科技有限公司 一种编译方法、装置、设备及存储介质
CN114282641A (zh) * 2022-03-07 2022-04-05 麒麟软件有限公司 一种通用异构加速框架的构建方法
CN115495095A (zh) * 2022-11-18 2022-12-20 上海燧原科技有限公司 张量程序的整程序编译方法、装置、设备、介质及集群
GB2609302A (en) * 2021-06-29 2023-02-01 Nvidia Corp Techniques for combining operations
CN116126346A (zh) * 2023-04-04 2023-05-16 上海燧原科技有限公司 Ai模型的代码编译方法、装置、计算机设备及存储介质
US11789710B2 (en) 2021-09-17 2023-10-17 Samsung Electronics Co., Ltd. Compilation method and apparatus with neural network
WO2024046458A1 (zh) * 2022-09-02 2024-03-07 深圳忆海原识科技有限公司 层次化系统、运算方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190042917A1 (en) * 2018-06-21 2019-02-07 Intel Corporation Techniques for determining artificial neural network topologies
CN110717584A (zh) * 2019-09-30 2020-01-21 上海寒武纪信息科技有限公司 神经网络编译方法、编译器、计算机设备及可读存储介质
CN110766147A (zh) * 2018-07-25 2020-02-07 赛灵思公司 神经网络编译器架构及编译方法
US20200151579A1 (en) * 2018-11-08 2020-05-14 Samsung Electronics Co., Ltd. System for managing calculation processing graph of artificial neural network and method of managing calculation processing graph by using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190042917A1 (en) * 2018-06-21 2019-02-07 Intel Corporation Techniques for determining artificial neural network topologies
CN110766147A (zh) * 2018-07-25 2020-02-07 赛灵思公司 神经网络编译器架构及编译方法
US20200151579A1 (en) * 2018-11-08 2020-05-14 Samsung Electronics Co., Ltd. System for managing calculation processing graph of artificial neural network and method of managing calculation processing graph by using the same
CN111160539A (zh) * 2018-11-08 2020-05-15 三星电子株式会社 运行人工神经网络的计算处理图的系统及方法
CN110717584A (zh) * 2019-09-30 2020-01-21 上海寒武纪信息科技有限公司 神经网络编译方法、编译器、计算机设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王秉睿: "神经网络专用编程语言", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》, no. 2019, pages 1 - 49 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112529175A (zh) * 2020-11-05 2021-03-19 上海交通大学 神经网络的编译方法、系统、计算机存储介质及编译设备
CN113190345A (zh) * 2021-03-26 2021-07-30 中国科学院软件研究所 一种面向软件定义卫星的神经网络模型部署的方法以及装置
CN113190345B (zh) * 2021-03-26 2023-12-05 中国科学院软件研究所 一种面向软件定义卫星的神经网络模型部署的方法以及装置
GB2609302A (en) * 2021-06-29 2023-02-01 Nvidia Corp Techniques for combining operations
CN113703775A (zh) * 2021-08-31 2021-11-26 上海阵量智能科技有限公司 一种编译方法、装置、设备及存储介质
CN113703775B (zh) * 2021-08-31 2023-11-28 上海阵量智能科技有限公司 一种编译方法、装置、设备及存储介质
US11789710B2 (en) 2021-09-17 2023-10-17 Samsung Electronics Co., Ltd. Compilation method and apparatus with neural network
CN114282641A (zh) * 2022-03-07 2022-04-05 麒麟软件有限公司 一种通用异构加速框架的构建方法
WO2024046458A1 (zh) * 2022-09-02 2024-03-07 深圳忆海原识科技有限公司 层次化系统、运算方法、装置、电子设备及存储介质
CN115495095A (zh) * 2022-11-18 2022-12-20 上海燧原科技有限公司 张量程序的整程序编译方法、装置、设备、介质及集群
CN116126346A (zh) * 2023-04-04 2023-05-16 上海燧原科技有限公司 Ai模型的代码编译方法、装置、计算机设备及存储介质
CN116126346B (zh) * 2023-04-04 2023-06-16 上海燧原科技有限公司 Ai模型的代码编译方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN111860816A (zh) 神经网络模型的编译方法、装置、设备及存储介质
US8959138B2 (en) Distributed data scalable adaptive map-reduce framework
CN111104120B (zh) 神经网络编译方法、系统及相应异构计算平台
JP2014525640A (ja) 並列処理開発環境の拡張
US11366649B2 (en) Compilation method
US11385931B2 (en) Method, electronic device, and computer program product for processing computing job
US20170017475A1 (en) Information processing apparatus and compile method
US11379203B2 (en) Systems and methods for generating distributed software packages using non-distributed source code
CN115169810A (zh) 一种面向电网调控的人工智能系统构建方法及装置
CN109799991B (zh) 基于MapReduce框架分布式计算环境的源代码编译方法及系统
CN114820279B (zh) 基于多gpu的分布式深度学习方法、装置及电子设备
Cai et al. Tensoropt: Exploring the tradeoffs in distributed dnn training with auto-parallelism
CN115495095B (zh) 张量程序的整程序编译方法、装置、设备、介质及集群
CN110659069A (zh) 用于执行神经网络计算的指令调度方法及相应计算系统
CN116368494A (zh) 一种神经网络编译优化方法和相关装置
CN103559069B (zh) 一种基于代数系统的跨文件过程间优化方法
KR20230120850A (ko) 이종 컴퓨팅 플랫폼 지원 딥러닝 컴파일러 및 그 방법
CN112130848B (zh) 一种面向便笺式存储器的带宽感知循环分块优化方法、编译系统、设备及存储介质
Gupta et al. Map-based graph analysis on MapReduce
CN114385173A (zh) 编译方法、装置、设备及存储介质
US10467120B2 (en) Software optimization for multicore systems
US20230116546A1 (en) Method for compilation, electronic device and storage medium
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
CN114281339A (zh) 程序编译方法、编译器、设备及存储介质
RU2691860C1 (ru) Способ распараллеливания программ в среде логического программирования в вычислительной системе

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