一种数据处理方法、装置、设备及计算机存储介质制造方法及图纸

技术编号:33242992 阅读:9 留言:0更新日期:2022-04-27 17:48
本发明专利技术公开了一种数据处理方法、装置、设备及计算机存储介质,所述方法包括:获取深度学习模型的第一静态中间表示;深度学习模型为基于前端模型框架构建的模型,第一静态中间表示具有图结构,图结构包括M个节点和连接不同节点的有向边,有向边上承载有静态张量数据;将第一静态中间表示转化为与所述前端模型框架无关的第二静态中间表示;对第二静态中间表示进行优化,得到第三静态中间表示;对第三静态中间表示进行编译,得到后端硬件设备可执行的目标代码,以使后端硬件设备执行目标代码,实现目标代码的功能。本发明专利技术通过对静态中间表示进行优化处理,能够实现前端框架无关以及后端平台无关,提高了中间表示的可移植性,以适用于多种硬件平台。用于多种硬件平台。用于多种硬件平台。

【技术实现步骤摘要】
一种数据处理方法、装置、设备及计算机存储介质


[0001]本专利技术涉及计算机软件
,尤其涉及一种数据处理方法、装置、设备及计算机存储介质。

技术介绍

[0002]以机器学习、深度学习为代表的新一波人工智能热潮已经持续升温数年,深度学习是近年来人工智能领域的研究热点,在诸多领域获得了突破性的进展,现今有很多种深度学习框架以及支持多种深度学习框架的多种硬件平台。深度学习框架和硬件多样性给用户带来很大的好处,对于维持人工智能生态系统的健康发展至关重要,但支持多个框架和硬件需要巨大的工作量,这也给人工智能开发者带来了不小的挑战。
[0003]随着深度学习的应用越来越广,大家越来越关心深度学习算法在不同硬件架构上训练和推理的实现效率,由于深度学习有众多不同的前端和后端,因此需要一个桥梁来有效实现它们之间的优化和映射。IR(Intermediate Representation,中间表示)是程序编译过程中,源代码与目标代码之间翻译的中介,IR的设计对编译器来说非常关键,IR要考虑从源代码到目标代码编译的完备性、编译优化的易用性和性能。因此中间表示的竞争,将是未来框架之争的重要一环。参考传统编译器设计的经验,NNVM(Neural Network Virtual Machine)、TVM(Tensor Virtual Machine)和XLA(Accelerated Linear Algebra)都开始了很好的尝试,它们都是围绕特定中间表示构建的优化和编译工具。但是它们没有在多个硬件平台和人工智能开发框架上进行适配型测试和优化,导致中间表示的可移植性较低,对于不同的硬件平台都需要重新进行优化。并且,在实际应用过程中,中间表示的种类千变万化,对中间表示进行优化处理的难度会随着中间表示中表达项规模的增长呈指数级上升。基于此,如何对中间表示进行优化是亟需解决的问题。

技术实现思路

