System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种将MLIR文件转换为PyTorch文件的方法、装置、设备及介质制造方法及图纸_技高网

一种将MLIR文件转换为PyTorch文件的方法、装置、设备及介质制造方法及图纸

技术编号:40675704 阅读:9 留言:0更新日期:2024-03-18 19:13
本发明专利技术涉及深度学习编译技术领域,提供了一种将MLIR文件转换为PyTorch文件的方法、装置、设备及介质。方法包括以下步骤:获取MLIR文件,提取MLIR文件中的数据信息以及操作信息;保留数据信息原有的标识符,并将其数据类型转换为PyTorch文件中的Tensor数据类型;根据各个操作之间的前后顺序关系构建操作之间的依赖关系;依据PyTorch文件与MLIR文件之间的转换关系,将MLIR文件中的操作类型转换为PyTorch文件中的操作类型;根据转换后的数据类型、操作之间的依赖关系和转换后的操作类型,形成PyTorch文件。该方法能够将MLIR文件等价转换为与之对应的PyTorch文件。

【技术实现步骤摘要】

本专利技术属于深度学习编译,具体涉及从mlir编译设施中间表示到pytorch模型的转换方法。


技术介绍

1、mlir项目是一种可重复使用和可扩展的编译器基础设施,旨在解决软件碎片化问题,降低异构硬件的编译复杂性和构建特定领域编译器的成本。mlir编译器有助于在不同抽象层次、不同应用程序域、不同硬件目标和不同执行环境下改善code generators、translators和optimizers的设计和实现。

2、torch-mlir项目是一种编译设施,支持将pytorch生态计算机设备转换到mlir编译生态计算机设备,也就是将pytorch程序转换为mlir编译器的表示形式。

3、目前,torch-mlir项目不能实现mlir文件到pytorch模型文件之间的等价转换。如果要将mlir文件转换为pytorch模型文件,在转换操作关系时,由于操作关系顺序并不都是按照顺序一个一个执行的线性顺序,有些操作是在其余两个操作或多个操作执行后才能执行,如果按照现有技术方法一个一个串联操作的依赖关系,则无法实现操作关系的等价转换。

4、总之,现有技术存在将mlir文件转换为pytorch模型文件时,无法实现操作关系的等价转换的问题。


技术实现思路

1、为了克服现有技术存在的不足,本专利技术提供了一种将mlir文件转换为pytorch文件的方法、装置、设备及介质。

2、为了实现上述目的,本专利技术提供如下技术方案:

3、一种将mlir文件转换为pytorch文件的方法,其特征在于,包括:

4、获取mlir文件,提取mlir文件中的数据信息以及操作信息;

5、保留数据信息原有的标识符,并将其数据类型转换为pytorch文件中的tensor数据类型;

6、创建一个空栈;

7、遍历操作信息中所有的操作节点,将入度为0的操作节点压入空栈中,直到操作信息中没有入度为0的操作节点,得到一个保存了各个操作之间的前后顺序关系的栈;

8、输出栈中的节点序列,得到各个操作之间的前后顺序关系,根据各个操作之间的前后顺序关系构建操作之间的依赖关系;

9、依据pytorch文件与mlir文件之间的转换关系,将mlir文件中的操作类型转换为pytorch文件中的操作类型;

10、根据转换后的数据类型、操作之间的依赖关系和转换后的操作类型,形成pytorch文件。

11、进一步,所述提取mlir文件中的数据信息;包括:

12、提取mlir文件中的列表操作数、张量和常量。

13、进一步,所述提取mlir文件中的操作信息;包括:

14、提取mlir文件中的操作类型信息和操作数信息。

15、进一步,所述提取mlir文件中的数据信息以及操作信息后,执行以下步骤:

16、保存数据信息中的标识符及其对应的数据内容;

17、将操作信息以[结果标识符,操作符,操作数标识符1,...]的形式保存。

18、进一步,所述将mlir中的操作类型转换为pytorch中的操作类型;包括:

19、针对每一条操作信息,基于操作符将每个操作映射到的pytorch操作类型;将操作的操作数的数据类型转换为pytorch的数据类型。

20、进一步,所述将mlir中的操作类型转换为pytorch中的操作类型后,执行以下步骤:

21、根据依赖关系,为pytorch中的每个操作分配相应的输入,并保存中间结果。

22、进一步,所述入度为0的操作节点为没有前驱节点的操作节点。

23、一种将mlir文件转换为pytorch文件的装置,其特征在于,包括:

24、信息提取模块,用于获取mlir文件,提取mlir文件中的数据信息以及操作信息;

