[发明专利]面向异构SIMD扩展部件的自动向量化方法无效
申请号: | 201310155403.9 | 申请日: | 2013-04-28 |
公开(公告)号: | CN103279327A | 公开(公告)日: | 2013-09-04 |
发明(设计)人: | 赵荣彩;庞建民;姚远;刘鹏;索维毅 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
主分类号: | G06F9/34 | 分类号: | G06F9/34 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 陈大通 |
地址: | 450002*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 simd 扩展 部件 自动 量化 方法 | ||
技术领域
本发明涉及高性能计算自动并行化领域,特别涉及一种面向异构SIMD扩展部件的自动向量化方法。
背景技术
人类对计算能力无休止的需求,使得并行计算技术越来越受到人们的重视,总体上并行硬件技术的发展要远远快于并行软件技术的发展。SIMD扩展部件为提升程序性能提供了硬件支持,为充分发挥SIMD扩展的性能,需要充分发掘程序中的并行性,开发具有良好可扩展性的向量化程序。
如今计算问题规模庞大、计算量大,手工编写向量化程序难度较大,自动向量化技术通过分析程序中语句操作和数据的特征,识别出串行程序中可以向量化的代码部分,不需要程序员对程序进行修改就可以在编译器下进行向量化编译,使程序员摆脱繁琐及手工易错的向量化代码编写工作,提高代码的重用性。
传统向量化技术是较早使用且较为成熟的技术,其基本思想是按照循环内的数据依赖构造相应的语句依赖图,语句依赖中不在强连通分量的语句就是可以向量执行的语句,该方法不用考虑向量长度的影响,但是其方法也可用于向量长度有限的SIMD扩展。
超字并行向量化思想来源于指令级并行,以基本块为单位识别出相邻且连续的访问语句,对其中的同构语句进行打包,然后根据定义使用关系进行包扩展,最后生成比传统向量化更有效的打包方案。
模式匹配的向量化方法需要视目标程序的特征来确定匹配的模式,首先将循环内的指令组进行划分,以数据存取指令为起始节点构建树形结构,然后识别基本块内的公共子表达式,最后采用数据重组算法对其中的公共子表达式进行优化。
以上三种典型向量化方法中,传统向量化对循环进行逐层分析,当依赖为内层循环携带依赖环时无法向量化;超字并行向量化在包生成中有一定的随机性,可能导致最终的向量化策略和理想的结果不一致;模式匹配向量化仅是上述两种方法的补充。这些方法仅能对具有单一的向量长度的一种SIMD指令集生成向量化代码,其可移植性和可扩展性不强,具有一定的局限性。
发明内容
为克服现有技术中的不足,针对目前异构SIMD扩展部件具有不同向量长度和不同指令集,本发明提供一种具有可扩展性、可移植性且灵活、高效的面向异构SIMD扩展部件的自动向量化方法。
按照本发明所提供的设计方案,一种面向异构SIMD扩展部件的自动向量化方法,与特定ISA(指令集架构)指令集无关的阶段包括预优化与分析、循环展开与优化、超字并行向量化发掘,这些阶段将通过向量识别和并行性发掘,变换为包含虚拟向量指令集信息的中间表示;向量长度解引用和指令集解虚拟化进行虚实转换,变换得到包含特定SIMD指令集的中间表示,该自动向量化方法包含如下步骤:
设计虚拟向量指令集,针对不同向量长度和不同向量指令集的异构SIMD扩展部件,设计一套包括存取指令、算数运算指令、逻辑运算指令、移位指令、选择指令、比较指令和整理指令在内的七类基本指令,且与指令集无关、与向量长度无关、与数据类型无关的虚拟向量指令集,虚拟向量长度与具体平台指令集架构的长度位数无关,其值
,其中Leni为不同平台的向量长度;
该值实际ISA向量长度按2n取整的最大值,由于当前大多SIMD硬件或向量化方法支持stride(跨步)访问的向量操作,当stride为2n时具有一定的向量化收益,simd_gather和simd_scatter两种指令用来实现stride内存访问的虚拟操作,整理指令中simd_shuffle通过掩码能够将两向量任意位置的元素进行重组,具体实现的虚拟指令见表1,
表1虚拟向量指令集列表:
步骤2、预分析与优化,对能否进行基本块向量化进行可行性分析,首先
进行循环迭代次数分析,设置循环迭代次数阈值,分析语句向量化情况,
包含如下内容:
2.1、根据循环中语句可向量化指令个数与语句的指令总数的比例,首先判断不同硬件平台上是否提供该条指令所对应的向量化指令,然后,对不同的指令赋于不同的权值,通过计算语句中可向量化操作的权重,得到向量化后收益值,当该收益值大于设定的阈值时,该语句向量化;
2.2、根据循环中可向量化语句占循环中语句总数的比例,通过步骤2.2得到循环中可向量化语句占循环中语句总数的比例,当该值大于设定的阈值时,该语句向量化;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310155403.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:水下分离电连接器组件及其插头
- 下一篇:多层陶瓷电子部件及其制造方法