[发明专利]基于SIMD扩展部件的嵌套循环向量并行的实现方法及其装置有效
| 申请号: | 201710341195.X | 申请日: | 2017-05-16 |
| 公开(公告)号: | CN107193535B | 公开(公告)日: | 2019-11-08 |
| 发明(设计)人: | 李颖颖;庞建民;徐金龙;韩林;李雁冰;王琦 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
| 代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 周艳巧 |
| 地址: | 450000 河*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 并行化 程序区域 分段 扩展部件 并行性 嵌套的 并行 高性能计算 单层循环 嵌套循环 向量 嵌套 并行化处理 测试 测试参数 负载均衡 向量扩展 性能损耗 性能优化 重要意义 线程 应用 | ||
本发明涉及一种基于SIMD扩展部件的嵌套循环向量并行的实现方法及其装置,该方法包含:通过设定破环测试参数对待并行化程序区域进行依赖环破除测试,将SIMD扩展部件对应于待并行化程序区域中循环的局部并行,通过循环分段发掘待并行化程序区域中单层循环局部并行性;将循环分段依次应用在循环嵌套的每一层循环,对待并行化程序区域中整个循环嵌套进行SIMD并行化处理。本发明通过依赖环破除测试,减少不必要的循环分段造成的性能损耗,充分发掘单层循环的局部并行性,循环分段依次应用于循环嵌套的每一层循环实现整个循环嵌套的SIMD并行化,充分发挥SIMD短向量扩展部件的并行性,实现高性能计算线程间负载均衡、性能优化,对高性能计算具有重要意义。
技术领域
本发明属于高性能计算并行化处理技术领域,特别涉及一种基于SIMD扩展部件的嵌套循环向量并行的实现方法及其装置。
背景技术
人类对计算能力无休止的需求,使得并行计算技术越来越受到人们的重视,总体上并行硬件技术的发展要远远快于并行软件技术的发展。SIMD扩展部件为提升程序性能提供了硬件支持,为充分发挥SIMD扩展的性能,需要充分发掘程序中的并行性,开发具有良好可扩展性的向量化程序。
虽然SIMD扩展部件和向量机都属于单指令多数据流并行模式,但两者的体系结构在设计原则和硬件实现上有较大差异。具体表现为:1、SIMD扩展部件受限于功能部件集成数量和数据总线的宽度,其向量长度远远小于向量机,它能同时处理的数据个数是有限的。而向量机只要操作允许,向量长度可以不受限制。2、SIMD扩展部件的所有操作大都是在向量寄存器上执行的,通过向量装载指令将内存中的向量数据存放到向量寄存器,然后执行向量操作,再将向量结果写到内存中。而向量机可以直接在向量数据上进行运算。3、SIMD部件与标量执行部件共用一个指令缓存和指令队列,SIMD指令之间是串行的。而向量机具有独立的指令部件,可向多个执行单元发射不同的向量指令。以上差异的第一条使得向量机一般采用向量全长的数据加工方式,一次向量操作将要从头到尾执行全部数据的运算,称之为全局并行;而SIMD扩展部件一般采用分段的数据加工方式,每次向量操作只执行一小段数据的运算,称之为局部并行。图1描述循环迭代执行时全局并行与局部并行时的区别。
Kennedy等人最初提出了针对多层循环的向量代码生成方法codegen,实际上是面向向量机的全局并行性的一种向量化方法。这种方法并不能直接应用于当前主流的SIMD短向量扩展部件。因此,当前优化编译器中实际采用的向量化方法都在传统方法的基础上考虑了SIMD的局部并行特性,同时为了简化算法,一般仅实现了最内层循环的向量化(或次外层循环的向量化)。上述的方法分别实现了“嵌套循环的全局并行”和“单层循环的局部并行”的发掘。但目前并没有一个好的方法来发掘高性能计算并行处理中的“嵌套循环局部并行性”。
发明内容
针对现有技术中的不足,本发明提供一种基于SIMD扩展部件的嵌套循环向量并行的实现方法及其装置,针对SIMD扩展部件特征,通过分段技术对嵌套循环局部并行性发掘,实现整个循环嵌套的SIMD并行化,有效保证高性能计算线程间负载均衡,实现性能优化。
按照本发明所提供的设计方案,一种基于SIMD扩展部件的嵌套循环向量并行的实现方法,包含:通过设定破环测试参数对待并行化程序区域进行依赖环破除测试,将SIMD扩展部件对应于待并行化程序区域中循环的局部并行,通过循环分段发掘待并行化程序区域中单层循环局部并行性;将循环分段依次应用在循环嵌套的每一层循环,对待并行化程序区域中整个循环嵌套进行SIMD并行化处理。
上述的,通过设定破环测试参数对待并行化程序区域进行依赖环破除测试中,破坏测试参数包含循环层及分段长度,设定分段长度VF,通过分段长度VF对待并行化程序区域中存在的依赖环进行破环标记。
上述的,将循环分段依次应用在循环嵌套的每一层循环,对待并行化程序区域中整个循环嵌套进行SIMD并行化处理中:通过循环分段从外层到内层依次应用于整个循环嵌套,包含如下内容:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710341195.X/2.html,转载请声明来源钻瓜专利网。





