CN113031966A - 一种智能选择编译加速库的深度学习编译优化方法 - Google Patents

一种智能选择编译加速库的深度学习编译优化方法 Download PDF

Info

Publication number
CN113031966A
CN113031966A CN202110551554.0A CN202110551554A CN113031966A CN 113031966 A CN113031966 A CN 113031966A CN 202110551554 A CN202110551554 A CN 202110551554A CN 113031966 A CN113031966 A CN 113031966A
Authority
CN
China
Prior art keywords
operator
compilation
acceleration library
deep learning
compiling
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.)
Granted
Application number
CN202110551554.0A
Other languages
English (en)
Other versions
CN113031966B (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202110551554.0A priority Critical patent/CN113031966B/zh
Publication of CN113031966A publication Critical patent/CN113031966A/zh
Application granted granted Critical
Publication of CN113031966B publication Critical patent/CN113031966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

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

Abstract

本发明公开了一种智能选择编译加速库的深度学习编译优化方法,目的是通过在深度学习编译器中加入编译加速库,结合深度学习编译器与编译加速库双方各自的优点,进一步提高深度神经网络的推理速度。该方法首先在深度学习编译器中加入各种算子针对编译加速库的翻译方法,将各种算子自动转换为编译加速库可以识别的形式。其次提出一种在深度学习编译器中调用编译加速库的方法,实现通过编译加速库执行各种算子。然后在深度学习编译器算子优化阶段将优化效果与编译加速库进行比较,进行最优方案选择。最后提出一种深度学习编译器中结合编译加速库的代码生成方法,产生优化后的可执行代码,实现对深度神经网络的进一步优化。

Description

一种智能选择编译加速库的深度学习编译优化方法
技术领域
本发明涉及深度学习、编译技术、高性能计算交叉技术应用领域,尤其是涉及一种智能选择编译加速库的深度学习编译优化方法。
背景技术
现如今,深度神经网络(DNN)已经在图像分类、自然语言处理、自动驾驶、增强现实和其他AI领域有着广泛的应用。特别是随着计算设备的快速发展,如GPU、FPGA和特殊设计的神经网络加速器的产生,DNN的计算能力越发强大,人工智能领域对高效DNN的需求也越发强烈,因此如何提高DNN的运行效率是近年来一个非常重要的研究问题。
现在,已经有很多深度学习框架,如TensorFlow、PyTorch、Caffe和MXNet等,可以将神经网络表示为计算图的形式,并针对计算图进行图级的优化,然后将DNN中的算子映射到编译加速库如TensorRT、CuDNN、MKL-DNN上来获得高效的DNN运算效果。然而图级别的优化一般是与硬件无关的,无法根据硬件特性获取更细粒度的优化效果。而且依赖的编译加速库一般是非开源的,这使得程序员无法进行有效地控制,也无法轻松地跨硬件设备对DNN进行移植。除此之外,对于编译加速库不支持的算子,就无法获得优化效果,或者是需要程序员花费大量工作进行手动调优。
在针对DNN加速的研究中,通过编译技术将多种不同框架下的神经网络映射到多种硬件平台,并在映射过程中对神经网络进行加速,产生优化后的目标平台代码的方法获得了显著的效果。与编译加速库相比,深度学习编译器可以更加简单地增加对新型算子的支持,并且对所有支持的算子和硬件平台都能获得良好的优化效果,具有更高的灵活性。现在一种比较高效的深度学习编译器一般包含以下执行流程:首先将多种深度学习框架下的神经网络通过高级中间语言表示为计算图,并对计算图进行图级别的优化。然后将优化后的计算图转换为低级中间语言表示,并对其进行算子级别的优化。最后根据目标硬件平台产生对应的优化后代码。
然而,现有的深度学习编译器在常用的通用算子上的优化效果往往略逊于编译加速库,其原因一般包含以下两个方面:首先,一些编译加速库是针对特定硬件进行的定制的加速,比如TensorRT就是Nvidia公司自己的团队针对Nvidia GPU硬件进行定制加速的,由于Nvidia GPU和TensorRT都是非开源的,因此外部研发团队很难做到超越内部研发团队的优化效果。其次,现有的深度学习编译器大多是由小团队的开发人员进行研究实现,难以比肩大规模开发团队的优化成果。但与此同时,正是由于编译加速库大多是对特定硬件上的常用算子进行高效优化,因此在罕见算子、新型算子以及新型硬件上的优化效果往往是深度学习编译器更胜一筹。综上所述,本发明提出的方法希望能够兼顾深度学习编译器和编译加速库各自的优势,通过在开源的深度学习编译器中增加对编译加速库的支持,进一步提高深度神经网络的推理速度。
发明内容
为解决现有技术的不足,实现在兼顾深度学习编译器的灵活性的同时,达到更优的推理速度的目的,本发明采用如下的技术方案:
一种智能选择编译加速库的深度学习编译优化方法,包括如下步骤:
S1,对深度神经网络中编译加速库支持的算子进行翻译,将各种算子自动转换为编译加速库可以识别的形式,包括如下步骤:
S11,将深度学习框架产生的模型作为输入,将其抽象为高级中间语言表示;
S12,对高级中间语言表示的神经网络,执行深度学习编译器原有的图优化算法;
S13,识别深度学习编译器和编译加速库都支持的所有算子类型,针对每种类型的算子,提供对应的翻译方法;
S14,遍历图优化后的计算图,识别其中所有编译加速库支持的算子,并调用其对应的翻译方法;
S2,调用编译加速库,对其支持的算子进行优化,包括如下步骤:
S21,在深度学习编译器中,对选择的编译加速库进行注册声明;
S22,构建适用于编译加速库的编译器后端;
S23,将翻译后的算子传递给编译加速库,计算该算子的运行引擎;
S24,执行生成的运行引擎,通过编译加速库对算子进行优化;
S3,对神经网络进行算子级别优化,并进行最优方案选择,包括如下步骤:
S31,执行深度学习编译器原有的算子优化方法,得到最优方案的推理时间;
S32,对于编译加速库支持的算子,调用S23生成的运行引擎,计算使用编译加速库优化的推理时间;
S33,将两个优化方案所需的推理时间进行对比,选择推理时间更短的方案作为该算子最终的优化方案;
S4,生成神经网络的可执行文件;
S41,对神经网络中的每个算子生成可执行代码;
S42,将每个算子的可执行代码按照网络结构进行链接,构成完整的深度神经网络可执行文件。
进一步地,所述S12中,首先基于转换后的高级中间语言构造计算图,计算图中每个节点表示神经网络中的一个算子,边表示算子间的数据依赖;然后基于计算图,对神经网络进行图级别的优化,优化后的计算图可以大大减少计算时内存读取的开销。
所述对神经网络进行图级别的优化,包括:算子融合优化、数据布局优化。
所述节点表示的算子包括Conv算子、Add算子,Conv算子依赖于输入数据data和权重数据w1,Add算子依赖于前置的Conv算子的计算结果和输入的参数数据bias。
进一步地,所述S13包括如下步骤:
S131,从算子的高级中间语言表示中,提取必要的属性信息;
S132,将必要的属性信息,根据编译加速库所定义的格式类型进行重构;
S133,将重构后的属性信息,翻译为编译加速库可识别的输入对象。
具体地,包括如下步骤:
(1)在深度学习编译器中,构造Conv算子对应的类;
(2)编译加速库所需的信息就是这个类中的属性;
(3)翻译方法创建一个Conv类的实例对象,从高级中间语言表示中,提取编译后的属性信息,并依次填充到实例对象中,完成一个Conv算子的翻译过程。
进一步地,所述步骤S21中,在深度学习编译器的执行流程中,对调用编译加速库所需的环境属性进行配置,将深度学习编译器与编译加速库连接起来,调用编译加速库并对其进行初始化。
进一步地,所述步骤S22中的编译器后端,是深度学习编译器能够识别的代码生成模块,用于告知深度学习编译器对该算子进行的处理,将其转换为编译加速库可接收的输入文件格式,从而调用编译加速库在硬件上对该算子进行优化。
进一步地,所述步骤S23中,通过接口实现调用编译加速库执行算子优化,包括如下步骤:
S231,通过接口提取算子的属性信息,并根据属性信息调用编译加速库的编译器后端,生成编译加速库可接收的输入文件;
S232,调用编译加速库,生成算子的运行引擎并将其进行保存,便于后续算子优化过程中可以直接调用编译加速库优化后的方案并获取其运行时间,以进行对比选择。
进一步地,所述步骤S24包括如下步骤:
S241,对于每个算子,判断是否已经构建可应用的运行引擎,若没有,则进行运行引擎的构建,否则,直接复用已有的运行引擎;
S242,将算子的输入输出对象与运行引擎相绑定;
S243,调用编译加速库执行该算子。
所述步骤S24中,由于运行引擎的构建是非常耗时的,因此具有相同属性信息的同类算子应用同一个运行引擎。
进一步地,所述步骤S31包括如下步骤:
S311,深度学习编译器对每个算子定义优化方案的搜索空间,每个算子都可能采取一系列不同的优化操作,所有可能的优化操作序列构成了算子的优化方案搜索空间;
S312,通过搜索算法自动探索该搜索空间,选出其中推理时间最短的最佳优化方案,通过实际运行不同的优化方案来确定当前硬件环境下的最优选择,并记录该最优方案所需的推理时间。
进一步地,算子优化,是对算子的循环嵌套进行重构,使得优化后的算子在计算时只需更少的内存访问次数、更好的应用硬件特性,从而达到更短的推理耗时。
算子优化操作包括:平铺、循环展开、循环顺序更改、并行化、向量化;
进一步地,所述步骤S41中,对于选择使用深度学习编译器进行优化的算子,其可执行代码的生成方法不变,对于选择使用编译加速库进行优化的算子,其可执行代码为声明该算子的执行方式为调用编译加速库,生成的运行引擎,在硬件上运行。
本发明的优势和有益效果在于:
(1)本发明不局限于某种特定的编译加速库,程序员可以根据实际需求很方便的对不同加速器进行支持;前端对神经网络进行了图级别的优化,后端进行了算子级别的优化,且整个优化过程是自动进行的,可以针对硬件平台产生高效的优化后代码,且不需要程序员花费大量时间精力进行手动调优;通过在深度学习编译器中增加对编译加速库支持,充分应用了深度学习编译器和编译加速库双方各自的优点,在保持深度学习编译器灵活性的基础上,利用编译加速库在常用算子上更强的优化效果,进一步缩短了神经网络的推理时间。
附图说明
图1是本发明的方法流程图。
图2是深度学习编译器原有执行流程示意图。
图3是本发明中Conv-Add-Relu模块计算示意图。
图4是本发明中调用编译加速库流程示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
如图1所示,本发明提供一种智能选择编译加速库的深度学习编译优化方法,目的是通过在现有的深度学习编译器方法中加入编译加速库的加速效果,结合深度学习编译器与编译加速库双方各自的优点,进一步提高深度神经网络的推理速度。图2是未采用本方法时已有的深度学习编译器的执行流程,本发明通过将深度学习编译器与编译加速库相结合,自动为深度神经网络中的每个算子在深度学习编译器和编译加速库中选择最优的优化方案,在兼顾深度学习编译器的灵活性的同时,达到更优的推理速度。
本方法首先在深度学习编译器中加入各种算子针对编译加速库的翻译方法,将各种算子自动转换为编译加速库可以识别的形式。其次提出一种在深度学习编译器中调用编译加速库的方法,实现通过编译加速库执行各种算子,并在执行后自动记录每个算子采取的优化方案,以供后续算子优化阶段进行使用。然后在深度学习编译器的算子优化阶段将原始优化效果与编译加速库的执行效果进行比较,进行最优方案的选择。最后提出一种深度学习编译器中结合编译加速库的代码生成方法,产生优化后的可执行代码,实现对深度神经网络的进一步优化。
本发明的具体实施方式为:
1)对深度神经网络中编译加速库支持的算子进行翻译。
1.1)首先,本方法将深度学习框架产生的模型作为输入,将其抽象为高级中间语言表示。
1.2)对高级中间语言表示的神经网络执行深度学习编译器原有的图优化算法。首先基于转换后的高级中间语言构造计算图,图中每个节点代表神经网络中的一个算子,图中的边表示算子间的数据依赖。图3是神经网络中一个简单的Conv-Add-Relu模块所产生的计算图,图中每个椭圆表示输入输出的数据,圆角矩形代表一个算子节点,虚线矩形表示算子的属性,该示例中就包含三个节点,图中每条边都表示了算子间的数据依赖,比如Conv算子依赖的数据是输入的data数据和权重w1数据,Add算子依赖的是前置的Conv算子的计算结果和输入的bias参数数据。然后基于计算图对神经网络进行图级别的优化,比如算子融合优化、数据布局优化等等。优化后的计算图可以大大减少计算时内存读取的开销。
1.3)识别深度学习编译器和编译加速库都可以支持的所有算子类型,针对每种类型的算子,提供对应的翻译方法。该方法首先从算子的高级中间语言表示中提取必要的属性信息,然后将这些属性信息根据编译加速库所定义的格式类型进行重构,最后翻译为编译加速库可以识别的输入对象。以Conv算子为例,首先在深度学习编译器中构造Conv算子对应的类,然后编译加速库所需的信息就是这个类中的属性,比如图3虚线矩形中声明的属性。翻译方法创建一个Conv类的实例对象,然后从高级中间语言表示中提取这些属性信息并依次填充到该对象中,完成一个Conv算子的翻译过程。
1.4)遍历图优化后的计算图,识别其中所有编译加速库支持的算子,并调用其对应的翻译方法。
2)调用编译加速库,对其可以支持的算子进行优化。
2.1)首先在深度学习编译器中对选择的编译加速库进行注册声明。在深度学习编译器的执行流程中对调用编译加速库所需的环境属性进行配置,将深度学习编译器与编译加速库连接起来,调用编译加速库并对其进行初始化。
2.2)实现了一个适用于编译加速库的编译器后端。该编译器后端是一个深度学习编译器能够识别的代码生成模块,可以告知深度学习编译器如何对该算子进行处理,将其转换为编译加速库可以接收的输入文件格式,从而可以调用编译加速库在硬件上对该算子进行优化。
2.3)将翻译后的算子传递给编译加速库,计算该算子的运行引擎。本方法中实现了调用编译加速库执行算子优化的接口,该接口首先提取算子的属性信息,并根据这些属性信息调用编译加速库的编译器后端生成编译加速库可以接收的输入文件,然后调用编译加速库生成该算子的运行引擎并将其进行保存,便于后续算子优化过程中可以直接调用编译加速库优化后的方案并获取其运行时间,以进行对比选择。在构造运行引擎时,本方法将算子的属性进行抽象编码,作为该引擎的名称。以图3中的Conv算子为例,该算子的输入数据data的大小为(1,3,224,224),权重w1的大小为(32,3,3,3),长宽各填充1行,则这些属性信息可以构造字符串“data(1,3,224,224)_weight(32,3,3,3)_padding(1,1)”,但除此之外,Conv算子还需记录数据布局等属性的信息,因此构造的字符串非常长,不利于记录。因此本方法使用map数据结构将每个字符串映射为一个整形数字,记为该算子的关键字key,比如当map为空时,上述的字符串就可以映射为整数0。除此之外,编译加速库可以接收不同的数据精度,比如fp32、fp16、int8等,因此本方法使用“算子类型_关键字_精度”为运行引擎进行命名,比如上述Conv算子在关键字为0,数据精度为fp32时,构造的运行引擎为“conv_0_fp32”。
2.4)执行生成的运行引擎,通过编译加速库对算子进行优化。图4是本发明中调用编译加速库流程示意图,由于运行引擎的构建是非常耗时的,因此具有相同属性信息的同类算子可以应用同一个运行引擎。对于每个算子,本方法首先判断是否已经构建可以应用的运行引擎,没有的话进行引擎的构建,否则可以直接复用已有的运行引擎。然后将算子的输入输出对象与运行引擎相绑定,最后就可以调用编译加速库执行该算子。
3)对神经网络进行算子级别优化,并进行最优方案选择。
3.1)执行深度学习编译器原有的算子优化方法。首先深度学习编译器对每个算子定义了优化方案的搜索空间,然后通过搜索算法自动探索该搜索空间,选出其中推理时间最短的最佳优化方案。算子优化指的是对算子的循环嵌套进行重构,使得优化后的算子在计算时只需更少的内存访问次数、更好的应用硬件特性,从而达到更短的推理耗时。常见的算子优化操作包括平铺、循环展开、循环顺序更改、并行化、向量化等等,每个算子都可能采取一系列不同的优化操作,所有可能的优化操作序列构成了算子的优化方案搜索空间。深度学习编译器应用机器学习算法自动探索该搜索空间,通过实际运行不同的优化方案来确定当前硬件环境下的最优选择,并记录该最优方案所需的推理时间t 1
3.2)对于编译加速库支持的算子,调用(2.3)生成的运行引擎,计算使用编译加速库优化的推理时间。以图3中的Conv算子为例,编译加速库对其生成了名为“conv_0_fp32”的运行引擎,重复运行该引擎计算平均推理时间t 2
3.3)将两个优化方案所需的推理时间 t 1 t 2 进行对比,若t 1 更短,则该算子采用深度学习编译器探索出的最佳优化方案作为最终的优化方案,否则采用编译加速库的优化方案作为最终的优化方案。
4)生成神经网络的可执行文件。
4.1)对神经网络中的每个算子生成可执行代码。对于选择使用深度学习编译器进行优化的算子,仍调用深度学习编译器原有的可执行代码生成方法,对于选择使用编译加速库进行优化的算子,其可执行代码为声明该算子的执行方式为调用编译加速库生成的运行引擎在硬件上运行。
4.2)将每个算子的可执行代码按照网络结构进行链接,构成完整的深度神经网络可执行文件。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

