CN117075918A - 一种模型部署方法、装置、存储介质及电子设备 - Google Patents
一种模型部署方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117075918A CN117075918A CN202311328294.6A CN202311328294A CN117075918A CN 117075918 A CN117075918 A CN 117075918A CN 202311328294 A CN202311328294 A CN 202311328294A CN 117075918 A CN117075918 A CN 117075918A
- Authority
- CN
- China
- Prior art keywords
- logic unit
- calculation
- calculation logic
- candidate
- program
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 219
- 238000006243 chemical reaction Methods 0.000 claims abstract description 82
- 238000005457 optimization Methods 0.000 claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 5
- 238000005520 cutting process Methods 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 abstract description 2
- 238000013135 deep learning Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000006872 improvement Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 239000010410 layer Substances 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 239000002243 precursor Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000018109 developmental process Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 3
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 235000017166 Bambusa arundinacea Nutrition 0.000 description 1
- 235000017491 Bambusa tulda Nutrition 0.000 description 1
- 241001330002 Bambuseae Species 0.000 description 1
- 235000015334 Phyllostachys viridis Nutrition 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000011425 bamboo Substances 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
在一种模型部署方法、装置、存储介质及电子设备中,响应于待优化模型,生成计算逻辑单元以及对应的张量程序,并确定各所述计算逻辑单元对应的类型。然后,依次确定各计算逻辑单元之后计算逻辑单元为约束单元,根据该计算逻辑单元的张量程序以及约束单元的张量程序,确定数据排布优化转换方案。最后,将该计算逻辑单元的张量程序、约束单元的张量程序以及转换方案组合,得到候选策略,根据耗时从各候选策略中选择目标策略并根据目标策略并进行模型部署。通过获取全局最优部署策略,解决了优化后各层中间表示最优结果存在冲突的情况,提高了模型部署效率。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种模型部署方法、装置、存储介质及电子设备。
背景技术
近年来,随着计算机技术的发展,越来越多的计算图(computation graph)通过神经网络被应用到了生产实践中。计算图是一种用于表示应用程序的计算任务和数据流过程的多图结构,应用程序的代码通过预设的计算图转换规则,即可转换为该应用程序代码所对应的计算图。
现有技术中,为了提高应用程序的执行效率,在对应用程序部署之前,可先确定应用程序对应的计算图,并对计算图进行图变换(graph transformation),基于优化后的计算图部署应用程序。其中,图变换是指在保持应用程序的输入输出、以及应用程序的内部逻辑关系不变的情况下,调整该应用程序所对应计算图的结构的处理方式。
但是,目前应用部署过程中,一般是分层编译并部署,因此对应的是分别对每层需要编译的计算图进行图变换。导致各层的计算图是分别独立进行优化的,虽然带来更良好的模块化和较高的可维护性,但是同时造成了各层计算图的严重分离,导致难以达到全局最优的效果。
基于此,本说明书提供了一种模型部署方法。
发明内容
本说明书提供一种模型训练方法及模型训练装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种模型部署的方法,包括:
获取待编译的模型,并确定所述模型对应的计算图对应的多个计算逻辑单元;
生成所述多个计算逻辑单元分别对应的多个备选张量程序,并确定各所述计算逻辑单元对应的类型,其中,类型表征了输入数据的排布对计算逻辑单元输出结果影响大小;
依次针对每个计算逻辑单元,按照所述计算图的计算顺序,确定该计算逻辑单元之后的计算逻辑单元为约束单元,根据该计算逻辑单元的各备选张量程序以及所述约束单元的各备选张量程序,确定数据排布的至少一种转换方案;
根据该计算逻辑单元的各备选张量程序、所述约束单元的各备选张量程序以及所述转换方案,组合得到各候选策略;
计算确定出的各候选策略的耗时,根据耗时从各候选策略中选择该计算逻辑单元的目标策略;
当确定出各计算逻辑单元的目标策略时,根据各目标策略包含的数据排布的转换方案以及备选张量程序,进行模型部署。
可选的,确定所述模型对应的计算图对应的多个计算逻辑单元,具体包括:
确定作为所述模型中间表示的计算图;
对所述计算图进行优化,至少确定所述计算图中各算子优化后的数据排布;
对优化后的计算图进行切分,确定若干计算逻辑单元,其中,所述计算逻辑单元包含由一个或多个算子组成。
可选的,确定所述模型对应的计算图对应的多个计算逻辑单元,所述方法还包括:
根据各所述计算逻辑单元重复次数,确定各所述计算逻辑单元权重,并进行去重。
可选的,生成所述多个计算逻辑单元分别对应的多个备选张量程序,具体包括:
针对每个计算逻辑单元,根据该计算逻辑单元的包含的算子的表达式,生成该计算逻辑单元的代码模板,所述代码模板包含可配置的参数;
根据所述模型需部署的设备的硬件性能,对所述代码模板进行分离调度,得到所述代码模板中每个参数的各候选数值;
将所述各候选数值分别带入对应的参数,作为候选参数,确定含有候选参数的代码模板为候选程序,将候选程序按性能指标进行排序,从最高性能候选程序开始选择的至少一个候选程序作为备选张量程序。
可选的,确定各所述计算逻辑单元对应的类型,具体包括:
针对每个计算逻辑单元,确定该计算逻辑单元支持的输入数据的数据排布;
根据该计算逻辑单元支持的输入数据的数据排布,与预设的各种类的数据排布的比值,确定该计算逻辑单元对应的排布类型。
可选的,根据该计算逻辑单元的各备选张量程序以及所述约束单元的各备选张量程序,确定数据排布的至少一种转换方案,具体包括:
根据该计算逻辑单元的各备选张量程序,确定该计算逻辑单元数据的多种排布;该计算逻辑单元数据的多种排布中,根据所述约束单元的各备选张量程序并进行数据排布,确定至少一种高性能数据排布为转换方案;
根据该计算逻辑单元的各备选张量程序,在不进行数据排布的条件下确定数据排布的至少一种转换方案。
可选的,计算确定出的各候选策略的耗时,根据耗时从各候选策略中选择该计算逻辑单元的目标策略,具体包括:
计算确定出的各所述候选策略的负载;
按照负载低到负载高的顺序对各所述候选策略进行排序,从负载最低的候选策略开始选择至少一个候选策略作为该计算逻辑单元的多个负载候选策略;
计算各所述负载目标策略的耗时;
选择耗时最短的负载候选策略作为该计算逻辑单元的目标策略。
可选的,根据各目标策略包含的数据排布的转换方案以及备选张量程序,进行模型部署,具体包括:
根据数据排布的转换方案,确定所述目标策略所述计算逻辑单元前驱节点的目标转换方案;
确定备选张量程序中所述目标转换方案对应计算逻辑单元的目标前驱节点,于所述目标前驱节点增加转换方案,并重新确定为目标计算图;
生成所述目标计算图对应的目标张量程序进行部署。
本说明书还提供了一种模型部署的装置,包括:
切分模块,获取待编译的模型,并确定所述模型对应的计算图对应的多个计算逻辑单元;
程序生成模块,生成所述多个计算逻辑单元分别对应的多个备选张量程序,并确定各所述计算逻辑单元对应的类型,其中,类型表征了输入数据的排布对计算逻辑单元输出结果影响大小;
预处理模块,依次针对每个计算逻辑单元,按照所述计算图的计算顺序,确定该计算逻辑单元之后的计算逻辑单元为约束单元,根据该计算逻辑单元的各备选张量程序以及所述约束单元的各备选张量程序,确定数据排布的至少一种转换方案;
策略组合模块,根据该计算逻辑单元的各备选张量程序、所述约束单元的各备选张量程序以及所述转换方案,组合得到各候选策略;
策略选择模块,计算确定出的各候选策略的耗时,以根据耗时从各候选策略中选择该计算逻辑单元的目标策略;
部署模块,当确定出各计算逻辑单元的目标策略时,根据各目标策略包含的数据排布的转换方案以及备选张量程序,进行模型部署。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述模型训练的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述模型训练的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
首先根据待优化模型对应的计算图生成多个计算逻辑单元,并生成计算逻辑单元对应的张量程序。其次,确定各所述计算逻辑单元对应的类型,依次确定各计算逻辑单元之后的计算逻辑单元为约束单元,根据该计算逻辑单元的各张量程序以及约束单元的各张量程序,确定数据排布优化的转换方案。再其次,将该计算逻辑单元的各备选张量程序、约束单元的各备选张量程序以及转换方案组合,得到候选策略,并确定出的各候选策略的耗时,根据耗时从各候选策略中选择该计算逻辑单元的目标策略。最后,根据目标策略进行模型部署。
从上述方法可以看出,本方案通过对各层中间表示分别优化后进行整体性能优化以及整体耗时优化,得到了全局最优的部署方法,解决了优化后各层中间表示最优结果存在冲突的情况,大大提高了模型部署的效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书提供的一种模型部署的流程示意图;
图2为本说明书提供的一种原始数据排布优化的流程示意图;
图3为本说明书提供的一种已进行数据排布优化的流程示意图;
图4为本说明书提供的一种数据排布兼容计算逻辑单元的节点优化流程示意图;
图5为本说明书提供的一种数据排布敏感计算逻辑单元的节点优化流程示意图;
图6为本说明书提供的一种模型部署的装置流程示意图;
图7为本说明书提供的一种对应于图1的电子设备示意图。
具体实施方式
目前,深度神经网络已经在图像分类、目标检测、自然语言处理、自动驾驶等众多场景下取得了广泛且成功的应用。为了降低深度学习算法开发门槛及编程复杂度,国内外科技公司已经发展出众多的深度学习框架,如 PaddlePaddle、Oneflow、TensorFlow、PyTorch等。同时,在受摩尔定律影响,集成电路发展渐缓的背景下,为应对海量的数据计算并支撑深度学习算法高效训练及推理,如GPU(Graphics Processing Unit,图形处理器)、FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)和人工智能芯片如雨后春笋般得以开发应用,成为了当前深度学习负载的主要硬件设备。其中,人工智能芯片指的是针对人工智能算法特性做特殊设计的ASIC(Application Specific IntegratedCircuit,专用集成电路)。
而为了兼容应用层众多深度学习框架与硬件层多种硬件加速平台,并对深度学习负载做进一步的优化加速,处理器架构专用的编译器应运而生。而在处理器架构专用的编译器中深度学习编译器已得到了广泛应用,故对深度学习编译器进行进一步说明,深度学习编译器的通用设计架构采用分层设计,主要包括编译前端、中间表示和编译后端。编译前端主要将神经网络表示为高层中间表示输出的计算图,并针对高层中间表示输出的计算图进行硬件无关的图级别优化,将计算图切分为多个计算子图或算子。编译后端主要将优化后的高层中间表示输出的计算图转化为底层中间表示输出的计算图,针对硬件加速平台进行算子级别优化,并编译得到对应的硬件指令,最后调用各硬件设备执行计算。
可见,深度学习编译器的编译技术采用了多层次优化方案,每层优化独立进行,不进行联动。这种多层次优化方案使深度学习编译器的设计和实现具有高度模块化和高维护性,但同时也造成了上下层的分离,该优化方案易于达到单层局部最优,但不易于达到全局最优,即存在对高层中间表示输出计算图进行的高层优化,以及底层中间表示输出计算图进行的底层优化,而高层优化与底层优化完全相同概率极低。进而严重影响深度学习负载编译效果,如硬件利用率低,无法完全发挥硬件的计算性能等。
由此,本说明书提供了一种模型部署方法,以解决上述问题。
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书提供的一种模型部署方法的流程示意图,具体包括以下步骤:
S101:获取待编译的模型,并确定所述模型对应的计算图对应的多个计算逻辑单元。
在本说明书实施例中,因直接对待优化编译模型或待优化编译模型对应计算图进行优化所需算力高,技术难度大,本方案选择先确定待优化的编译模型,生成计算图并进行切分,以获得多个计算逻辑单元,供后续步骤进行整体优化的方法。
此处需额外说明,本说明书提供的模型部署方法可使用计算机或服务器执行,对于执行方法的主体,本说明书在此不作限制。且为方便本说明书进行描述,本说明书以服务器执行该模型部署过程为例进行说明。
具体的,服务器获取待编译的模型,确定作为该模型中间表示的计算图,对该计算图进行优化,至少确定该计算图中各算子优化后的数据排布,对优化后的计算图进行切分,确定若干计算逻辑单元。其中,该计算逻辑单元包含由一个或多个算子组成。当计算逻辑单元包含多个算子时,包含的各算子在计算逻辑上是有依赖关系的,并且可视为是一个计算子图。
例如,服务器先根据每个算子预设置数据排布模板得到计算图,再对计算图进行切分。如卷积算子Conv2D的数据排布模板为,其中N是数据批次(Batch size), C是特征图通道数(Channel),H是特征图的高(Height),W是特征图的宽(Weight),/>是可调节参数,通常根据人工经验设置。在得到计算图后,对计算图进行切分。
S103:生成所述多个计算逻辑单元分别对应的多个备选张量程序,并确定各所述计算逻辑单元对应的类型;其中,类型表征了输入数据的排布对计算逻辑单元输出结果影响大小。
在本说明书实施例中,底层中间表示的计算图需要与硬件对接,故采用张量描述底层中间表示的计算逻辑单元,以获得对应的多个备选张量程序。并且因为每个不同的逻辑单元在计算图中所起到的作用不相同,故根据各层中间表示的计算逻辑单元输入数据进行分析,本说明书针对排布对计算逻辑单元输出结果影响大小,进行分类,后根据分类供后续步骤快速选择类型对应的转换方案。
具体的,服务器根据硬件设备参数,采用算子编译方法对计算逻辑单元进行张量描述,生成多个备选张量程序。即根据该计算逻辑单元的包含的算子的表达式,生成该计算逻辑单元的代码模板,代码模板包含可配置的参数。根据模型需部署的设备的硬件性能,对代码模板进行分离调度,得到代码模板中每个参数的各候选数值。将各候选数值分别带入对应的参数,作为候选参数,确定含有候选参数的代码模板为候选程序,将候选程序按性能指标进行排序,从最高性能候选程序开始选择的至少一个候选程序作为备选张量程序。
此处需要额外说明:服务器执行的分离调度方法,即将代码模板的参数全部取出(即分离),然后根据硬件性能,对各参数进行阈值限定,并从阈值中选取一随机值作为候选参数(即调度),并作为候选数值。性能指标,即参考已有的程序设计的性能指标,至少包括高效率指标:效率主要是指系统运行速度与存储空间指标。程序设计应该做到程序占用的存储空间尽量少,程序运行完成规定功能的速度尽量快。
另外,在本说明书中该性能指标还可包括:可维护性指标、可靠性指标、可读性指标、规范性指标以及实用性指标。其中,可维护指标体现了程序的可维护性,可维护性是指程序各部分相互独立,没有调子程序以外的其他数据关联,即不会发生在维护时牵一发而动全身的连锁反应。一般具有规范性、可读性、结构划分好的程序模块特点的程序,其可维护性较好,满足高可维护性指标。其中,可靠性指标体现了系统可靠性,而系统可靠性可分解为两个方面的内容:一方面是程序或系统的安全可靠性,如数据存储的可靠性,通信的安全可靠性,操作权限的安全可靠性。另一方面是程序运行的可靠性,如程序在一段时间内能否稳定运行,即在一时间段内持续运行而不发生崩溃或者卡顿情况,如程序能否在各种环境内能否正常运行,即在各类其他语言程序运行是否会受到影响。其中,可读性指标体现了程序的可读性,可读性代表程序清晰,逻辑正确,计算机能够执行,层次清楚,便于阅读。主要影响着程序的维护工作量,一个不易理解的程序将会给程序维护工作会使得程序的维护工作量很大。其中,规范性指标体现了程序的规范性,规范性是指系统的划分、书写的格式、变量的命名等都要按统一规范,便于程序完成后的阅读、修改和维护。实用性指标体现了程序的实用性,实用性是指从用户的角度来审查系统各部分程序是否都具有方便实用的特点。
然后,服务器根据各层中间表示的计算逻辑单元输入数据的排布对计算逻辑单元输出结果影响大小,进行分类。
例如,服务器采用TVM的算子表达式来对计算逻辑单元中的算子的计算逻辑进行描述,并针对该算子表示自动生成出一个调度的代码模板,模板中预留出大量的可配置参数,即数据排布模板的参数变化。其中的调度是指采用TVM预设的调度原语,将算子的数据排布也视为一个调度原语,对算子的原始多重嵌套循环代码进行一系列变化,如把一个循环拆分成两个循环、或者把两个循环合并为一个循环、或者把两个循环的顺序颠倒等等。例如C = t.compute((m, n),lambda i, j: t.sum(A[i, k] * B[j * k], axis = k)是TVM中算子表达式的矩阵乘算子的计算逻辑示例。然后,根据TVM中基于机器学习技术的自动调度方法对已分离的可选配置进行搜索,得到算子的TopK个/>候选配置,这些候选配置可生成出一批性能较优的内核代码。
服务器再将算子数据排布类型可分为预设的三种类型,包括:数据排布无关、数据排布兼容以及数据排布敏感。其中,数据排布无关是指该类算子对数据排布不敏感,支持各种数据排布,不影响算子计算逻辑正确性,如ResNet-18模型中的ReLU、Softmax 等算子。数据排布兼容是指该类算子可兼容有限几种数据排序,这几种数据排布输入不影响算子计算逻辑正确性,如ResNet-18模型中的Batch_Norm、Pooling 等算子。数据排布敏感是指该类算子对数据排布敏感,仅支持某种数据排布输入,如ResNet-18模型中的Flatten、Reshape等算子。
S105:依次针对每个计算逻辑单元,按照所述计算图的计算顺序,确定该计算逻辑单元之后的计算逻辑单元为约束单元,根据该计算逻辑单元的各备选张量程序以及所述约束单元的各备选张量程序,确定数据排布的至少一种转换方案。
在本说明书实施例中,服务器根据计算逻辑单元对应的张量程序以及数据排布类型,确定各计算逻辑单元的备选转换方案,然后根据计算顺序,依次对每个计算逻辑单元对应的备选转换方案中选择转换方案,以供后续步骤选择。
具体的,服务器根据计算逻辑单元对应的张量程序以及数据排布类型,然后根据计算顺序,依次确定每个计算逻辑单元对应的转换方案。
例如,如图2所示,即为数据排布优化示意图,即服务器原始数据排布的流程,算子节点的数据排布均为NCHW类型,如图3所示,是进行了数据排布优化之后的计算图。因为每个算子的最佳数据排布并非一致,需要针对这类算子节点之前或之后插入数据排布转换节点进行数据排布的转换。输入节点之后插入数据排布转换节点,将NCHW排布转换为NC’HW16c 排布;在Add算子前,将NC’HW16c排布转换为NCHW排布。
S107:根据该计算逻辑单元的各备选张量程序、所述约束单元的各备选张量程序以及所述转换方案,组合得到各候选策略。
在本说明书实施例中,服务器根据已确定的转换方案,将该计算逻辑单元的各备选张量程序、约束单元的各备选张量程序进行组合,得到候选策略供后续步骤选择。
具体的,服务器针对每个计算逻辑单元,依次将各计算逻辑单元参数输入预设公式,根据预设性能选择阈值,根据已确定的转换方案,将该计算逻辑单元的各备选张量程序、约束单元的各备选张量程序进行组合,对组合后的策略进行与S103步骤性能指标相同的性能分析,根据性能指标选取组合后的策略中预设数量的策略作为候选策略。
例如,在遍历整计算图中每个计算逻辑单元的算子节点时,服务器记当前算子节点的遍历次序为n,其最优K个实现配置为Configk(),该算子的直接前驱算子节点保存着已遍历的M种最优配置/>(/>)。针对每个当前算子最优K个实现,计算:
从当前节点的K个配置中选择具有最优性能的M个,构成截止到当前算子节点为止的最优配置。例如第一次循环:k1=1,通过
找到与k1组合后性能最好的m1,第二次循环:k2=2,通过
找到与k2组合后性能最好的m2。其中,表示Configk配置的时延,表示该算子之前部分计算图的第m个配置的时延,表示当前算子之前部分计算图的第m个配置和该算子第k个配置之间需要进行的数据排布转换时延,表示从/>的M个配置中,挑选出与Configk配合数据排布转换消耗最小的m配置。时延越小,性能越高。
若服务器对计算图中大多数相邻两个考虑了数据排布优化后的算子性能提升数值大于插入数据排布转换节点的额外开销,则认为是对整个模型编译是有益的,即实现了计算图级别数据排布优化和算子级优化上下联合调优。对数据排布无关的节点不进行优化,如图4数据排布兼容的节点优化流程图以及图5数据排布敏感的节点优化流程图所示,经过上述步骤后,得到了每个算子节点的TopK最佳配置及节点的数据排布分类。在该步骤中,联合这部分信息,在计算图上整体调优。
S109:计算确定出的各候选策略的耗时,以根据耗时从各候选策略中选择该计算逻辑单元的目标策略。
在本说明书实施例中,服务器根据深度学习负载计算顺序依次迭代每个算子节点,因为每个算子节点的最优数据排布可能不一致,需要在算子节点之间插入数据排布转换节点以保证整计算图上数据可以正常流动,但这会带来额外的转换开销,故根据已确定的多个候选策略,确定时间开销,对时间开销以及性能提升,进行整体考虑,选择目标策略。
具体的,服务器计算各候选策略的完成时间,将性能参数以及时间参数输入预设公式,选择公式最大输出对应的候选策略为目标策略。
例如,若插入数据排布转换节点的时间开销小于性能提升,,则服务器确认该部分数据排布优化是有益的。其中,/>表示在图2以及图3中自下向上的第一个卷积算子,从左侧图(限定数据排布为NCHW)到右侧图(未限定数据排布,搜索得到最优数据排布为NC’HW16c)两种算子编译后的性能差异;同理,/>表示图2以及图3中自下向上的第二个卷积算子数据排布优化前后的性能差异;/>和/>分别表示插入的两个数据排布转换节点带来的额外时间开销;图中卷积核的数据排布可以预先转换,不计入时间开销。若在图2以及图3所示的例子中,优化的性能提升/>值为正数,则优化是有意义的。
S111:当确定出各计算逻辑单元的目标策略时,根据各目标策略包含的备选张量程序以及数据排布的转换方案进行模型部署。
在本说明书实施例中,服务器将目标策略对应计算图输出,因计算图只是中间输出结果,故生成对应含张量程序的模型,并进行模型部署。
具体的,服务器对上一步骤计算图中插入的数据排布转换节点进行算子融合,将其融合进直接前驱算子节点张量程序中。根据各个算子最佳配置生成相应的张量代码,完成深度学习负载的编译。
基于图1所示模型部署方法,响应于待优化模型,生成计算逻辑单元以及对应的张量程序,并确定各计算逻辑单元对应的类型。然后,依次确定各计算逻辑单元之后计算逻辑单元为约束单元,根据该计算逻辑单元的张量程序以及约束单元的张量程序,确定数据排布优化转换方案。最后,将该计算逻辑单元的张量程序、约束单元的张量程序以及转换方案组合,得到候选策略,根据耗时从各候选策略中选择目标策略并根据目标策略并进行模型部署。
从上述方法可以看出,服务器对高层中间表示以及底层中间表示分别优化后进行整体性能优化以及整体耗时优化,得到全局最优的部署方法,解决了优化后高层中间表示优化结果以及底层中间表示优化结果存在冲突的情况,从而大大提高了模型编译并部署的效率。
可选的,在步骤S101中,服务器确定模型对应的计算图对应的多个计算逻辑单元时,还可根据各计算逻辑单元重复次数,确定各计算逻辑单元权重,并进行去重。通过去重,避免了对重复逻辑单元的优化,降低了优化步骤的成本,而获取的计算逻辑单元的权重用于在步骤S105中选择执行优化的硬件设备的参考数据。
例如,在步骤S101中计算图切分后,获得K个去重的计算子图或算子,对应的在ResNet-18中的个数权重为/>,算子是节点个数为1的特殊计算子图,每个计算子图将进行单独编译优化。
可选的,在本说明书实施例步骤S103中,在服务器确定各计算逻辑单元对应的类型时,为保证每个计算逻辑单元的分类准确性,先针对测试不同数据排布对每个不同计算逻辑单元的影响,确定该计算逻辑单元支持的输入数据的数据排布数量。然后再根据该计算逻辑单元支持的输入数据的数据排布,与预设的各种类的数据排布的比值,确定该计算逻辑单元对应的排布类型,简化了步骤S105中选择数据排布的计算量,并确保了在计算图中每个计算逻辑单元能够准确进行分类并找到可用的数据排布方式,保证了每个计算图优化后的内部逻辑关系不变。
可选的,在本说明书实施例步骤S105中,在服务器根据该计算逻辑单元的各备选张量程序以及约束单元的各备选张量程序,确定数据排布的至少一种转换方案时,为整体考虑各计算逻辑单元的优化方式,先根据该计算逻辑单元的各备选张量程序,确定该计算逻辑单元数据的多种排布。然后在该计算逻辑单元数据的多种排布中,根据约束单元的各备选张量程序并进行数据排布,确定至少一种满足较高性能指标的数据排布为转换方案。最后根据该计算逻辑单元的各备选张量程序,在不进行数据排布的条件下确定数据排布的至少一种转换方案。通过输出转化方案,明确了具体每个计算逻辑单元的优化方式,以解决各逻辑单元可能存在分别优化的情况,导致难以达到该计算图最优。
可选的,在本说明书实施例步骤S109中,在服务器计算确定出的各候选策略的耗时,根据耗时从各候选策略中选择该计算逻辑单元的目标策略时,因候策略按照性能指标选取并未考虑到负载高低以及耗时长短特点,故先计算确定出的各候选策略的负载。然后按照负载低到负载高的顺序对各候选策略进行排序,从负载最低的候选策略开始选择至少一个候选策略作为该计算逻辑单元的多个负载候选策略。最后,计算各负载目标策略的耗时,选择耗时最短的负载候选策略作为该计算逻辑单元的目标策略。确保了最终输出的目标策略在重新优化为计算图后,新计算图为对硬件设备最优计算图。
可选的,在本说明书实施例步骤S111中,在服务器根据各目标策略包含的数据排布的转换方案以及备选张量程序,进行模型部署时,因为大部分情况下,转换节点为选择目标计算逻辑单元的前驱节点插入,故先根据数据排布的转换方案,确定目标策略计算逻辑单元前驱节点的目标转换方案。然后确定备选张量程序中目标转换方案对应计算逻辑单元的目标前驱节点,于目标前驱节点增加转换方案,并重新确定为目标计算图。最后,生成目标计算图对应的目标张量程序进行部署。通过输出目标张量程序,完成整个具体部署过程。
本说明书还提供了与图1模型部署流程图对应的装置示意图,如图6所示:
切分模块401,获取待编译的模型,并确定所述模型对应的计算图对应的多个计算逻辑单元;
程序生成模块403,生成所述多个计算逻辑单元分别对应的多个备选张量程序,并确定各所述计算逻辑单元对应的类型,其中,类型表征了输入数据的排布对计算逻辑单元输出结果影响大小;
预处理模块405,依次针对每个计算逻辑单元,按照所述计算图的计算顺序,确定该计算逻辑单元之后的计算逻辑单元为约束单元,根据该计算逻辑单元的各备选张量程序以及所述约束单元的各备选张量程序,确定数据排布的至少一种转换方案;
策略组合模块407,根据该计算逻辑单元的各备选张量程序、所述约束单元的各备选张量程序以及所述转换方案,组合得到各候选策略;
策略选择模块409,计算确定出的各候选策略的耗时,以根据耗时从各候选策略中选择该计算逻辑单元的目标策略;
部署模块411,当确定出各计算逻辑单元的目标策略时,根据各目标策略包含的数据排布的转换方案以及备选张量程序,进行模型部署。
可选的,切分模块401,用于确定作为所述模型中间表示的计算图。对所述计算图进行优化,至少确定所述计算图中各算子优化后的数据排布。对优化后的计算图进行切分,确定若干计算逻辑单元,其中,所述计算逻辑单元包含由一个或多个算子组成。
可选的,切分模块401,用于对所述模型对应的计算图进行切分,得到多个计算逻辑单元并进行去重。确定所述模型对应的计算图对应的不同的多个计算逻辑单元。
可选的,程序生成模块403,用于针对每个计算逻辑单元,根据该计算逻辑单元的包含的算子的表达式,生成该计算逻辑单元的代码模板,所述代码模板包含可配置的参数。根据所述模型需部署的设备的硬件性能,对所述代码模板进行分离调度,得到所述代码模板中每个参数的各候选数值。将所述各候选数值分别带入对应的参数,作为候选参数,确定含有候选参数的代码模板为候选程序,将候选程序按性能指标进行排序,从最高性能候选程序开始选择的至少一个候选程序作为备选张量程序。
可选的,程序生成模块403,用于针对每个计算逻辑单元,确定该计算逻辑单元支持的输入数据的数据排布。根据该计算逻辑单元支持的输入数据的数据排布,与预设的各种类的数据排布的比值,确定该计算逻辑单元对应的排布类型。
可选的,预处理模块405,用于根据该计算逻辑单元的各备选张量程序,确定该计算逻辑单元数据的多种排布;该计算逻辑单元数据的多种排布中,根据所述约束单元的各备选张量程序并进行数据排布,确定至少一种高性能数据排布为转换方案。根据该计算逻辑单元的各备选张量程序,在不进行数据排布的条件下确定数据排布的至少一种转换方案。
可选的,策略选择模块409,用于计算确定出的各所述候选策略的负载。按照负载低到负载高的顺序对各所述候选策略进行排序,从负载最低的候选策略开始选择至少一个候选策略作为该计算逻辑单元的多个负载候选策略。计算各所述负载目标策略的耗时。选择耗时最短的负载候选策略作为该计算逻辑单元的目标策略。
可选的,部署模块411,用于针对每个目标策略,当该目标策略包含的数据排布的转换方案进行数据排布转换时,根据所述转换方案确定转换节点。将确定出的转换节点添加至该目标策略对应的计算逻辑单元之前。根据各转换节点以及各计算逻辑单元的备选张量程序,生成计算图对应的目标张量程序进行部署。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述一种模型部署方法。
本说明书还提供了图7所示的一种对应于图1的电子设备的示意结构图。如图7所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的图形处理器异常检测方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种模型部署的方法,其特征在于,包括:
获取待编译的模型,并确定所述模型对应的计算图对应的多个计算逻辑单元;
生成所述多个计算逻辑单元分别对应的多个备选张量程序,并确定各所述计算逻辑单元对应的类型,其中,类型表征了输入数据的排布对计算逻辑单元输出结果影响大小;
依次针对每个计算逻辑单元,按照所述计算图的计算顺序,确定该计算逻辑单元之后的计算逻辑单元为约束单元,根据该计算逻辑单元的各备选张量程序以及所述约束单元的各备选张量程序,确定数据排布的至少一种转换方案;
根据该计算逻辑单元的各备选张量程序、所述约束单元的各备选张量程序以及所述转换方案,组合得到各候选策略;
计算确定出的各候选策略的耗时,根据耗时从各候选策略中选择该计算逻辑单元的目标策略;
当确定出各计算逻辑单元的目标策略时,根据各目标策略包含的数据排布的转换方案以及备选张量程序,进行模型部署。
2.如权利要求1所述的方法,其特征在于,确定所述模型对应的计算图对应的多个计算逻辑单元,具体包括:
确定作为所述模型中间表示的计算图;
对所述计算图进行优化,至少确定所述计算图中各算子优化后的数据排布;
对优化后的计算图进行切分,确定若干计算逻辑单元,其中,所述计算逻辑单元包含由一个或多个算子组成。
3.如权利要求2所述的方法,其特征在于,确定所述模型对应的计算图对应的多个计算逻辑单元,具体包括:
对所述模型对应的计算图进行切分,得到多个计算逻辑单元并进行去重;
确定所述模型对应的计算图对应的不同的多个计算逻辑单元。
4.如权利要求1所述的方法,其特征在于,生成所述多个计算逻辑单元分别对应的多个备选张量程序,具体包括:
针对每个计算逻辑单元,根据该计算逻辑单元的包含的算子的表达式,生成该计算逻辑单元的代码模板,所述代码模板包含可配置的参数;
根据所述模型需部署的设备的硬件性能,对所述代码模板进行分离调度,得到所述代码模板中每个参数的各候选数值;
将所述各候选数值分别带入对应的参数,作为候选参数,确定含有候选参数的代码模板为候选程序,将候选程序按性能指标进行排序,从最高性能候选程序开始选择的至少一个候选程序作为备选张量程序。
5.如权利要求1所述的方法,其特征在于,确定各所述计算逻辑单元对应的类型,具体包括:
针对每个计算逻辑单元,确定该计算逻辑单元支持的输入数据的数据排布;
根据该计算逻辑单元支持的输入数据的数据排布,与预设的各种类的数据排布的比值,确定该计算逻辑单元对应的排布类型。
6.如权利要求1所述的方法,其特征在于,根据该计算逻辑单元的各备选张量程序以及所述约束单元的各备选张量程序,确定数据排布的至少一种转换方案,具体包括:
根据该计算逻辑单元的各备选张量程序,确定该计算逻辑单元数据的多种排布;该计算逻辑单元数据的多种排布中,根据所述约束单元的各备选张量程序并进行数据排布,确定至少一种高性能数据排布为转换方案;
根据该计算逻辑单元的各备选张量程序,在不进行数据排布的条件下确定数据排布的至少一种转换方案。
7.如权利要求1所述的方法,其特征在于,计算确定出的各候选策略的耗时,根据耗时从各候选策略中选择该计算逻辑单元的目标策略,具体包括:
计算确定出的各所述候选策略的负载;
按照负载低到负载高的顺序对各所述候选策略进行排序,从负载最低的候选策略开始选择至少一个候选策略作为该计算逻辑单元的多个负载候选策略;
计算各所述负载目标策略的耗时;
选择耗时最短的负载候选策略作为该计算逻辑单元的目标策略。
8.如权利要求1所述的方法,其特征在于,根据各目标策略包含的数据排布的转换方案以及备选张量程序,进行模型部署,具体包括:
针对每个目标策略,当该目标策略包含的数据排布的转换方案进行数据排布转换时,根据所述转换方案确定转换节点;
将确定出的转换节点添加至该目标策略对应的计算逻辑单元之前;
根据各转换节点以及各计算逻辑单元的备选张量程序,生成计算图对应的目标张量程序进行部署。
9.一种模型部署的装置,其特征在于,包括:
切分模块,获取待编译的模型,并确定所述模型对应的计算图对应的多个计算逻辑单元;
程序生成模块,生成所述多个计算逻辑单元分别对应的多个备选张量程序,并确定各所述计算逻辑单元对应的类型,其中,类型表征了输入数据的排布对计算逻辑单元输出结果影响大小;
预处理模块,依次针对每个计算逻辑单元,按照所述计算图的计算顺序,确定该计算逻辑单元之后的计算逻辑单元为约束单元,根据该计算逻辑单元的各备选张量程序以及所述约束单元的各备选张量程序,确定数据排布的至少一种转换方案;
策略组合模块,根据该计算逻辑单元的各备选张量程序、所述约束单元的各备选张量程序以及所述转换方案,组合得到各候选策略;
策略选择模块,计算确定出的各候选策略的耗时,以根据耗时从各候选策略中选择该计算逻辑单元的目标策略;
部署模块,当确定出各计算逻辑单元的目标策略时,根据各目标策略包含的数据排布的转换方案以及备选张量程序,进行模型部署。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~8任一项所述的方法。
11.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述权利要求1~8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311328294.6A CN117075918B (zh) | 2023-10-13 | 2023-10-13 | 一种模型部署方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311328294.6A CN117075918B (zh) | 2023-10-13 | 2023-10-13 | 一种模型部署方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117075918A true CN117075918A (zh) | 2023-11-17 |
CN117075918B CN117075918B (zh) | 2024-01-09 |
Family
ID=88715619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311328294.6A Active CN117075918B (zh) | 2023-10-13 | 2023-10-13 | 一种模型部署方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117075918B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200192676A1 (en) * | 2018-12-14 | 2020-06-18 | Intel Corporation | Apparatus and method for a high throughput parallel co-processor and interconnect with low offload latency |
US20210081789A1 (en) * | 2019-09-13 | 2021-03-18 | Latent AI, Inc. | Optimizing execution of a neural network based on operational performance parameters |
CN113934410A (zh) * | 2021-10-19 | 2022-01-14 | 北京航空航天大学 | 支持自定义算子的多硬件目标深度模型优化部署架构 |
US20230100552A1 (en) * | 2021-09-29 | 2023-03-30 | Nvidia Corporation | Branch and bound sorting for scheduling task execution in computing systems |
CN116126365A (zh) * | 2023-04-18 | 2023-05-16 | 之江实验室 | 一种模型部署的方法、系统、存储介质及电子设备 |
WO2023093623A1 (zh) * | 2021-11-29 | 2023-06-01 | 中科寒武纪科技股份有限公司 | 计算图的优化方法、数据处理方法及相关产品 |
CN116301904A (zh) * | 2023-05-18 | 2023-06-23 | 之江实验室 | 一种用于深度学习编译器的算子优化加速方法及装置 |
CN116339752A (zh) * | 2022-12-01 | 2023-06-27 | 航天时代飞鸿技术有限公司 | 基于多级中间表示的自主可控芯片模型自动部署方法及系统 |
CN116521380A (zh) * | 2023-07-05 | 2023-08-01 | 之江实验室 | 一种资源自适应协同的模型训练加速方法、装置及设备 |
CN116663618A (zh) * | 2023-07-28 | 2023-08-29 | 之江实验室 | 一种算子优化方法、装置、存储介质及电子设备 |
-
2023
- 2023-10-13 CN CN202311328294.6A patent/CN117075918B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200192676A1 (en) * | 2018-12-14 | 2020-06-18 | Intel Corporation | Apparatus and method for a high throughput parallel co-processor and interconnect with low offload latency |
US20210081789A1 (en) * | 2019-09-13 | 2021-03-18 | Latent AI, Inc. | Optimizing execution of a neural network based on operational performance parameters |
US20230100552A1 (en) * | 2021-09-29 | 2023-03-30 | Nvidia Corporation | Branch and bound sorting for scheduling task execution in computing systems |
CN113934410A (zh) * | 2021-10-19 | 2022-01-14 | 北京航空航天大学 | 支持自定义算子的多硬件目标深度模型优化部署架构 |
WO2023093623A1 (zh) * | 2021-11-29 | 2023-06-01 | 中科寒武纪科技股份有限公司 | 计算图的优化方法、数据处理方法及相关产品 |
CN116339752A (zh) * | 2022-12-01 | 2023-06-27 | 航天时代飞鸿技术有限公司 | 基于多级中间表示的自主可控芯片模型自动部署方法及系统 |
CN116126365A (zh) * | 2023-04-18 | 2023-05-16 | 之江实验室 | 一种模型部署的方法、系统、存储介质及电子设备 |
CN116301904A (zh) * | 2023-05-18 | 2023-06-23 | 之江实验室 | 一种用于深度学习编译器的算子优化加速方法及装置 |
CN116521380A (zh) * | 2023-07-05 | 2023-08-01 | 之江实验室 | 一种资源自适应协同的模型训练加速方法、装置及设备 |
CN116663618A (zh) * | 2023-07-28 | 2023-08-29 | 之江实验室 | 一种算子优化方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117075918B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933834B (zh) | 一种时序数据预测的模型创建方法及装置 | |
KR20180069877A (ko) | 머신 러닝 기반 네트워크 모델 구축 방법 및 장치 | |
CN111881973A (zh) | 一种样本选择方法、装置、存储介质及电子设备 | |
CN116304720B (zh) | 一种代价模型训练的方法、装置、存储介质及电子设备 | |
CN116663618B (zh) | 一种算子优化方法、装置、存储介质及电子设备 | |
CN116860259B (zh) | 一种模型训练和编译器自动调优的方法、装置及设备 | |
CN116306856B (zh) | 一种基于搜索的深度学习模型部署方法及装置 | |
CN116502679B (zh) | 一种模型构建方法、装置、存储介质及电子设备 | |
CN116521380A (zh) | 一种资源自适应协同的模型训练加速方法、装置及设备 | |
CN116185532B (zh) | 一种任务执行系统、方法、存储介质及电子设备 | |
CN116450344A (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
CN114547972A (zh) | 动力学模型构建方法、装置、存储介质及电子设备 | |
CN116776135B (zh) | 一种基于神经网络模型的物理场数据预测方法及装置 | |
CN117075918B (zh) | 一种模型部署方法、装置、存储介质及电子设备 | |
CN117370536A (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
US20150134307A1 (en) | Creating understandable models for numerous modeling tasks | |
CN115543945B (zh) | 一种模型压缩的方法、装置、存储介质及电子设备 | |
CN116403097A (zh) | 一种目标检测方法、装置、存储介质及电子设备 | |
CN116149362A (zh) | 一种飞行器避障轨迹任意时间优化方法和系统 | |
CN116755862B (zh) | 一种算子优化调度模型的训练方法、装置、介质及设备 | |
CN117009729B (zh) | 基于softmax的数据处理方法及装置 | |
CN117933707A (zh) | 一种风控模型解释方法、装置、存储介质及电子设备 | |
CN116340469B (zh) | 一种同义词挖掘方法、装置、存储介质及电子设备 | |
CN116167431A (zh) | 一种基于混合精度模型加速的业务处理方法及装置 | |
CN117909746A (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 |