[发明专利]程序编译方法和装置在审
申请号: | 202110781901.9 | 申请日: | 2021-07-09 |
公开(公告)号: | CN113672232A | 公开(公告)日: | 2021-11-19 |
发明(设计)人: | 刘志康;吴凌飞;陆敬磊;徐子明;程琛 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 熊永强;李稷芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 编译 方法 装置 | ||
本申请公开了一种程序编译方法和装置,方法包括:获取第一程序;其中,第一程序包括多层循环语句,多层循环语句中每层循环语句的循环条件包括变量和变量的取值区间,多层循环语句的循环体中包括至少一个条件语句;对多层循环语句包括的第一循环语句中第一变量的取值区间进行处理,得到第二循环语句,第二循环语句中第一变量的取值区间为第一区间,第一区间为第一循环语句中第一变量的取值区间的子集,第一区间使得至少一个条件语句中的第一条件语句恒成立;基于至少一个循环语句对第一程序进行编译,以得到第一程序的编译结果,采用本申请实施例,可以在提升指令发射效率获取更高程序编译结果运行性能的同时,降低程序的编译结果中的代码长度。
技术领域
本申请涉及信息技术领域,尤其涉及一种程序编译方法和装置。
背景技术
随着人工智能技术的高速发展,传统的图形处理器(Graphics Processing Unit,GPU)和中央处理器(Central Processing Unit,CPU)已经不能满足日益增长的性能需求。因而业界的研究人员开始聚焦于人工智能(Artificial Intelligence,AI)芯片的研究以满足AI领域的性能需求。在AI系统栈上,由于硬件限制,多维数据的分块计算是必经之路,分块策略直接导致AI芯片的性能问题。AI芯片上往往要处理多维数据,而处理的多维数据在程序中是通过多层嵌套循环来表示的。在处理过程中,多维数据会被映射成一条指令,该映射过程称为张量化tensorize。
但在实际的场景中,由于多层循环嵌套中间夹杂着分支跳转指令,阻碍了tensorize过程,因而映射成指令的数目会受到一定程度限制。具体地,如图1所示,在多维数据的程序表示中,指令映射标签vmuls原始打在H_o轴下面,指令映射标签下所有程序代码会生成一条包含确定执行过程的指令,但由于if条件(即程序执行不确定)限制,在多维数据映射过程中,指令映射标签需要下移到if条件分支下,从而使生成的指令数量远远大于理论上的9条。
因此,当多维数据的切分不规则时,在多维数据映射过程中,尾块数据无法进行有效的tensorize,严重影响单指令多数据(Single Instruction,Multiple Data,SIMD)这一高效的指令发射模式的执行。
现有技术在编译过程中,将表征多维数据程序中的多层嵌套循环进行全展开(以1为单位进行展开),以消除分支跳转,从而提升指令发射效率。但是,此种全展开方式会大幅增加程序编译结果的代码长度,从而增加程序编译结果的映射时长。
发明内容
本申请实施例提供了一种程序编译方法和装置,可以在提升指令发射效率获取更高程序编译结果运行性能的同时,降低程序的编译结果中的代码长度,得到较低的程序编译结果映射时长。
第一方面,本申请提供了一种程序编译方法,该方法包括:获取第一程序;其中,所述第一程序包括多层循环语句,所述多层循环语句中每层循环语句的循环条件包括变量和所述变量的取值区间,所述多层循环语句的循环体中包括至少一个条件语句;所述多层循环语句包括第一循环语句;其中,所述第一循环语句为所述多层循环语句中的一层循环语句,所述第一循环语句的循环条件中包括的变量为第一变量,且所述第一变量为所述至少一个条件语句中的第一条件语句所包含变量中的一个;对所述第一循环语句中第一变量的取值区间进行处理,以得到与所述第一循环语句对应的至少一个循环语句;其中,所述至少一个循环语句中包括第二循环语句,所述第一循环语句和所述第二循环语句都包括所述第一变量,所述第二循环语句中第一变量的取值区间为第一区间,所述第一区间为所述第一循环语句中第一变量的取值区间的子集,所述第一区间使得所述第一条件语句恒成立;基于所述至少一个循环语句对所述第一程序进行编译,以得到所述第一程序的编译结果,所述第一程序的编译结果与所述至少一个循环语句有关。
其中,上述包含多层循环语句的第一程序可以用于表征多维数据,第一程序的编译结果可以对应为多维数据切分后的程序表示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110781901.9/2.html,转载请声明来源钻瓜专利网。