Claims (10)

1.一种智能选择编译加速库的深度学习编译优化方法,其特征在于包括如下步骤:
S1,对深度神经网络中编译加速库支持的算子进行翻译,将各种算子自动转换为编译加速库可以识别的形式,包括如下步骤:
S11,将深度学习框架产生的模型作为输入,将其抽象为高级中间语言表示;
S12,对高级中间语言表示的神经网络,执行深度学习编译器的图优化算法;
S13,识别深度学习编译器和编译加速库都支持的所有算子类型,针对每种类型的算子,提供对应的翻译方法;
S14,遍历图优化后的计算图,识别其中所有编译加速库支持的算子,并调用其对应的翻译方法;
S2,调用编译加速库,对其支持的算子进行优化,包括如下步骤:
S21,在深度学习编译器中,对选择的编译加速库进行注册声明;
S22,构建适用于编译加速库的编译器后端;
S23,将翻译后的算子传递给编译加速库,计算该算子的运行引擎;
S24,执行生成的运行引擎,通过编译加速库对算子进行优化;
S3,对神经网络进行算子级别优化,并进行最优方案选择,包括如下步骤:
S31,执行深度学习编译器原有的算子优化方法,得到最优方案的推理时间;
S32,对于编译加速库支持的算子,调用S23生成的运行引擎,计算使用编译加速库优化的推理时间;
S33,将两个优化方案所需的推理时间进行对比,选择推理时间更短的方案作为该算子最终的优化方案;
S4,生成神经网络的可执行文件;
S41,对神经网络中的每个算子生成可执行代码;
S42,将每个算子的可执行代码按照网络结构进行链接,构成完整的深度神经网络可执行文件。
2.根据权利要求1所述的一种智能选择编译加速库的深度学习编译优化方法,其特征在于所述S12中,首先基于转换后的高级中间语言构造计算图,计算图中每个节点表示神经网络中的一个算子,边表示算子间的数据依赖;然后基于计算图,对神经网络进行图级别的优化。
3.根据权利要求1所述的一种智能选择编译加速库的深度学习编译优化方法,其特征在于所述S13包括如下步骤:
S131,从算子的高级中间语言表示中,提取属性信息;
S132,将属性信息,根据编译加速库所定义的格式类型进行重构;
S133,将重构后的属性信息,翻译为编译加速库可识别的输入对象。
4.根据权利要求1所述的一种智能选择编译加速库的深度学习编译优化方法,其特征在于所述步骤S21中,在深度学习编译器的执行流程中,对调用编译加速库所需的环境属性进行配置,将深度学习编译器与编译加速库连接起来,调用编译加速库并对其进行初始化。
5.根据权利要求1所述的一种智能选择编译加速库的深度学习编译优化方法,其特征在于所述步骤S22中的编译器后端,是深度学习编译器能够识别的代码生成模块,用于告知深度学习编译器对该算子进行的处理,将其转换为编译加速库可接收的输入文件格式,从而调用编译加速库在硬件上对该算子进行优化。
6.根据权利要求1所述的一种智能选择编译加速库的深度学习编译优化方法,其特征在于所述步骤S23中,通过接口实现调用编译加速库执行算子优化,包括如下步骤:
S231,通过接口提取算子的属性信息,并根据属性信息调用编译加速库的编译器后端,生成编译加速库可接收的输入文件;
S232,调用编译加速库,生成算子的运行引擎并将其进行保存。
7.根据权利要求1所述的一种智能选择编译加速库的深度学习编译优化方法,其特征在于所述步骤S24包括如下步骤:
S241,对于每个算子,判断是否已经构建可应用的运行引擎,若没有,则进行运行引擎的构建,否则,直接复用已有的运行引擎;
S242,将算子的输入输出对象与运行引擎相绑定;
S243,调用编译加速库执行该算子。
8.根据权利要求1所述的一种智能选择编译加速库的深度学习编译优化方法,其特征在于所述步骤S31包括如下步骤:
S311,深度学习编译器对每个算子定义优化方案的搜索空间;
S312,通过搜索算法自动探索该搜索空间,选出其中推理时间最短的最佳优化方案。
9.根据权利要求8所述的一种智能选择编译加速库的深度学习编译优化方法,其特征在于算子优化,是对算子的循环嵌套进行重构。
10.根据权利要求1所述的一种智能选择编译加速库的深度学习编译优化方法,其特征在于所述步骤S41中,对于选择使用深度学习编译器进行优化的算子,其可执行代码的生成方法不变,对于选择使用编译加速库进行优化的算子,其可执行代码为声明该算子的执行方式为调用编译加速库,生成的运行引擎,在硬件上运行。
CN202110551554.0A 2021-05-20 2021-05-20 一种智能选择编译加速库的深度学习编译优化方法 Active CN113031966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110551554.0A CN113031966B (zh) 2021-05-20 2021-05-20 一种智能选择编译加速库的深度学习编译优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110551554.0A CN113031966B (zh) 2021-05-20 2021-05-20 一种智能选择编译加速库的深度学习编译优化方法

