指令转换方法、装置及相关设备与流程
- 国知局
- 2024-09-14 14:37:54
本申请实施例涉及计算机,具体涉及一种指令转换方法、装置及相关设备。
背景技术:
1、单指令多数据(single instruction multiple data,simd)是一种并行计算的方式,即一条指令可以同时对多个数据进行操作,单指令多数据旨在发掘数据处理相关领域中程序的数据级并行。编译器的自动向量化(auto-vectorization)是基于simd的向量发掘方法之一,即自动向量化可以实现标量指令到向量指令的转换,从而可以有效提升处理器等数据处理器件的并行数据处理能力。
2、在此背景下,如何提供技术方案,以降低标量指令的向量化所受到的限制,从而提升标量指令转换为向量指令的转换数量,成为了本领域技术人员亟需解决的技术问题。
技术实现思路
1、有鉴于此,本发明实施例提供一种指令转换方法、装置及相关设备,降低标量指令的向量化所受到的限制,从而提升标量指令转换为向量指令的转换数量。
2、为实现上述目的,本发明实施例提供如下技术方案。
3、第一方面,本发明实施例提供一种指令转换方法,包括:
4、确定目标基本块,所述目标基本块基于源程序确定,且所述目标基本块包括多个目标标量指令;
5、至少根据所述多个目标标量指令的数量,确定所述目标基本块对应的目标循环展开次数;
6、基于所述目标循环展开次数对所述目标基本块进行展开,得到展开后的基本块,所述展开后的基本块包括多个展开后目标标量指令,所述多个展开后目标标量指令的数量为处理器支持的可向量化标量指令的数量的整数倍;
7、对所述展开后的基本块进行向量化处理,得到转换后的向量指令。
8、第二方面,本发明实施例提供一种指令转换装置,包括:
9、目标基本块确定模块,用于确定目标基本块,所述目标基本块基于源程序确定,且所述目标基本块包括多个目标标量指令;
10、循环展开次数确定模块,用于至少根据所述多个目标标量指令的数量,确定所述目标基本块对应的目标循环展开次数;
11、循环展开模块,用于基于所述目标循环展开次数对所述目标基本块进行展开,得到展开后的基本块,所述展开后的基本块包括多个展开后目标标量指令,所述多个展开后目标标量指令的数量为处理器支持的可向量化标量指令的数量的整数倍;
12、向量指令生成模块,用于对所述展开后的基本块进行向量化处理,得到转换后的向量指令。
13、第三方面,本发明实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有程序,所述处理器调用所述存储器中存储的程序,执行如第一方面所述的指令转换方法。
14、第四方面,本发明实施例提供一种存储介质,所述存储介质存储有程序,所述程序被执行时实现如第一方面所述的指令转换方法。
15、第五方面,本发明实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的指令转换方法。
16、本发明实施例提供的一种指令转换方法,首先,确定目标基本块,所述目标基本块基于源程序确定,且所述目标基本块包括多个目标标量指令;然后,至少根据所述多个目标标量指令的数量,确定所述目标基本块对应的目标循环展开次数;基于所述目标循环展开次数对所述目标基本块进行展开,得到展开后的基本块,所述展开后的基本块包括多个展开后目标标量指令,所述多个展开后目标标量指令的数量为处理器支持的可向量化标量指令的数量的整数倍;最后,对所述展开后的基本块进行向量化处理,得到转换后的向量指令。
17、本发明实施例所提供的指令转换方法,在实现标量指令的自动向量化处理时,针对于目标基本块,至少根据目标基本块包括的目标标量指令的数量,计算出目标基本块对应的目标循环展开次数;从而利用目标循环展开次数,对目标基本块的各个目标标量指令进行循环展开,使得展开后的基本块中的展开后目标标量指令的数量为:处理器支持的可向量化标量指令的数量的整数倍。从而,可以按照可向量化标量指令的数量,将展开后的基本块中的各个展开后目标标量指令进行划分,以合并为多个向量指令,实现展开后目标标量指令的向量化处理。可见,本发明实施例可以使得展开后的基本块中的展开后目标标量指令数量为可向量化标量指令的数量的整数倍,使得目标基本块在展开后能够实现向量化处理,降低了标量指令的向量化所受到的限制,提高了标量指令转换为向量指令的转换数量。
技术特征:1.一种指令转换方法,其特征在于,包括:
2.如权利要求1所述的指令转换方法,其特征在于,还包括:
3.如权利要求2所述的指令转换方法,其特征在于,所述根据所述多个目标标量指令的数量和所述可向量化标量指令的数量,确定所述目标基本块对应的目标循环展开次数,包括:
4.如权利要求3所述的指令转换方法,其特征在于,所述基于所述目标循环展开次数对所述目标基本块进行展开,得到展开后的基本块,包括:
5.如权利要求4所述的指令转换方法,其特征在于,所述对所述展开后的基本块进行向量化处理,得到转换后的向量指令,包括:
6.如权利要求1-5任一项所述的指令转换方法,其特征在于,所述确定目标基本块的步骤包括:
7.如权利要求6所述的指令转换方法,其特征在于,所述基于候选基本块的标量指令的数量,从候选基本块中确定目标基本块,包括:
8.如权利要求7所述的指令转换方法,其特征在于,所述转换后的向量指令包括:
9.如权利要求6所述的指令转换方法,其特征在于,所述基于候选基本块的标量指令的数量,从候选基本块中确定目标基本块,包括:
10.如权利要求9所述的指令转换方法,其特征在于,所述转换后的向量指令为:目的操作数的地址连续、但源操作数的地址不连续的向量指令。
11.一种指令转换装置,其特征在于,包括:
12.如权利要求11所述的指令转换装置,其特征在于,还包括:
13.如权利要求12所述的指令转换装置,其特征在于,所述循环展开次数确定模块,用于根据所述多个目标标量指令的数量和所述可向量化标量指令的数量,确定所述目标基本块对应的目标循环展开次数,包括:
14.如权利要求13所述的指令转换装置,其特征在于,所述目标基本块确定模块,用于基于所述目标循环展开次数对所述目标基本块进行展开,得到展开后的基本块,包括:
15.如权利要求14所述的指令转换装置,其特征在于,所述目标基本块确定模块,用于对所述展开后的基本块进行向量化处理,得到转换后的向量指令,包括:
16.如权利要求11-15任一项所述的指令转换装置,其特征在于,所述目标基本块确定模块,用于确定目标基本块,包括:
17.如权利要求16所述的指令转换装置,其特征在于,所述目标基本块确定模块,用于基于候选基本块的标量指令的数量,从候选基本块中确定目标基本块,包括:
18.如权利要求16所述的指令转换装置,其特征在于,所述目标基本块确定模块,用于基于候选基本块的标量指令的数量,从候选基本块中确定目标基本块,包括:
19.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有程序,所述处理器调用所述存储器中存储的程序,执行如权利要求1-10任一项所述的指令转换方法。
20.一种存储介质,其特征在于,所述存储介质存储有程序,所述程序被执行时实现如权利要求1-10任一项所述的指令转换方法。
21.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-10任一项所述的指令转换方法。
技术总结本发明实施例提供一种指令转换方法、装置及相关设备,所述方法,包括确定目标基本块,所述目标基本块基于源程序确定,且所述目标基本块包括地址连续的多个目标标量指令;至少根据所述多个目标标量指令的数量,确定所述目标基本块对应的目标循环展开次数;基于所述目标循环展开次数对所述目标基本块进行展开,得到展开后的基本块,所述展开后的基本块包括多个展开后目标标量指令,所述多个展开后目标标量指令的数量为处理器支持的可向量化标量指令的数量的整数倍;对所述展开后的基本块进行向量化处理,得到转换后的向量指令。本发明实施例所提供的技术方案,可降低标量指令的向量化所受到的限制,从而提升标量指令转换为向量指令的转换数量。技术研发人员:包赵泠,赖庆宽,康梦博,潘治受保护的技术使用者:海光信息技术股份有限公司技术研发日:技术公布日:2024/9/12本文地址:https://www.jishuxx.com/zhuanli/20240914/295184.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表