System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种深度学习模型即时编译耗时的优化方法及系统技术方案_技高网

一种深度学习模型即时编译耗时的优化方法及系统技术方案

技术编号:42074657 阅读:5 留言:0更新日期:2024-07-19 16:54
本发明专利技术公开了一种深度学习模型即时编译耗时的优化方法及系统,方法包括:用户在离线环境下提交深度学习模型的输入张量到中间编译结果导出工具,中间编译结果导出工具导出不同输入张量对应的中间编译结果并将结果存储于映射表;在线环境下,即时编译器获取实时传输过来的深度学习模型的输入张量,在所述映射表中查询该输入张量对应的中间编译结果,若存在该输入张量对应的中间编译结果则直接采用该中间编译结果,若不存在该输入张量对应的中间编译结果,则即时编译器执行编译步骤生成该输入张量对应的中间编译结果,并将该中间编译结果存储于映射表中;本发明专利技术的优点在于:降低深度学习模型的即时编译耗时,提高整个编译过程的效率和性能。

【技术实现步骤摘要】

本专利技术涉及机器学习领域,具体涉及一种深度学习模型即时编译耗时的优化方法及系统


技术介绍

1、深度学习已经在众多领域得到了广泛应用,包括但不限于图像识别、自然语言处理、医疗诊断、自动驾驶等。这些应用大部分都需要依赖于深度学习框架。深度学习框架提供了一套完整的工具和库,使得开发者能够设计、训练和部署复杂的神经网络模型。这些框架封装了底层的计算细节,提供了高层次的抽象,从而简化了模型构建和训练的过程。在深度学习的推理阶段,即模型已经训练完成并需要对新数据进行预测时,深度学习框架提供了必要的支持,以确保模型能够高效、准确地执行推理任务。

2、深度学习框架一般使用一个计算图(computational graph)技术来构建和训练机器学习模型。计算图是一种表示数据流和计算过程的抽象方式,其中图的节点表示计算操作(operator),而边表示数据(张量)的流动。计算图的本质是一张有向无环图(dag)。使用计算图来表示机器学习模型使得开发者能够以声明式的方式定义复杂的计算过程,并通过自动微分等技术来优化模型的训练过程。此外,主流的深度学习框架还支持多种硬件平台,包括cpu、gpu和tpu,使得模型能够在不同的设备上高效运行。通过这种方式,深度学习框架极大地简化了机器学习模型的开发和部署过程,使得机器学习技术更加易于访问和应用。

3、计算图中的节点是机器学习模型在硬件上执行的最基本的计算单元,节点代表着特定的数学操作,例如卷积、全连接、激活函数等。通过使用节点组合出神经网络模型,简化了模型的实现和训练过程。计算节点在不同硬件上执行的具体代码实现被称为算子(kernel)。对于一个计算节点来说,即使是在相同的硬件上也可以有多种算子具体实现。例如,对于一个在cpu运行的矩阵乘法来说,根据循环顺序的不同可以有至少三种实现,另外使用simd(single instruction multiple data)指令来同时处理多个元素也是一个具体实现。不同的实现方式由于受硬件因素的影响,它们之间的性能有较大的差距。因此,需要工程师采用大量的人工方式和经验写出相对最快的一种实现,这使得算子开发的流程需要投入大量的人力。

4、为了更有效地解决计算优化问题,人们引入了即时编译(just in time,jit)技术。该技术通过使用即时编译器,在计算图中对选定的计算节点执行优化和编译过程,这一过程涵盖了分析、优化以及生成后端代码等步骤,最终生成二进制代码。即时编译器深入挖掘计算节点对应的算子空间,并根据预设规则筛选出其认为的最优算子实现版本。然而,现有的即时编译器主要针对静态输入进行优化,即算子处理的输入张量形状是预先定义且不变的。但是在实际的推理应用场景中,输入数据的批量大小(通常是输入张量的第一个维度)根据负载的不同经常发生变化,底层的异构加速硬件(如gpu)将受益于更大的批量大小以提高计算单元的利用率。每次变化输入的批量大小时,即时编译器都需要为特定批量大小的算子生成二进制可执行代码,这个过程通常需要约十秒。与之形成鲜明对比的是,算子的实际计算时间通常仅为毫秒级别。这意味着,在输入批量大小频繁变化的实际情况下,编译器需要消耗时间进行编译,而此时的深度学习框架无法有效地执行正常的推理运算任务,这最终导致了严重的队头堵塞问题。


技术实现思路

1、本专利技术所要解决的技术问题在于现有技术深度学习模型的即时编译耗时比较长的问题。

2、本专利技术通过以下技术手段解决上述技术问题的:一种深度学习模型即时编译耗时的优化方法,包括以下步骤:

3、步骤一、用户在离线环境下提交深度学习模型的输入张量到中间编译结果导出工具,中间编译结果导出工具导出不同输入张量对应的中间编译结果并将结果存储于映射表;