Publications (2)

Publication Number Publication Date
CN113031966A true CN113031966A (zh) 2021-06-25
CN113031966B CN113031966B (zh) 2021-09-21

Family

ID=76455409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110551554.0A Active CN113031966B (zh) 2021-05-20 2021-05-20 一种智能选择编译加速库的深度学习编译优化方法

Country Status (1)

Country Link
CN (1) CN113031966B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703741A (zh) * 2021-10-29 2021-11-26 深圳思谋信息科技有限公司 神经网络编译器配置方法、装置、计算机设备和存储介质
CN114186550A (zh) * 2021-12-10 2022-03-15 北京百度网讯科技有限公司 文本处理方法、装置、系统、设备以及存储介质
CN114492737A (zh) * 2021-12-31 2022-05-13 北京百度网讯科技有限公司 数据处理方法、装置及电子设备、存储介质及程序产品
WO2023092626A1 (zh) * 2021-11-25 2023-06-01 之江实验室 基于统一后端引擎的深度学习框架与硬件设备适配方法
CN116301904A (zh) * 2023-05-18 2023-06-23 之江实验室 一种用于深度学习编译器的算子优化加速方法及装置
CN117114091A (zh) * 2023-10-25 2023-11-24 深圳开鸿数字产业发展有限公司 基于联邦学习的计算图处理方法、计算机设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239315A (zh) * 2017-04-11 2017-10-10 北京深鉴智能科技有限公司 面向神经网络异构计算平台的编程模型
CN110321999A (zh) * 2018-03-30 2019-10-11 北京深鉴智能科技有限公司 神经网络计算图优化方法
CN110515626A (zh) * 2019-08-20 2019-11-29 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品
US20190392296A1 (en) * 2019-06-28 2019-12-26 John Brady Hardware agnostic deep neural network compiler
CN111667061A (zh) * 2020-04-17 2020-09-15 中国海洋大学 一种基于目标众核的深度学习框架移植与优化方法及系统
CN112579063A (zh) * 2021-03-01 2021-03-30 之江实验室 一种用于深度学习编译器中探索优化空间的加速方法
CN112711422A (zh) * 2020-12-31 2021-04-27 北京清微智能科技有限公司 一种神经网络编译的优化方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239315A (zh) * 2017-04-11 2017-10-10 北京深鉴智能科技有限公司 面向神经网络异构计算平台的编程模型
CN110321999A (zh) * 2018-03-30 2019-10-11 北京深鉴智能科技有限公司 神经网络计算图优化方法
US20190392296A1 (en) * 2019-06-28 2019-12-26 John Brady Hardware agnostic deep neural network compiler
CN110515626A (zh) * 2019-08-20 2019-11-29 Oppo广东移动通信有限公司 深度学习计算框架的代码编译方法及相关产品
CN111667061A (zh) * 2020-04-17 2020-09-15 中国海洋大学 一种基于目标众核的深度学习框架移植与优化方法及系统
CN112711422A (zh) * 2020-12-31 2021-04-27 北京清微智能科技有限公司 一种神经网络编译的优化方法及系统
CN112579063A (zh) * 2021-03-01 2021-03-30 之江实验室 一种用于深度学习编译器中探索优化空间的加速方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AHMED ELSIGINY等: ""Comparative Study of Evolutionary Algorithms for a Hybrid Analog Design Optimization with the use of Deep Neural Networks"", 《2020 32ND INTERNATIONAL CONFERENCE ON MICROELECTRONICS (ICM)》 *
DAVIDE PIZZOLOTTO等: ""Identifying Compiler and Optimization Options from Binary Code using Deep Learning Approaches"", 《2020 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME)》 *
张选杨: ""深度神经网络架构优化与设计"", 《中国优秀硕士学位论文全文数据库•信息科技辑》 *
王征韬: ""深度神经网络压缩与优化研究"", 《中国优秀硕士学位论文全文数据库•信息科技辑》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703741A (zh) * 2021-10-29 2021-11-26 深圳思谋信息科技有限公司 神经网络编译器配置方法、装置、计算机设备和存储介质
CN113703741B (zh) * 2021-10-29 2022-02-22 深圳思谋信息科技有限公司 神经网络编译器配置方法、装置、计算机设备和存储介质
WO2023092626A1 (zh) * 2021-11-25 2023-06-01 之江实验室 基于统一后端引擎的深度学习框架与硬件设备适配方法
CN114186550A (zh) * 2021-12-10 2022-03-15 北京百度网讯科技有限公司 文本处理方法、装置、系统、设备以及存储介质
CN114492737A (zh) * 2021-12-31 2022-05-13 北京百度网讯科技有限公司 数据处理方法、装置及电子设备、存储介质及程序产品
US11983086B2 (en) 2021-12-31 2024-05-14 Beijing Baidu Netcom Science Technology Co., Ltd. Method for processing data, and electronic device, storage medium and program product
CN116301904A (zh) * 2023-05-18 2023-06-23 之江实验室 一种用于深度学习编译器的算子优化加速方法及装置
CN116301904B (zh) * 2023-05-18 2023-08-22 之江实验室 一种用于深度学习编译器的算子优化加速方法及装置
CN117114091A (zh) * 2023-10-25 2023-11-24 深圳开鸿数字产业发展有限公司 基于联邦学习的计算图处理方法、计算机设备和存储介质
CN117114091B (zh) * 2023-10-25 2024-03-05 深圳开鸿数字产业发展有限公司 基于联邦学习的计算图处理方法、计算机设备和存储介质