25、数据信息转换模块,用于保留数据信息原有的标识符,并将其数据类型转换为pytorch中的tensor数据类型;

26、依赖关系构建模块,用于创建一个空栈;遍历操作信息中所有的操作节点,将入度为0的操作节点压入空栈中,直到操作信息中没有入度为0的操作节点,得到一个保存了各个操作之间的前后顺序关系的栈;输出栈中的节点序列,得到各个操作之间的前后顺序关系,根据各个操作之间的前后顺序关系构建操作之间的依赖关系;

27、操作类型转换模块,用于依据pytorch文件与mlir文件之间的转换关系,将mlir文件中的操作类型转换为pytorch文件中的操作类型;

28、pytorch文件形成模块,用于根据转换后的数据类型、操作之间的依赖关系和转换后的操作类型,形成pytorch文件。

29、一种将mlir文件转换为pytorch文件的计算机设备,其特征在于,包括:

30、至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,

31、所述存储器存储有可被所述至少--个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一所述的将mlir文件转换为pytorch文件的方法。

32、一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至7中任一所述的将mlir文件转换为pytorch文件的方法。

33、本专利技术提供的一种将mlir文件转换为pytorch文件的方法、装置、设备及介质具有以下有益效果:

34、本专利技术将mlir文件分为数据信息和操作信息;先将数据信息的数据类型转换为pytorch中的tensor数据类型;然后再进行操作信息的转化,从而实现mlir文件到pytorch模型文件之间的转换。

35、在转化操作信息时,先创建一个空栈,接着不断地将入度为0的操作节点,即没有前驱节点的操作节点压入栈中,由此实现操作关系从前到后入栈;由于是将入度为0的操作节点一个个压入,因此对于栈中的任意一个操作节点来说,其前方的节点都比他先入栈,由此得到的栈中元素的顺序不会出现错乱。能够完全保留mlir文件中的操作关系,在转换的时候也不会出现错误,实现等价转换,转换出的神经网络模型与mlir中表示的神经网络模型在功能上是等价的。解决了现有技术中,torch-mlir项目不能实现mlir文件到pytorch模型文件之间的等价转换的问题。

本文档来自技高网...

【技术保护点】

1.一种将MLIR文件转换为PyTorch文件的方法,其特征在于,包括:

2.根据权利要求1所述的一种将MLIR文件转换为PyTorch文件的方法,其特征在于,所述提取MLIR文件中的数据信息;包括:

3.根据权利要求1所述的一种将MLIR文件转换为PyTorch文件的方法,其特征在于,所述提取MLIR文件中的操作信息;包括:

4.根据权利要求1所述的一种将MLIR文件转换为PyTorch文件的方法,其特征在于,所述提取MLIR文件中的数据信息以及操作信息后,执行以下步骤:

5.根据权利要求1所述的一种将MLIR文件转换为PyTorch文件的方法,其特征在于,所述将MLIR中的操作类型转换为PyTorch中的操作类型;包括:

6.根据权利要求1所述的一种将MLIR文件转换为PyTorch文件的方法,其特征在于,所述将MLIR中的操作类型转换为PyTorch中的操作类型后,执行以下步骤:

7.根据权利要求1所述的一种将MLIR文件转换为PyTorch文件的方法,其特征在于,所述入度为0的操作节点为没有前驱节点的操作节点。

8.一种将MLIR文件转换为PyTorch文件的装置,其特征在于,包括:

9.一种将MLIR文件转换为PyTorch文件的计算机设备,其特征在于,包括:

10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至7中任一所述的将MLIR文件转换为PyTorch文件的方法。

...

【技术特征摘要】

1.一种将mlir文件转换为pytorch文件的方法,其特征在于,包括:

2.根据权利要求1所述的一种将mlir文件转换为pytorch文件的方法,其特征在于,所述提取mlir文件中的数据信息;包括:

3.根据权利要求1所述的一种将mlir文件转换为pytorch文件的方法,其特征在于,所述提取mlir文件中的操作信息;包括:

4.根据权利要求1所述的一种将mlir文件转换为pytorch文件的方法,其特征在于,所述提取mlir文件中的数据信息以及操作信息后,执行以下步骤:

5.根据权利要求1所述的一种将mlir文件转换为pytorch文件的方法,其特征在于,所述将mlir中的操作类型转换为pytorch中的操作类型;包括:

【专利技术属性】
技术研发人员:刘彬彬杨毅赵仲秋高光雄李呈呈
申请(专利权)人:合肥工业大学
类型:发明
国别省市:

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

1