CN112149826B - 深度神经网络推理计算中一种基于Profile图的优化方法 - Google Patents
深度神经网络推理计算中一种基于Profile图的优化方法 Download PDFInfo
- Publication number
- CN112149826B CN112149826B CN202011022468.2A CN202011022468A CN112149826B CN 112149826 B CN112149826 B CN 112149826B CN 202011022468 A CN202011022468 A CN 202011022468A CN 112149826 B CN112149826 B CN 112149826B
- Authority
- CN
- China
- Prior art keywords
- neural network
- deep neural
- calculation
- profile
- computation
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明提供了一种深度神经网络推理计算中一种基于Profile图的优化方法,所述深度神经网络推理计算中一种基于Profile图的优化方法包括如下步骤:步骤S1、获取深度神经网络推理计算节点的包含计算量和计算时间的Profile信息;步骤S2、将Profile信息与深度神经网络模型结构描述融合,形成Profile图:根据深度神经网络结构描述文件、Profile信息以及计算核心的信息,构建包含计算量、计算时间、计算函数的Profile图,用于指导计算调度;步骤S3、基于深度神经网络Profile图的计算核心调度,实现性能优化。本发明可以对深度神经网络推理全过程的计算工作负载有更清晰直接的认识,可实现面向具体计算设备计算资源的性能优化调度。
Description
技术领域
本发明涉及深度神经网络推理计算性能优化技术领域,特别涉及一种基于Profile(剖视)图的深度神经网络推理计算性能优化方法。
背景技术
近年来,随着大数据、计算能力、深度神经网络算法的发展,深度学习方法已经成为实现人工智能的主要技术途径。采用深度学习实现人工智能通常需要如下步骤:
1)采集大量应用场景的数据,并对数据集中待识别的对象进行标注;
2)设计深度神经网络模型;
3)在高性能计算系统上部署深度学习训练框架,利用步骤1)的大数据训练步骤2)中深度神经网络模型的参数数值;
4)利用深度神经网络模型和训练得到的参数数值,进行深度神经网络推理计算,实现智能识别任务。
深度神经网络推理计算就是利用已经设计好的深度神经网络模型和训练得到的模型参数数值,针对待识别场景的数据(在线或离线),在计算设备上进行推理计算并得到识别结果。
深度神经网络的推理计算可部署于云端也可部署于终端,在云端场景下,通常实例化多个深度神经网络推理计算任务,来完成多用户并发提交的场景数据的目标识别任务;在终端场景下,通常只运行一个深度神经网络推理计算任务,对连续的或离散的场景数据进行智能识别。无论部署于云端还是终端,深度神经网络推理计算都涉及大量的数值计算,其性能优化问题一直是一个研究和工程实现的热点问题。
深度神经网络的推理计算,输入包括三类数据:
1)深度神经网络结构描述,即深度神经网络模型,它描述了深度神经网络各个层次所做的计算以及层次间的数据传播关系。
2)深度神经网络参数数值,参数数值由训练得到。
3)待识别数据。
有的训练框架分别用不同的文件存储深度神经网络结构描述和参数数值,如Caffe;有的训练框架用一个文件同时存储了深度神经网络结构描述和参数数值,如TensorFlow。
现有的深度神经网络结构描述中没有给出深度神经网络各个计算步骤(或者说各个网络层)的计算工作量信息,没有计算不同计算阶段的计算量,也没有通过试运行来获得各个计算阶段的执行时间,在深度神经网络推理计算过程中,运行中所需要的计算资源性能不能估算,易对计算资源造成浪费,或因计算资源不足影响计算性能。
发明内容
本发明提供了一种深度神经网络推理计算中一种基于Profile图的优化方法,其目的是为了解决背景技术中深度神经网络推理计算过程中,运行中所需要的计算资源性能不能估算,易对计算资源造成浪费,或因计算资源不足影响计算性能的技术问题。
为了达到上述目的,本发明的实施例提供的一种深度神经网络推理计算中一种基于Profile图的优化方法,其特征在于,包括如下步骤:
步骤S1、获取深度神经网络推理计算节点的包含计算量和计算时间的Profile信息;
步骤S2、将Profile信息与深度神经网络模型结构描述融合,形成Profile图:根据深度神经网络结构描述文件、Profile信息以及计算核心的信息,构建包含计算量、计算时间、计算函数的Profile图,用于指导计算调度;
步骤S3、基于深度神经网络Profile图的计算核心调度,实现性能优化。
优选地,所述步骤S1中,采用静态分析和动态执行相结合的方法生成计算量和计算时间,具体包括:
步骤S11、估算深度神经网络结构各个层的计算量:解析深度神经网络结构描述文件,根据典型计算方法,估算深度神经网络各层的计算量,将结果插入新建的包含Profile信息的深度神经网络结构描述文件中;
步骤S12、试运行推理程序以获得各个层的计算时间:在预设试运行推理程序的推理计算平台上,试运行推理程序,记录各个层的计算时间,将结果同样记录到所述步骤S11中含Profile信息的深度神经网络结构描述文件中。
优选地,采用Lflops来表示深度神经网络每层计算的计算量,用Timing表示深度神经网络层的动态试运行推理程序时的计算时间。
优选地,所述步骤S2具体为,解析添加了Profile信息的深度神经网络结构描述文件,结合推理程序源代码中的程序结构,构建Profile图结构。
优选地,所述步骤S2中,所述Profile图包括图节点描述的计算函数,所述图节点描述为在特定计算层计算阶段,映射为程序的计算核心,所述计算核心为单独可调度的计算函数。
优选地,所述步骤S3具体为:
根据计算设备上计算资源的并行数量对计算核心进行轮转调度:将深度神经网络各个层的计算核心以轮转调度的方法调度到各个计算资源中。
优选地,所述计算资源的并行数量可通过CPU核心数、线程数或PE计算阵列中的PE数量来计算。
本发明的上述方案有如下的有益效果:
采用本发明能达到的技术效果有两个方面:1)拓展了深度神经网络结构描述,加入了包含计算量估算和试运行执行时间的Profile信息,可以对深度神经网络推理全过程的计算工作负载有更清晰直接的认识;2)基于深度神经网络结构描述和Profile信息构建的深度神经网络Profile图,可实现面向具体设备计算资源的性能优化调度。
附图说明
图1为本发明的一种深度神经网络推理计算中一种基于Profile图的优化方法的流程图;
图2为图1所示的一种深度神经网络推理计算中一种基于Profile图的优化方法的形成Profile图的流程图;
图3为本发明所针对的深度神经网络推理框架图;
图4为经典的LeNet-5深度神经网络结构及推理计算过程。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的问题,提供了一种深度神经网络推理计算中一种基于Profile图的优化方法,该方法根据深度神经网络模型的网络结构描述,静态计算出各个不同的计算阶段的计算量并通过试运行来获得各个计算阶段的计算时间,以上述两类信息作为每层深度神经网络计算的Profile信息,根据计算阶段间的数据传递关系构建Profile图,并将Profile图和深度神经网络结构描述融合;在深度神经网络推理计算过程中,运行时根据Profile图的信息在推理计算平台上进行性能优化调度。
本发明的基础原理包括如下:
通过模型转换工具,能够将不同训练框架下得到的模型和参数统一转换为模型描述和参数数值文件。因此,本发明针对分别用不同文件存储深度神经网络结构和参数数值的情况。本发明所针对的深度神经网络推理框架如图3所示。
在深度神经网络的推理计算实施前,深度神经网络的模型结构和参数数值都已经固定。推理程序可通过手工编写或工具来生成,推理程序的运算执行过程严格依照深度神经网络模型结构,执行过程中读取参数数值作为运算过程中的参数。
在深度神经网络的推理计算过程中,深度神经网络的模型结构清晰定义了每个计算层(主要是卷积、池化、激活)的输入、输出,也定义了每个算子(卷积、池化、激活)的具体计算操作,可以通过深度神经网络结构估算出每个计算层所需的计算量,另外深度神经网络推理试运行的时候,也可以获得各个层的执行时间,这就为推理计算的性能优化提供了静态的Profile信息。
依据深度神经网络模型进行的推理计算过程可以根据深度神经网络结构描述构造为一张推理计算流程图(简称为计算图),图中的每个节点代表一个计算阶段。图4显示了经典的LeNet-5深度神经网络的推理计算过程,使用常见的可视化工具,将深度神经网络结构化文本描述显示为图4所示的图形化形式。
本发明提供的一种基于Profile(框架)图的深度神经网络推理计算性能优化方法,如图1及图2所示,包括如下步骤:
步骤S1、获取深度神经网络推理计算节点的包含计算量和计算时间的Profile信息:采用静态分析和动态执行相结合的方法生成计算量和计算时间,采用Lflops来表示深度神经网络每层计算的计算量,用Timing表示深度神经网络层的动态试运行推理程序时的计算时间,具体包括:
步骤S11、估算深度神经网络结构各个层的计算量:解析深度神经网络结构描述文件,根据典型计算方法,估算深度神经网络各层的计算量,将结果插入新建的包含Profile信息的深度神经网络结构描述文件中;
步骤S12、试运行推理程序以获得各个层的计算时间:在预设试运行推理程序的推理计算平台上,试运行推理程序,记录各个层的计算时间,将结果同样记录到所述步骤S11中含Profile信息的深度神经网络结构描述文件中。
步骤S2、将Profile信息与深度神经网络模型结构描述融合,形成Profile图:根据深度神经网络结构描述文件、Profile信息以及计算核心的信息,构建包含计算量、计算时间、计算函数的Profile图,用于指导计算调度;具体为:
解析添加了Profile信息的深度神经网络结构描述文件,结合推理程序源代码中的程序结构,构建Profile图结构,整个Profile图的结构和深度神经网络结构相近,主要计算阶段和深度神经网络结构图对应;
所述Profile图包括图节点描述的计算函数,所述图节点描述为在特定计算层计算阶段,映射为程序的计算核心,所述计算核心为单独可调度的计算函数。
步骤S3、基于深度神经网络Profile图的计算核心调度,实现性能优化;具体为:
根据计算设备上计算资源的并行数量对计算核心进行轮转调度:将深度神经网络各个层的计算核心以轮转调度的方法调度到各个计算资源中。所述计算资源的并行数量可通过CPU核心数、线程数或PE计算阵列中的PE数量来计算。需要说明的是,上述计算设备为整个深度神经网络程序的运行平台。
本发明采用Profile图的深度神经网络推理性能优化方法,
本发明的一具体实施例技术方案如下:
第一步,深度神经网络推理计算节点的携带计算量和计算时间的Profile信息获取。
1.1 Profile信息的表示方法。
本发明采用Lflops(floating point operations,浮点数运算次数)来表示深度神经网络每层计算的计算量,用Timing表示深度神经网络层的动态试运行推理程序时的计算时间,并在网络层的描述信息中加入Profile信息结构记录这两项信息。如下述神经网络结构描述所示,为在LeNet-5的conv1卷积层描述中加入了Profile信息结构的情形。
1.2 Profile信息的取得方法。
Profile信息中的Lflops可以通过上述方法进行静态估算。本发明在模型转换阶段,利用上述方法估算Lflops信息,并写入模型描述文件中。
转换后的模型,在试运行阶段,收集各个层在系统上的执行时间信息,也写入模型描述文件中。
第二步,深度神经网络Profile图的构建。
方法是:
2.1 Profile图结构设计
解析添加了Profile信息的深度神经网络结构描述文件,结合推理程序源代码中的程序结构(函数),构建Profile图结构。整个Profile图的结构和深度神经网络结构相近,主要计算阶段和深度神经网络结构图对应。
2.2图节点信息设计
图节点的描述示意了在conv1层计算阶段,映射为程序的计算核心为CK_1、CK_2、CK_3,……,这些计算核心是单独的可调度的计算函数。例如,在LeNet-5的Conv1层的计算中,有6个卷积核参与计算,会形成6个不同的计算函数,具体参见下述神经网络结构描述,为在LeNet-5的conv1卷积层计算阶段映射为程序的计算核心的计算节点描述。总的计算时间由Timing表示,采用不同的调度方法调度这些计算函数,为性能优化提供了多种可能。
第三步,基于深度神经网络Profile图的计算核心调度。
方法是:
3.1根据Profile图估算深度神经网络各个层的计算负载
基于前述深度神经网络推理计算的Profile图,可以评估出每个深度神经网络层需要执行的计算核心的数量,通常情况下网络层中计算核心的计算量相近,也可以通过Profile图估算出各个计算核心的计算负载和预期计算时间。
3.2根据计算设备上计算资源的并行数量对计算核心进行轮转调度;
采用轮转调度的方法,将深度神经网络各个层的计算核心以轮转调度的方法调度到各个计算资源中。例如,LeNet-5的conv层需要有6个卷积计算核心,每个核心的卷积核的尺寸都是28×28大小,计算量相同只是参与计算的参数不同;如果执行推理计算的计算设备上有可以执行4个并行计算核心,那么可以将6个计算核心轮转调度到6个计算核心上,通常能获得较优的计算性能。
采用本发明所提供的一种深度神经网络推理计算中一种基于Profile图的优化方法,其技术优点体现如下:
采用本发明能达到的技术效果有两个方面:1)拓展了深度神经网络结构描述,加入了包含计算量估算和试运行执行时间的Profile信息,可以对深度神经网络推理全过程的计算工作负载有更清晰直接的认识;2)基于深度神经网络结构描述和Profile信息构建的深度神经网络Profile图,可实现面向具体设备计算资源的性能优化调度。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种深度神经网络推理计算中一种基于Profile图的优化方法,其特征在于,包括如下步骤:
步骤S1、获取深度神经网络推理计算节点的包含计算量和计算时间的Profile信息,其中,采用静态分析和动态执行相结合的方法生成计算量和计算时间,具体包括:
步骤S11、估算深度神经网络结构各个层的计算量:解析深度神经网络结构描述文件,根据浮点数运算次数计算方法,估算深度神经网络各层的计算量,将结果插入新建的包含Profile信息的深度神经网络结构描述文件中;
步骤S12、试运行推理程序以获得各个层的计算时间:在预设试运行推理程序的推理计算平台上,试运行推理程序,记录各个层的计算时间,将结果同样记录到所述步骤S11中含Profile信息的深度神经网络结构描述文件中;
步骤S2、将Profile信息与深度神经网络模型结构描述融合,形成Profile图:根据深度神经网络结构描述文件、Profile信息以及计算核心的信息,构建包含计算量、计算时间、计算函数的Profile图,用于指导计算核心的调度;
步骤S3、基于深度神经网络Profile图的计算核心的调度,实现性能优化。
2.根据权利要求1所述的深度神经网络推理计算中一种基于Profile图的优化方法,采用Lflops来表示深度神经网络每层计算的计算量,用Timing表示深度神经网络层的动态试运行推理程序时的计算时间。
3.根据权利要求1所述的深度神经网络推理计算中一种基于Profile图的优化方法,其特征在于,所述步骤S2具体为,解析添加了Profile信息的深度神经网络结构描述文件,结合试运行推理程序源代码中的程序结构,构建Profile图结构。
4.根据权利要求1所述的深度神经网络推理计算中一种基于Profile图的优化方法,其特征在于,所述步骤S2中,所述Profile图包括图节点描述的计算函数,所述图节点描述为在特定计算层计算阶段,映射为程序的计算核心,所述计算核心为单独可调度的计算函数。
5.根据权利要求1所述的深度神经网络推理计算中一种基于Profile图的优化方法,其特征在于,所述步骤S3具体为:根据计算设备上计算资源的并行数量对计算核心进行轮转调度:将深度神经网络各个层的计算核心以轮转调度的方法调度到各个计算资源中。
6.根据权利要求5所述的深度神经网络推理计算中一种基于Profile图的优化方法,其特征在于,所述计算资源的并行数量可通过CPU核心数、线程数或PE计算阵列中的PE数量来计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011022468.2A CN112149826B (zh) | 2020-09-25 | 2020-09-25 | 深度神经网络推理计算中一种基于Profile图的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011022468.2A CN112149826B (zh) | 2020-09-25 | 2020-09-25 | 深度神经网络推理计算中一种基于Profile图的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112149826A CN112149826A (zh) | 2020-12-29 |
CN112149826B true CN112149826B (zh) | 2022-05-03 |
Family
ID=73898035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011022468.2A Active CN112149826B (zh) | 2020-09-25 | 2020-09-25 | 深度神经网络推理计算中一种基于Profile图的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112149826B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965752B (zh) * | 2021-05-18 | 2021-09-07 | 北京壁仞科技开发有限公司 | 利用计算阵列来处理数据的方法和计算系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8918493B1 (en) * | 2012-06-28 | 2014-12-23 | Emc Corporation | Methods and apparatus for automating service lifecycle management |
CN110121859A (zh) * | 2017-08-28 | 2019-08-13 | 华为技术有限公司 | 一种信息验证方法及相关设备 |
CN110321999A (zh) * | 2018-03-30 | 2019-10-11 | 北京深鉴智能科技有限公司 | 神经网络计算图优化方法 |
-
2020
- 2020-09-25 CN CN202011022468.2A patent/CN112149826B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8918493B1 (en) * | 2012-06-28 | 2014-12-23 | Emc Corporation | Methods and apparatus for automating service lifecycle management |
CN110121859A (zh) * | 2017-08-28 | 2019-08-13 | 华为技术有限公司 | 一种信息验证方法及相关设备 |
CN110321999A (zh) * | 2018-03-30 | 2019-10-11 | 北京深鉴智能科技有限公司 | 神经网络计算图优化方法 |
Non-Patent Citations (1)
Title |
---|
基于LM-BP神经网络的非线性轮廓图优化方法研究;许静 等;《中国机械工程》;20161019;第27卷(第20期);第2749-2753页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112149826A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111768008B (zh) | 联邦学习方法、装置、设备和存储介质 | |
US11074107B1 (en) | Data processing system and method for managing AI solutions development lifecycle | |
CN109993299A (zh) | 数据训练方法及装置、存储介质、电子装置 | |
CN111310936A (zh) | 机器学习训练的构建方法、平台、装置、设备及存储介质 | |
US20210312295A1 (en) | Information processing method, information processing device, and information processing program | |
CN112231917A (zh) | 空间数字孪生建模方法、装置、计算机设备及存储介质 | |
CN109816114A (zh) | 一种机器学习模型的生成方法、装置 | |
Barbierato et al. | A Performance Modeling Language For Big Data Architectures. | |
CN110648080A (zh) | 基于智能点的信息物理系统及其构建方法 | |
CN110633959A (zh) | 基于图结构的审批任务创建方法、装置、设备及介质 | |
CN112149826B (zh) | 深度神经网络推理计算中一种基于Profile图的优化方法 | |
CN109657794A (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
CN112148926A (zh) | 一种图数据流的处理方法、处理装置和存储介质 | |
CN114338416A (zh) | 一种时空多指标预测方法、装置和存储介质 | |
CN117149410A (zh) | 一种基于ai智能模型训练调度指挥监控系统 | |
CN109840308B (zh) | 一种区域风电功率概率预报方法及系统 | |
CN116134387B (zh) | 用于确定工业任务的ai模型的压缩率的方法和系统 | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
CN113806077A (zh) | 基于人工智能的数据中心服务器调控方法及装置 | |
Vallabhajosyula et al. | Establishing a Generalizable Framework for Generating Cost-Aware Training Data and Building Unique Context-Aware Walltime Prediction Regression Models | |
CN105354298A (zh) | 基于Hadoop的大规模社交网络分析方法及其分析平台 | |
CN112685010B (zh) | 一种ai应用开发方法及系统 | |
CN115952073B (zh) | 工控机性能评估方法、装置、电子设备及存储介质 | |
CN117609870B (zh) | 结构识别模型训练、模型结构识别方法、设备及介质 | |
CN113657059B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |