CN113885845B - 深度学习编译器的计算图的生成方法、系统、设备及介质 - Google Patents
深度学习编译器的计算图的生成方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN113885845B CN113885845B CN202111159274.1A CN202111159274A CN113885845B CN 113885845 B CN113885845 B CN 113885845B CN 202111159274 A CN202111159274 A CN 202111159274A CN 113885845 B CN113885845 B CN 113885845B
- Authority
- CN
- China
- Prior art keywords
- graph
- correction parameter
- layer
- computing
- deep learning
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 74
- 238000013135 deep learning Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012937 correction Methods 0.000 claims abstract description 67
- 238000013507 mapping Methods 0.000 claims abstract description 15
- 238000012549 training Methods 0.000 claims description 36
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001629 suppression Effects 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/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (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)
- Stored Programmes (AREA)
Abstract
本发明公开了一种深度学习编译器的计算图的生成方法、系统、设备及介质,方法包括:构建计算图;获取深度学习框架中的网络模型,基于TVM将网络模型转换为高级图中间表示,并将高级图中间表示映射到计算图;读取矫正参数标定文件以获得矫正参数名称,将矫正参数名称与计算图中每层的层名称对比,并基于对比结果生成矫正后的计算图。通过本发明的方案,使AI芯片可支持不同框架下的图表示,并且可同时支持多种硬件后端;并且基于TVM将不同深度学习框架先转为高级图表示,再将其高级图表示转为AI计算图,避免了不同深度学习框架互相转换时,因目标框架不支持某些层而不能计算的问题,实现了不同的学习框架在AI芯片上的快速部署。
Description
技术领域
本发明涉及深度学习技术领域,尤其涉及一种深度学习编译器的计算图的生成方法、系统、设备及介质。
背景技术
编译器用于将高级语言翻译为机器语言,以减轻编程者的压力。但是由于编译器缺乏应用的整体信息,可优化的点通常是比较通用的,因此计算库应运而生,虽然很多应用在应用层面上千差万别,但是这些应用都依赖于一些共性的计算,比如矩阵类计算和图像类计算,因此芯片设计厂商会有专门的人来写出硬件友好的矩阵计算实现。因此,编译器通用性和高效性常常不可兼得。实际上,越多应用本身的特征给到编译器,编译器就可以获得更高的性能,但是编译器会随之损失了通用性。尽管计算库的出现部分地缓和了这两个指标之间的矛盾,但是在需要极致性能的情况下,还是远远不够的。深度学习作为一个可以创造万亿价值的应用,它的性能优化至关重要,因此深度学习编译器出现了。
深度学习(DL)彻底改变了以下领域计算机视觉和自然语言处理(NLP)。受这些成功的启发,研究人员和公司正在不断试验越来越复杂的DL模型,并开发专门的硬件后端。用于编写、优化和编译DL模型的DL框架降低了这些任务的复杂性,从而加快了DL研究和产品开发。
流行的深度学习编译器在表现性、复合性和可移植性之间提供不同的折衷方案。早期的框架作品采用了专门针对当时最先进的模型或新兴硬件加速器的编译器。因此,支持不同的深度学习框架,需要不断的扩展甚至需要修改底层代码。这种扩展既需要提高表达能力,同时需要保持与现有执行机制的向后兼容性。然而,这样的编译器很难设计、推理和实现,常常导致相互不兼容。
目前主流深度学习框架caffe、Tensorflow以及Pytorch等在CPU、GPU端已经有成熟的部署,但面对新型芯片,例如AI芯片却支持甚少。TVM(一种开源的深度学习编译器框架,用于CPU、GPU和机器学习加速器)、glow等深度学习编译器的出现,提供了对不同后端支持的框架,但无法将其直接部署到新型芯片。一些新型硬件比如显卡nvlda等,通常只针对特定深度学习框架,比如caffe,无法适应更多框架。因此针对目前的深度学习编译器只支持某种主流学习框架或芯片自研的框架,对其它主流框架并不支持的问题,亟需一种解决方案,令使用者可以将主流框架转为新型芯片支持的框架,但框架转换目前并无成熟方案。
发明内容
有鉴于此,本发明提出了一种深度学习编译器的计算图的生成方法、系统、设备及介质,解决了目前的深度学习编译器只支持某种主流学习框架或芯片自研的框架,不支持其它主流框架的问题,通过定义统一的计算图,使AI芯片可支持不同框架下的图表示,并且可同时支持多种硬件后端;并且利用TVM将不同深度学习框架先转为高级图表示,再将高级图表示转为AI计算图,避免了不同深度学习框架互相转换时,因目标框架不支持某些层而不能计算的问题。
基于上述目的,本发明实施例的一方面提供了一种深度学习编译器的计算图的生成方法,具体包括如下步骤:
构建计算图;
获取深度学习框架中的网络模型,基于TVM将所述网络模型转换为高级图中间表示,并将所述高级图中间表示映射到所述计算图;
读取矫正参数标定文件以获得矫正参数名称,将所述矫正参数名称与所述计算图中每层的层名称对比,并基于对比结果生成矫正后的计算图。
在一些实施方式中,将所述高级图中间表示映射到所述计算图,包括:
获取所述网络模型的输入层;
遍历所述网络模型中的每一个算子,对所述算子中的数据进行数据排列转换;
获取所述网络模型的输出层;
基于所述输入层、数据排列转换后的算子以及输出层,将所述高级图中间表示映射到所述计算图。
在一些实施方式中,对所述算子中的数据进行数据排列转换,包括:
从所述算子中提取训练参数,并判断所述训练参数的数据排列是否一致;
若所述训练参数的数据排列不一致,则将所述训练参数的数据排列转换成一致的。
在一些实施方式中,对所述算子中的数据进行数据排列转换,进一步包括:
获取所述算子进行计算的硬件计算平台的非支持层,将所述非支持层支持的计算拆分成最小粒度计算;
判断所述硬件计算平台是否支持所述最小粒度计算,基于判断结果确定进行计算的载体。
在一些实施方式中,基于判断结果确定进行计算的载体,包括:
若是所述硬件计算平台支持所述最小粒度计算,则在所述硬件计算平台进行所述最小粒度计算的计算。
在一些实施方式中,基于判断结果确定进行计算的载体,还包括:
若是所述硬件计算平台不支持所述最小粒度计算,则在主机端进行所述最小粒度计算的计算。
在一些实施方式中,基于对比结果生成矫正后的计算图,包括:
若是所述矫正参数名称与所述层名称一致,则获取所述矫正参数名称对应的矫正参数,基于所述对应的矫正参数生产所述矫正后的计算图;
若是所述矫正参数名称与所述层名称不一致,则获取预设矫正参数,基于所述预设矫正参数生产所述矫正后的计算图。
本发明实施例的另一方面,还提供了一种深度学习编译器的计算图的生成系统,生成系统具体包括:
构建计算图模块,所述构建计算图模块配置为构建计算图;
模型转换模块,所述模型转换模块配置为获取深度学习框架中的网络模型,基于TVM将所述网络模型转换为高级图中间表示,并将所述高级图中间表示映射到所述计算图;
矫正模块,所述矫正模块配置为读取矫正参数标定文件以获得矫正参数名称,将所述矫正参数名称与所述计算图中每层的层名称对比,并基于对比结果生成矫正后的计算图。
在一些实施方式中,将所述高级图中间表示映射到所述计算图,包括:
获取所述网络模型的输入层;
遍历所述网络模型中的每一个算子,对所述算子中的数据进行数据排列转换;
获取所述网络模型的输出层;
基于所述输入层、数据排列转换后的算子以及输出层,将所述高级图中间表示映射到所述计算图。
在一些实施方式中,对所述算子中的数据进行数据排列转换,包括:
从所述算子中提取训练参数,并判断所述训练参数的数据排列是否一致;
若所述训练参数的数据排列不一致,则将所述训练参数的数据排列转换成一致的。
在一些实施方式中,对所述算子中的数据进行数据排列转换,进一步包括:
获取所述算子进行计算的硬件计算平台的非支持层,将所述非支持层支持的计算拆分成最小粒度计算;
判断所述硬件计算平台是否支持所述最小粒度计算,基于判断结果确定进行计算的载体。
在一些实施方式中,基于判断结果确定进行计算的载体,包括:
若是所述硬件计算平台支持所述最小粒度计算,则在所述硬件计算平台进行所述最小粒度计算的计算。
在一些实施方式中,基于判断结果确定进行计算的载体,还包括:
若是所述硬件计算平台不支持所述最小粒度计算,则在主机端进行所述最小粒度计算的计算。
在一些实施方式中,基于对比结果生成矫正后的计算图,包括:
若是所述矫正参数名称与所述层名称一致,则获取所述矫正参数名称对应的矫正参数,基于所述对应的矫正参数生产所述矫正后的计算图;
若是所述矫正参数名称与所述层名称不一致,则获取预设矫正参数,基于所述预设矫正参数生产所述矫正后的计算图。
本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。
本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
本发明具有以下有益技术效果:本发明的方案通过定义统一的计算图,使AI芯片可支持不同框架下的图表示,并且可同时支持多种硬件后端;并且利用TVM将不同深度学习框架先转为TVM中的高级图表示,再将其高级图表示转为AI计算图,避免了不同深度学习框架互相转换时,因目标框架不支持某些层而不能计算的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明提供的深度学习编译器的计算图的生成方法的一实施例的框图;
图2为本发明提供的深度学习编译器的计算图的生成系统的一实施例的示意图;
图3为本发明提供的计算机设备的一实施例的结构示意图;
图4为本发明提供的计算机可读存储介质的一实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种深度学习编译器的计算图的生成方法的实施例。如图1所示,其包括如下步骤:
步骤S101、构建计算图;
步骤S103、获取深度学习框架中的网络模型,基于TVM将所述网络模型转换为高级图中间表示,并将所述高级图中间表示映射到所述计算图;
步骤S105、读取矫正参数标定文件以获得矫正参数名称,将所述矫正参数名称与所述计算图中每层的层名称对比,并基于对比结果生成矫正后的计算图。
具体的,构建计算图,计算图包括图输入、支持多种算子的层、连接每个层之间的边以及图输出。算子,功能的不同变体,使用相同的数据结构来表示,例如,卷积计算、矩阵乘加计算、池化计算、激活计算等。因此,使用相同的数据结构来表示这些变量的功能(类型)名称。不同深度学习框架的算子差异很大,比如在caffe(一种深度学习框架)中,卷积包含权重偏置,但在tensorflow中卷积和权重偏置是两个独立的层;再比如Batchnorm操作,在caffe中是由两个层表示,但在pytorch(一种深度学习框架)中仅由一层表示。随着深度学习解决任务难度增大,用户有很多自定义层,比如检测任务中的非极大值抑制以及细粒度识别中的注意力机制等层。为了适应不同的计算,本实施例构建的计算图中提供了模板,可以实现不同层的组合与分离。比如卷积和卷积偏置层可以组合为一层,也可以分为两层,并且可以通过基础计算组合实现用户自定义层。基于每层的算子,以及连接每个层的边可以实现算子融合、算子量化、数据排列转换等操作。
不同的深度学习框架中的网络模型是不同的,高级图中间表示是将不同深度学习框架中的网络模型翻译成为抽象的、硬件无关的计算图模型,之后,再将高级图表示映射到计算图模型,是将抽象的、硬件无关的计算图模型细化为与硬件关联的程序。基于TVM将不同深度学习框架先转为高级图表示,再将其高级图表示转为AI计算图,避免了不同深度学习框架互相转换时,因目标框架不支持某些层而不能计算的问题。
在将高级图表示映射到计算图后,根据不同的精度要求,对网络模型的每一层进行量化,量化过程为:读取矫正参数标定文件以获得矫正参数名称,将矫正参数名称与计算图中每层的层名称对比,若名称的对比结果一致,则获取对应的矫正参数,基于矫正参数生成矫正后的计算图,即矫正后的网络模型,若名称的对比结果一致,则获取预先设定的默认矫正参数,基于默认矫正参数生成矫正后的计算图。
通过定义统一的计算图,使AI芯片可支持不同框架下的图表示,同时可支持多种硬件后端;并且利用TVM作为前端编译器,将不同深度学习框架先转为TVM中的高级图表示,再将其高级图表示转为AI计算图,避免了不同深度学习框架互相转换时,因目标框架不支持某些层而不能计算的问题,实现了不同的学习框架在AI芯片上的快速部署。
在一些实施方式中,将所述高级图中间表示映射到所述计算图,包括:
获取所述网络模型的输入层;
遍历所述网络模型中的每一个算子,对所述算子中的数据进行数据排列转换;
获取所述网络模型的输出层;
基于所述输入层、数据排列转换后的算子以及输出层,将所述高级图中间表示映射到所述计算图。
在一些实施方式中,对所述算子中的数据进行数据排列转换,包括:
从所述算子中提取训练参数,并判断所述训练参数的数据排列是否一致;
若所述训练参数的数据排列不一致,则将所述训练参数的数据排列转换成一致的。
在数据排列转换过程中,提取每个不同算子的训练参数和非训练参数。在提取训练参数时,判断训练参数的数据排列是否一致,将数据排列不一致的训练参数转换成数据排列一致的训练参数。
在一些实施方式中,对所述算子中的数据进行数据排列转换,进一步包括:
获取所述算子进行计算的硬件计算平台的非支持层,将所述非支持层支持的计算拆分成最小粒度计算;
判断所述硬件计算平台是否支持所述最小粒度计算,基于判断结果确定进行计算的载体。
硬件计算平台,指的是可以执行某种计算的芯片,即本实施例中的AI芯片、或其他可以执行计算功能的新型芯片;非支持层,指硬件计算平台不支持的计算;支持层,指硬件计算平台可以支持的计算。
在一些实施方式中,基于判断结果确定进行计算的载体,包括:
若是所述硬件计算平台支持所述最小粒度计算,则在所述硬件计算平台进行所述最小粒度计算的计算。
在一些实施方式中,基于判断结果确定进行计算的载体,还包括:
若是所述硬件计算平台不支持所述最小粒度计算,则在主机端进行所述最小粒度计算的计算。
主机端,为服务器,更加具体的,指服务器的CPU、GPU等。
通过具体的实施例对将高级图中间表示映射到计算图进行说明。
首先,获取网络模型的输入形状、输入数据的排布方式。其次,遍历网络模型的每一层算子,根据算子的计算类型实施不同转换。在转换过程中,提取每个不同算子的训练参数和非训练参数。在提取训练参数时,判断训练参数的数据排列是否一致,目的是将数据排列不一致的训练参数转换成数据排列一致的训练参数。根据不同硬件计算平台,获取硬件计算平台的支持层和非支持层。对非支持层,做如下处理:将非支持层支持的计算拆分为最小粒度计算,并判断硬件计算平台是否支持最小粒度计算,如果支持,则将拆分后的计算在硬件上计算,否则,将其放到主机端计算。最后,获取网络的输出层。
在一些实施方式中,基于对比结果生成矫正后的计算图,包括:
若是所述矫正参数名称与所述层名称一致,则获取所述矫正参数名称对应的矫正参数,基于所述对应的矫正参数生产所述矫正后的计算图;
若是所述矫正参数名称与所述层名称不一致,则获取预设矫正参数,基于所述预设矫正参数生产所述矫正后的计算图。
基于同一发明构思,根据本发明的另一个方面,如图2所示,本发明的实施例还提供了一种深度学习编译器的计算图的生成系统,生成系统具体包括:
构建计算图模块110,所述构建计算图模块110配置为构建计算图;
模型转换模块120,所述模型转换模块120配置为获取深度学习框架中的网络模型,基于TVM将所述网络模型转换为高级图中间表示,并将所述高级图中间表示映射到所述计算图;
矫正模块130,所述矫正模块130配置为读取矫正参数标定文件以获得矫正参数名称,将所述矫正参数名称与所述计算图中每层的层名称对比,并基于对比结果生成矫正后的计算图。
本实施例的构建计算图模块通过构建统一的计算图,使AI芯片可支持不同框架下的图表示,同时可支持多种硬件后端;并且模型转换模块通过利用TVM作为前端编译器,将不同深度学习框架先转为TVM中的高级图表示,再将其高级图表示转为AI计算图,避免了不同深度学习框架互相转换时,因目标框架不支持某些层而不能计算的问题。矫正模块可以根据每层算子的计算精度对计算图的每一层进行矫正,可以支持不同单精度、双精度以及低比特的计算表示。
在一些实施方式中,将所述高级图中间表示映射到所述计算图,包括:
获取所述网络模型的输入层;
遍历所述网络模型中的每一个算子,对所述算子中的数据进行数据排列转换;
获取所述网络模型的输出层;
基于所述输入层、数据排列转换后的算子以及输出层,将所述高级图中间表示映射到所述计算图。
在一些实施方式中,对所述算子中的数据进行数据排列转换,包括:
从所述算子中提取训练参数,并判断所述训练参数的数据排列是否一致;
若所述训练参数的数据排列不一致,则将所述训练参数的数据排列转换成一致的。
在一些实施方式中,对所述算子中的数据进行数据排列转换,进一步包括:
获取所述算子进行计算的硬件计算平台的非支持层,将所述非支持层支持的计算拆分成最小粒度计算;
判断所述硬件计算平台是否支持所述最小粒度计算,基于判断结果确定进行计算的载体。
在一些实施方式中,基于判断结果确定进行计算的载体,包括:
若是所述硬件计算平台支持所述最小粒度计算,则在所述硬件计算平台进行所述最小粒度计算的计算。
在一些实施方式中,基于判断结果确定进行计算的载体,还包括:
若是所述硬件计算平台不支持所述最小粒度计算,则在主机端进行所述最小粒度计算的计算。
在一些实施方式中,基于对比结果生成矫正后的计算图,包括:
若是所述矫正参数名称与所述层名称一致,则获取所述矫正参数名称对应的矫正参数,基于所述对应的矫正参数生产所述矫正后的计算图;
若是所述矫正参数名称与所述层名称不一致,则获取预设矫正参数,基于所述预设矫正参数生产所述矫正后的计算图。
基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种计算机设备20,在该计算机设备20中包括处理器210以及存储器220,存储器220存储有可在处理器上运行的计算机程序221,处理器210执行程序时执行如上的方法的步骤。
其中,存储器可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的深度学习编译器的计算图的生成方法对应的程序指令/模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行装置的各种功能应用以及数据处理,即实现上述方法实施例的深度学习编译器的计算图的生成方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机可读存储介质30,计算机可读存储介质30存储有被处理器执行时执行如上方法的计算机程序310。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (7)
1.一种深度学习编译器的计算图的生成方法,其特征在于,包括:
构建计算图;
获取深度学习框架中的网络模型,基于TVM将所述网络模型转换为高级图中间表示,并将所述高级图中间表示映射到所述计算图;
读取矫正参数标定文件以获得矫正参数名称,将所述矫正参数名称与所述计算图中每层的层名称对比,并基于对比结果生成矫正后的计算图,
其中将所述高级图中间表示映射到所述计算图,包括:
获取所述网络模型的输入层;
遍历所述网络模型中的每一个算子,对所述算子中的数据进行数据排列转换;
获取所述网络模型的输出层;
基于所述输入层、数据排列转换后的算子以及输出层,将所述高级图中间表示映射到所述计算图,
并且其中对所述算子中的数据进行数据排列转换,包括:
从所述算子中提取训练参数,并判断所述训练参数的数据排列是否一致;
若所述训练参数的数据排列不一致,则将所述训练参数的数据排列转换成一致的;
获取所述算子进行计算的硬件计算平台的非支持层,将所述非支持层支持的计算拆分成最小粒度计算;
判断所述硬件计算平台是否支持所述最小粒度计算,基于判断结果确定进行计算的载体。
2.根据权利要求1所述的方法,其特征在于,基于判断结果确定进行计算的载体,包括:
若是所述硬件计算平台支持所述最小粒度计算,则在所述硬件计算平台进行所述最小粒度计算的计算。
3.根据权利要求1所述的方法,其特征在于,基于判断结果确定进行计算的载体,还包括:
若是所述硬件计算平台不支持所述最小粒度计算,则在主机端进行所述最小粒度计算的计算。
4.根据权利要求1所述的方法,其特征在于,基于对比结果生成矫正后的计算图,包括:
若是所述矫正参数名称与所述层名称一致,则获取所述矫正参数名称对应的矫正参数,基于所述对应的矫正参数生产所述矫正后的计算图;
若是所述矫正参数名称与所述层名称不一致,则获取预设矫正参数,基于所述预设矫正参数生产所述矫正后的计算图。
5.一种深度学习编译器的计算图的生成系统,其特征在于,包括:
构建计算图模块,所述构建计算图模块配置为构建计算图;
模型转换模块,所述模型转换模块配置为获取深度学习框架中的网络模型,基于TVM将所述网络模型转换为高级图中间表示,并将所述高级图中间表示映射到所述计算图;
矫正模块,所述矫正模块配置为读取矫正参数标定文件以获得矫正参数名称,将所述矫正参数名称与所述计算图中每层的层名称对比,并基于对比结果生成矫正后的计算图,
其中将所述高级图中间表示映射到所述计算图,包括:
获取所述网络模型的输入层;
遍历所述网络模型中的每一个算子,对所述算子中的数据进行数据排列转换;
获取所述网络模型的输出层;
基于所述输入层、数据排列转换后的算子以及输出层,将所述高级图中间表示映射到所述计算图,
并且其中对所述算子中的数据进行数据排列转换,包括:
从所述算子中提取训练参数,并判断所述训练参数的数据排列是否一致;
若所述训练参数的数据排列不一致,则将所述训练参数的数据排列转换成一致的;
获取所述算子进行计算的硬件计算平台的非支持层,将所述非支持层支持的计算拆分成最小粒度计算;
判断所述硬件计算平台是否支持所述最小粒度计算,基于判断结果确定进行计算的载体。
6. 一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-4任意一项所述的方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-4任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111159274.1A CN113885845B (zh) | 2021-09-30 | 2021-09-30 | 深度学习编译器的计算图的生成方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111159274.1A CN113885845B (zh) | 2021-09-30 | 2021-09-30 | 深度学习编译器的计算图的生成方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113885845A CN113885845A (zh) | 2022-01-04 |
CN113885845B true CN113885845B (zh) | 2024-01-12 |
Family
ID=79004651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111159274.1A Active CN113885845B (zh) | 2021-09-30 | 2021-09-30 | 深度学习编译器的计算图的生成方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113885845B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116301904B (zh) * | 2023-05-18 | 2023-08-22 | 之江实验室 | 一种用于深度学习编译器的算子优化加速方法及装置 |
CN116560666B (zh) * | 2023-07-10 | 2023-09-22 | 上海燧原科技有限公司 | 基于多层级代码生成的ai前端统一计算方法、装置及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764744A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 用于神经网络计算的中间表示生成方法和装置 |
CN111611087A (zh) * | 2020-06-30 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种资源调度方法、装置和系统 |
CN111753983A (zh) * | 2020-06-22 | 2020-10-09 | 深圳鲲云信息科技有限公司 | 神经网络模型的定制化方法、系统、设备和存储介质 |
CN112947899A (zh) * | 2019-12-11 | 2021-06-11 | 杭州海康威视数字技术股份有限公司 | 深度学习模型转换方法、系统及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321999B (zh) * | 2018-03-30 | 2021-10-01 | 赛灵思电子科技(北京)有限公司 | 神经网络计算图优化方法 |
-
2021
- 2021-09-30 CN CN202111159274.1A patent/CN113885845B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764744A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 用于神经网络计算的中间表示生成方法和装置 |
CN112947899A (zh) * | 2019-12-11 | 2021-06-11 | 杭州海康威视数字技术股份有限公司 | 深度学习模型转换方法、系统及装置 |
CN111753983A (zh) * | 2020-06-22 | 2020-10-09 | 深圳鲲云信息科技有限公司 | 神经网络模型的定制化方法、系统、设备和存储介质 |
CN111611087A (zh) * | 2020-06-30 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种资源调度方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113885845A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6549332B2 (ja) | 機械学習に基づくネットワークモデル構築方法及び装置 | |
CN113885845B (zh) | 深度学习编译器的计算图的生成方法、系统、设备及介质 | |
CN112232497A (zh) | 一种编译ai芯片的方法、系统、设备及介质 | |
CN111275199A (zh) | 一种深度学习模型文件的转换方法、系统、计算机设备及计算机可读存储介质 | |
CN109656544B (zh) | 一种基于执行路径相似度的云服务api适配方法 | |
CN109857459B (zh) | 一种e级超算海洋模式自动移植优化方法及系统 | |
CN104866310B (zh) | 知识数据的处理方法和系统 | |
CN110750298B (zh) | 一种ai模型编译方法、设备及存储介质 | |
CN115878096B (zh) | 深度学习模型统一应用方法、装置、服务器及存储介质 | |
CN111666071A (zh) | 一种基于目标众核的对抗网络移植与优化的方法及系统 | |
CN115423101A (zh) | 基于编译器的张量数据计算推理方法、装置及存储介质 | |
CN116127899A (zh) | 芯片设计系统、方法、电子设备和存储介质 | |
CN115659356A (zh) | 基于抽象语法树实现路径搜索深度自适应调整的方法 | |
CN114741085A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN105302551B (zh) | 一种大数据处理系统的正交分解构造与优化的方法及系统 | |
CN116560666B (zh) | 基于多层级代码生成的ai前端统一计算方法、装置及介质 | |
CN116484947B (zh) | 算子的自动生成方法、装置、设备及介质 | |
CN112183744A (zh) | 一种神经网络剪枝方法及装置 | |
CN112633516B (zh) | 性能预测和机器学习编译优化方法及装置 | |
CN115525436A (zh) | 模型部署、运行方法、装置、离线分析工具和电子设备 | |
JP2017111749A (ja) | 計算コード生成装置、方法及びプログラム | |
CN113031952B (zh) | 深度学习模型的执行代码的确定方法、装置及存储介质 | |
CN111340175A (zh) | 图重写的处理方法及装置、计算设备及可读介质 | |
CN114756205B (zh) | 测井应用程序集成方法及装置 | |
CN117454948B (zh) | 一种适用于国产硬件的fp32模型转换方法 |
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 |