Also Published As

Publication number Publication date
CN113031966B (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
CN113031966B (zh) 一种智能选择编译加速库的深度学习编译优化方法
CN112579063B (zh) 一种用于深度学习编译器中探索优化空间的加速方法
WO2021000970A1 (zh) 深度学习算法的编译方法、装置及相关产品
US10534590B2 (en) Dynamic recompilation techniques for machine learning programs
AU2013290313B2 (en) Method and system for automated improvement of parallelism in program compilation
CN110149800B (zh) 一种用于处理与源程序的源代码相关联的抽象语法树的装置
JP2001166949A (ja) シンボリック実行を用いてソースコードをコンパイルするための方法及び装置
WO2021000971A1 (zh) 操作数据的生成方法、装置及相关产品
CN111104120A (zh) 神经网络编译方法、系统及相应异构计算平台
WO2016105225A1 (en) Method for compiling a source code in a first programming language to a program code in a second programming language
Razavi et al. Partial evaluation of model transformations
Ahmad et al. Leveraging parallel data processing frameworks with verified lifting
Ringer et al. Ornaments for proof reuse in Coq
CN115423101A (zh) 基于编译器的张量数据计算推理方法、装置及存储介质
EP1107115A2 (en) Method and apparatus for compiling source code by flattening hierarchies
CN112558977B (zh) 面向异构众核后端基于代价模型的多面体优化方法
EP0692115B1 (en) System for conversion of loop functions to continuation-passing style
Chen Very-high-level parallel programming in Crystal
Racordon From ASTs to machine code with LLVM
Walker et al. An optimizing compiler for the Icon programming language
Silber et al. The Nestor library: A tool for implementing fortran source to source transfromations
Arora et al. Tools and techniques for non-invasive explicit parallelization
Renaud et al. Automated Clustering and Pipelining of Dataflow Actors for Controlled Scheduling Complexity
US20240135210A1 (en) Replacing lambda expressions in a rete network with corresponding code classes
US20240232666A9 (en) Replacing lambda expressions in a rete network with corresponding code classes

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
GR01 Patent grant
GR01 Patent grant