【技术实现步骤摘要】
一种数据处理方法、装置、设备及计算机存储介质
[0001]本专利技术涉及计算机软件
,尤其涉及一种数据处理方法、装置、设备及计算机存储介质。
技术介绍
[0002]以机器学习、深度学习为代表的新一波人工智能热潮已经持续升温数年,深度学习是近年来人工智能领域的研究热点,在诸多领域获得了突破性的进展,现今有很多种深度学习框架以及支持多种深度学习框架的多种硬件平台。深度学习框架和硬件多样性给用户带来很大的好处,对于维持人工智能生态系统的健康发展至关重要,但支持多个框架和硬件需要巨大的工作量,这也给人工智能开发者带来了不小的挑战。
[0003]随着深度学习的应用越来越广,深度学习算法在不同硬件架构上训练和推理的实现效率越来越受到关注,由于深度学习有众多不同的前端和后端,因此需要一个桥梁来有效实现它们之间的优化和映射。作为程序编译过程中源代码与目标代码之间翻译的中介,IR(Intermediate Representation,中间表示)的设计对编译器来说非常关键,需要考虑从源代码到目标代码编译的完备性、编译优化的易用性 ...
【技术保护点】
【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:获取深度学习模型的中间表示;其中,所述深度学习模型为基于前端模型框架构建的模型;针对所述中间表示设置有循环展开因子;所述循环展开因子与所述中间表示在后端硬件设备执行时的信息和/或所述后端硬件设备的设备信息有关;根据所述循环展开因子对所述中间表示进行循环展开,得到优化后的中间表示;对所述优化后的中间表示进行编译,得到所述后端硬件设备可执行的目标代码,以使所述后端硬件设备执行所述目标代码,实现所述目标代码的功能。2.根据权利要求1所述的数据处理方法,其特征在于,所述中间表示在后端硬件设备执行时的信息包括所述中间表示中的M个循环结构、所述M个循环结构各自对应的迭代次数中的至少一种;M为大于1的正整数。3.根据权利要求1所述的数据处理方法,其特征在于,所述后端硬件设备的设备信息包括寄存器参数、代码体积参数、功能部件参数中的至少一种;其中,所述寄存器参数用于指示所述后端硬件设备上包含的寄存器数量;所述代码体积参数用于指示所述后端硬件设备能够运行的程序代码体积大小;所述功能部件参数用于指示所述后端硬件设备所包含的功能部件数量;所述功能部件用于表征完成运算功能的部件。4.根据权利要求1
‑
3任一项所述的数据处理方法,其特征在于,在所述获取深度学习模型的中间表示之后,所述方法还包括:针对所述中间表示设置有迭代次数阈值N,在所述中间表示的第i次循环迭代过程中,判断第i次循环迭代中计算获得的循环展开因子K
i
与第i
‑
1次循环迭代中计算获得的循环展开因子K
i
‑1是否相同;其中,i≥2,N≥2;若K
i
与K
i
‑1相同,则循环迭代过程结束,并将K
i
与K
i
‑1中的任意一个作为最终循环展开因子;若K
i
与K
i
‑1不相同,则判断是否满足i<N;若满足,则对所述中间表示进行第i+1次循环迭代,并判断第i+1次循环迭代中计算获得的循环展开因子K
i+1
与第i次循环迭代中计算获得的循环展开因子K
i
是否相同,直至当前次循环迭代中计算获得的第一循环展开因子与上一次循环迭代中计算获得的第二循环展开因子相同时,循环迭代过程结束,并将所述第一循环展开因子和所述第二循环展开因子中的任意一个作为最终循环展开因子;若不满足,则循环迭代过程结束,并分别计算相邻两次循环迭代中计算获得的循环展开因子的差值,获取所述差值中的最小差值,将所述最小差值对应的两个循环展开因子中的任意一个循环展开因子作为最终循环展开因子;则,所述根据所述循环展开因子对所述中间表示进行循环展开,得到优化后的中间表示,具体为:根据所述最终循环展开因子对所述中间表示进行循环展开,得到所述优化后的中间表示。5.根据权利要求1所述的数据处理方法,其特征在于,在所述获取深度学习模型中的中间表示之后,所述方法还包括:基于所述中间表示获取动态SCOP和静态SCOP,将所述动态SCOP转换为静态SCOP,并根
据获取到的静态SCOP和转换后的静态SCOP得到第一中间表示;其中,所述动态SCOP用于表征用多面体模型表示的程序代码,且所述动态SCOP携带有所述后端硬件设备在编译SCOP时无法识别的参数信息;所述静态SCOP用于表征用多面体模型表示的程序代码,且所述静态SCOP未携带有所述后端硬件设备在编译SCOP时无法识别的参数信息;对所述第一中间表示进行多面体优化,得到第二中间表示;则,所述根据所述循环展开因子对所述中间表示进行循环展开,得到优化后的中间表示,具体为:根据所述循环展开因子对所述第二中间表示进行循环展开,得到优化后的中间表示。6.根据权利要求5所述的数据处理方法,其特征在于,所述将所述动态SCOP转换为静态SCOP,包括:获取所述动态SCOP在所述后端硬件设备运行时的参数信息;根据获取到的参数信息对所述动态SCOP携带的所述后端硬件设备在编译SCOP时无法识别的参数信息进行调整,获得所述转换后的静态SCOP。7.根据权利要求5所述的数据处理方法,其特征在于,所述对所述第一中间表示进行多面体优化,得到第二中间表示,包括:对所述第一中间表示进行多面体建模,得到所述第一中间表示对应的迭代域、访存函数和仿射调度;其中,所述迭代域用于表征所述SCOP中的每条语句在多层循环中的多维迭代空间域;所述访存函数用于表征所述迭代域与带仿射下标的数组之间的映射关系;所述仿射调度用于表征所述迭代域与所述SCOP中每条语句的逻辑执行时间的映射关系;根据所述第一中间表示对应的迭代域、访存函数和仿射调度对所述第一中间表示进行优化,得到可以进行循环展开的所述深度学习模型的中间表示。8.一种数据处理方法,其特征在于,包括:获取目标代码和待处理图像;根据所述目标代码对所述待处理图像进行处理,得到图像处理结果;其中,所述目标代码为通过如权利要求1
‑
7任一项所述的数据处理方法得到的。9.一种数据处理装置,其特征在于,包括接收单元和处理单元:所述接收单元,用于获取深度学习模型的中间表示;其中,所述深度学习模型为基于前端模型框架构建的模型;针对所述中间表示设置有循环展开因子;所述循环展开因子与所述中间表示在后端硬件设备执行时的信息和/或所述后端硬件设备的设备信息有关;所述处理单元,用于根据所述循环展开因子对所述中间表示进行循环展开,得到优化后的中间表示;所...
【专利技术属性】
技术研发人员:阳柳,杨强,邬轩,刘勇鹏,顾剑,李文成,
申请(专利权)人:飞腾信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。