4、步骤二、在线环境下,即时编译器获取实时传输过来的深度学习模型的输入张量,在所述映射表中查询该输入张量对应的中间编译结果,若存在该输入张量对应的中间编译结果则直接采用该中间编译结果,若不存在该输入张量对应的中间编译结果,则即时编译器执行编译步骤生成该输入张量对应的中间编译结果,并将该中间编译结果存储于映射表中。

5、进一步地,所述步骤一包括:

6、步骤101、初始情况下,中间编译结果导出工具将深度学习模型的输入张量的批量大小设置为1;

7、步骤102、运行深度学习模型进行即时编译,将深度学习模型的中间编译结果保存在进程中;

8、步骤103、中间编译结果导出工具逐渐提高深度学习模型执行的批量大小,重复步骤102,直到深度学习模型执行的批量大小超出硬件能够支持的大小;

9、步骤104、中间编译结果导出工具所在进程在退出前,为即时编译的中间编译结果创建一个映射表,该表记录深度学习模型即时编译前后的变化,根据中间编译结果不同的类型将这些信息存储在相应的文件中。

10、更进一步地,所述中间编译结果分为两个类型,一个类型是与硬件无关的中间表达,其格式为hlo格式、另一个类型是与硬件相关的可执行文件的结果,其在gpu上的格式为cubin格式。

11、更进一步地,所述根据中间编译结果不同的类型将这些信息存储在相应的文件中,包括:

12、对于hlo格式的中间编译结果,中间编译结果导出工具将深度学习模型的计算图的哈希值与相应的hlo格式结果关联起来,并以protobuf格式保存这些信息,对于cubin格式的中间编译结果,中间编译结果导出工具将匹配即时编译器的llvm模块的名称与其生成的cubin内容,并将这些信息保存为二进制文件。

13、进一步地,所述即时编译器的编译步骤为:

14、步骤201、修改深度学习模型原先的计算图,使其能够在被执行时进行即时编译;

15、步骤202、在执行时将能够编译的部分的子图编译到hlo格式;

16、步骤203、将步骤202中获得的hlo格式的编译结果经过优化后得到优化后的hlo格式的编译结果;

17、步骤204、将优化后的hlo格式的编译结果编译到cubin格式。

18、更进一步地,所述步骤201包括:

19、首先,即时编译器在深度学习模型原先的计算图中遍历每个节点,识别出能够编译的节点并标记为可编译的节点,接着,对相邻的已标记为可编译的节点进行合并,形成子图,将识别出的子图替换为即时编译器的两个特定节点,即compile节点和run节点,compile节点执行即时编译,而run节点则运行编译后的结果,将编译后的结果与输入数据一起调度到硬件上执行。

20、更进一步地,所述步骤203中对hlo格式的编译结果的优化包括内存使用优化、计算融合以及并行化计算策略。

21、本专利技术还提供一种深度学习模型即时编译耗时的优化系统,包括:

22、离线编译存储模块,用于用户在离线环境下提交深度学习模型的输入张量到中间编译结果导出工具,中间编译结果导出工具导出不同输入张量对应的中间编译结果并将结果本文档来自技高网...

【技术保护点】

1.一种深度学习模型即时编译耗时的优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述步骤一包括:

3.根据权利要求2所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述中间编译结果分为两个类型,一个类型是与硬件无关的中间表达,其格式为HLO格式、另一个类型是与硬件相关的可执行文件的结果,其在GPU上的格式为Cubin格式。

4.根据权利要求3所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述根据中间编译结果不同的类型将这些信息存储在相应的文件中,包括:

5.根据权利要求1所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述即时编译器的编译步骤为:

6.根据权利要求5所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述步骤201包括:

7.根据权利要求5所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述步骤203中对HLO格式的编译结果的优化包括内存使用优化、计算融合以及并行化计算策略。p>

8.一种深度学习模型即时编译耗时的优化系统,其特征在于,包括:

9.根据权利要求8所述的一种深度学习模型即时编译耗时的优化系统,其特征在于,所述离线编译存储模块还用于:

10.根据权利要求9所述的一种深度学习模型即时编译耗时的优化系统,其特征在于,所述中间编译结果分为两个类型,一个类型是与硬件无关的中间表达,其格式为HLO格式、另一个类型是与硬件相关的可执行文件的结果,其在GPU上的格式为Cubin格式。

...

【技术特征摘要】

1.一种深度学习模型即时编译耗时的优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述步骤一包括:

3.根据权利要求2所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述中间编译结果分为两个类型,一个类型是与硬件无关的中间表达,其格式为hlo格式、另一个类型是与硬件相关的可执行文件的结果,其在gpu上的格式为cubin格式。

4.根据权利要求3所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述根据中间编译结果不同的类型将这些信息存储在相应的文件中,包括:

5.根据权利要求1所述的一种深度学习模型即时编译耗时的优化方法,其特征在于,所述即时编译器的编译步骤为:

6....

【专利技术属性】
技术研发人员:李克秋陈应钦胡一涛
申请(专利权)人:天津大学合肥创新发展研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1