[0004]本专利技术实施例所要解决的技术问题在于,提供一种数据处理方法、装置、设备及计算机存储介质,通过对静态中间表示进行优化处理,能够实现前端框架无关以及后端平台无关,提高了中间表示的可移植性,以适用于多种硬件平台。
[0005]第一方面,本专利技术实施例提供了一种数据处理方法,包括:
[0006]获取深度学习模型的第一静态中间表示;其中,所述深度学习模型为基于前端模型框架构建的模型,所述第一静态中间表示具有图结构,所述图结构包括M个节点和连接不同节点的有向边,所述有向边上承载有静态张量数据,M>1;
[0007]将所述第一静态中间表示转化为与所述前端模型框架无关的第二静态中间表示;
[0008]对所述第二静态中间表示进行优化,得到第三静态中间表示;
[0009]对所述第三静态中间表示进行编译,得到后端硬件设备可执行的目标代码,以使所述后端硬件设备执行所述目标代码,实现所述目标代码的功能。
[0010]本实施例通过将静态中间表示转化为与前端模型框架无关的静态中间表示,并对
转化后的静态中间表示进行优化处理,能够实现前端框架无关以及后端平台无关,提高了中间表示的可移植性,以适用于多种硬件平台。
[0011]在第一方面的一种可能的实现方式中,所述将所述第一静态中间表示转化为与所述前端模型框架无关的第二静态中间表示,包括:
[0012]对所述第一静态中间表示进行解耦,去除所述第一静态中间表示中与所述前端模型框架相关的节点和静态张量数据,得到与所述前端模型框架无关的所述第二静态中间表示。
[0013]本实施例通过将与前端模型框架相关的第一静态中间表示转化为与前端模型框架无关的第二静态中间表示,能够实现前端框架无关以及后端平台无关,提高了中间表示的可移植性,以适用于多种硬件平台。
[0014]可选的,本专利技术实施例中对所述第二静态中间表示进行优化可以采用如下几种可能的实现方式:
[0015]第一种可能的实现方式中,所述对所述第二静态中间表示进行优化,包括:
[0016]对所述第二静态中间表示中包含的节点进行融合,以将所述第二静态中间表示中具有同一属性的多个节点融合到同一个内核函数中。
[0017]本实施例通过对第二静态中间表示进行算子融合的优化,将第二静态中间表示中具有同一属性的每一组节点对应融合到同一个内核函数中,这样可以不将中间结果保存回全局内存,减少中间数据的迁移,避免频繁的来回读写。
[0018]第二种可能的实现方式中,所述对所述第二静态中间表示进行优化,包括:
[0019]获取所述第二静态中间表示中每一节点的张量操作所对应的布局要求;
[0020]根据所述布局要求对所述第二静态中间表示的静态张量数据进行数据布局转换。
[0021]本实施例通过对第二静态中间表示进行数据布局转换的优化,以优化局部访存效率。
[0022]第三种可能的实现方式中,所述对所述第二静态中间表示进行优化,包括:
[0023]对所述第二静态中间表示中包含的节点进行融合,以将所述第二静态中间表示中具有同一属性的多个节点融合到同一个内核函数中,得到至少一个融合节点;
[0024]获取每一所述融合节点的张量操作所对应的布局要求;
[0025]根据所述布局要求对融合后的第二静态中间表示的静态张量数据进行数据布局转换。
[0026]本实施例通过对第二静态中间表示进行算子融合和数据布局转换的优化,可以不将中间结果保存回全局内存,减少中间数据的迁移,避免频繁的来回读写,优化局部访存效率。
[0027]第二方面,本专利技术实施例还提供了一种数据处理方法,包括:
[0028]获取目标代码和待处理图像;
[0029]根据所述目标代码对所述待处理图像进行处理,得到图像处理结果;其中,所述目标代码为通过上述第一方面任一项所述的数据处理方法得到的。
[0030]本实施例通过对静态中间表示进行优化后再编译获得目标代码,能够提高目标代码的运行效率,从而提高图像处理效率。
[0031]第三方面,本专利技术实施例还提供了一种数据处理装置,包括接收单元和处理单元:
[0032]所述接收单元,用于获取深度学习模型的第一静态中间表示;其中,所述深度学习模型为基于前端模型框架构建的模型,所述第一静态中间表示具有图结构,所述图结构包括M个节点和连接不同节点的有向边,所述有向边上承载有静态张量数据,M>1;
[0033]所述处理单元,用于将所述第一静态中间表示转化为与所述前端模型框架无关的第二静态中间表示;对所述第二静态中间表示进行优化,得到第三静态中间表示;对所述第三静态中间表示进行编译,得到后端硬件设备可执行的目标代码,以使所述后端硬件设备执行所述目标代码,实现所述目标代码的功能。
[0034]在第三方面的一种可能的实现方式中,所述处理单元将所述第一静态中间表示转化为与所述前端模型框架无关的第二静态中间表示,具体为:
[0035]对所述第一静态中间表示进行解耦,去除所述第一静态中间表示中与所述前端模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取深度学习模型的第一静态中间表示;其中,所述深度学习模型为基于前端模型框架构建的模型,所述第一静态中间表示具有图结构,所述图结构包括M个节点和连接不同节点的有向边,所述有向边上承载有静态张量数据,M>1;将所述第一静态中间表示转化为与所述前端模型框架无关的第二静态中间表示;对所述第二静态中间表示进行优化,得到第三静态中间表示;对所述第三静态中间表示进行编译,得到后端硬件设备可执行的目标代码,以使所述后端硬件设备执行所述目标代码,实现所述目标代码的功能。2.如权利要求1所述的数据处理方法,其特征在于,所述将所述第一静态中间表示转化为与所述前端模型框架无关的第二静态中间表示,包括:对所述第一静态中间表示进行解耦,去除所述第一静态中间表示中与所述前端模型框架相关的节点和静态张量数据,得到与所述前端模型框架无关的所述第二静态中间表示。3.如权利要求1所述的数据处理方法,其特征在于,所述对所述第二静态中间表示进行优化,包括:对所述第二静态中间表示中包含的节点进行融合,以将所述第二静态中间表示中具有同一属性的多个节点融合到同一个内核函数中。4.如权利要求1所述的数据处理方法,其特征在于,所述对所述第二静态中间表示进行优化,包括:获取所述第二静态中间表示中每一节点的张量操作所对应的布局要求;根据所述布局要求对所述第二静态中间表示的静态张量数据进行数据布局转换。5.如权利要求1所述的数据处理方法,其特征在于,所述对所述第二静态中间表示进行优化,包括:对所述第二静态中间表示中包含的节点进行融合,以将所述第二静态中间表示中具有同一属性的多个节点融合到同一个内核函数中,得到至少一个融合节点;获取每一所述融合节点的张量操作所对应的布局要求;根据所述布局要求对融合后的第二静态中间表示的静态张量数据进行数据布局转换。6.一种数据处理方法,其特征在于,包括:获取目标代码和待处理图像;根据所述目标代码对所述待处理图像进行处理,得到图像处理结果;其中,所述目标代码为通过如权利要求1

5中任一项所述的数据处理方法得到的。7.一种数据处理装置,其特征在于,包括接收单元和处理单元:所述接收单元,用于获取深度学习模型的第一静态中间表示;其中,所述深度学习模型为基于前端模型框架构建的模型,所述第一静态中间表示具有图结构,所述图结构包括M个节点和连接不同节点的有向边,所述有向边上承载有静态张量数据,M>1;所述处理单元,用于将所述第一静态中间表示转化为与所述前端模型框架无关的第...

【专利技术属性】
技术研发人员:阳柳杨强邬轩李文成顾剑刘勇鹏
申请(专利权)人:飞腾信息技术有限公司
类型:发明
国别省市:

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

1