面向SIMD的自动并行化关键技术研究

来源 :中国人民解放军信息工程大学 解放军信息工程大学 | 被引量 : 0次 | 上传用户:gracexiu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
SIMD扩展部件以其实现成本低、部件功耗少、计算效率高等特点,逐渐成为高性能计算机的必备计算加速部件,其应用领域也从最初的多媒体处理,扩展到科学计算、信号处理、密码分析等领域。由于向量指令与底层硬件关系密切,编程人员很难写出正确高效的SIMD代码,因此用编译器实现程序的自动向量化成为必然选择。目前 Open64、Gcc、ICC和LLVM等主流编译器都实现了自动向量化功能。SIMD扩展部件具有特殊的硬件结构和并行计算方式,为了适应复杂的应用并获得更好的加速效果,SIMD在指令功能和并行宽度方面一直在不断地发展和改进。然而,面向SIMD的自动向量化方法在识别能力和优化效果方面仍然存在一些不足。为了加强向量并行识别能力,进一步发掘和优化程序中的向量并行性,本文在向量并行发掘方法及其优化技术方面进行了系统深入研究。  本研究主要内容包括:⑴提出了一种基于循环分段的嵌套循环向量化方法 simdcodegen。该方法首先分析了依赖环形成的原因,并讨论了循环分段对于消除依赖环的作用。然后在codegen的基础上,将循环分段逐层地应用于多层循环,实现了嵌套循环的向量化。虽然循环分段总是合法的,但进行分段后会带来执行代价的增加,本文设计了循环分段的有利性测试方法,来避免无效分段的实施。⑵提出了一种分段约束的SLP发掘路径优化算法。循环展开后每次迭代对应的展开单元称为一个段。本文采用分段的冗余删除方法,来保证冗余删除后段的同构性;采用了“相邻-段间”的SLP发掘方法,来约束发掘路径的范围。由于“分段冗余删除”较“全局冗余删除”保留了部分冗余的访存操作,打包后生成的向量代码往往存在访存重叠的情形,存在进一步优化空间。本文针对此情况引入了SIMD访存优化调整方法,以数据重组指令来替代重叠的向量访存指令,有效提高了程序执行效率。⑶提出了一种循环级与基本块级结合的向量化方法。该方法分析了上述两种方法适用范围,同时对程序中可能存在的向量并行特征进行分类,根据不同类别的并行特征确定了向量化任务分配方案,最后设计了混合的向量化框架来实现这种任务分配方案。为了明确目标循环并行性特征,本文给出了循环迭代间和迭代内的向量并行性检测方法。⑷提出了一种非满载使用SIMD指令的方法。研究了向量寄存器的非满载使用方式,设计了对应的非满载向量操作,实现了NEI_LOOP的向量化,然后将非满载的向量化方法用于一般循环的向量化。由于非满载的向量操作需要额外的代价,向量化并不总是有益的,因此文章同时提供了收益分析算法,仅对收益大于零的程序实施向量化。该方法不仅可以实现NEI_LOOP向量化,同时还可以解决向量化过程中的大部分非规则访存问题,如跨幅访存,一般的非连续访存等等,基本思想就是向量寄存器的非规则使用。⑸提出了一种面向部分向量化的循环分布及聚合方法。为了解决循环开销过大的问题,需要在保证循环向量并行性的基础上尽可能进行循环合并,因此提出一种面向最大聚合的拓扑排序方法,使得无环结点尽可能相邻,有环结点也尽可能相邻,最终可聚合得到尽可能少的循环。为了解决数据重用问题,设计了一种基于数据重用的凝聚图节点聚合优化方法,从寄存器重用和cache重用两方面给出了优化方法,有效增加了循环中数据复用频度。
其他文献
拒绝服务攻击(Denial of Service,DoS),尤其是分布式拒绝服务攻击(Distributed DoS,DDoS)已经成为最严重的网络安全威胁之一。由于TCP/IP协议设计之初的缺陷和因特网的开放性
网络信息发布系统是指在Internet上进行信息发布的信息系统,其特征是利用Internet的技术传输和处理信息。以数字化、网络化、智能化为特征的多媒体信息发布系统己越来越受到
随着计算机技术及人工智能的飞速发展和中国教育信息化水平的不断提高,实现考试的无纸化、网络化成为IT界和教育界关注的热点。随着经济和社会的发展和终身教育观念的普及,迫
随着机场信息化程度的不断提高,在当今大型机场的资源管理系统中,实时准确的机场业务监控系统、多主机共享的到离港控制系统、实时更新的机场运营数据库服务器、复用性强的资源
粒子群优化算法(Particle Swarm Optimization,PSO)经过十多年的研究与发展,已经成为科学研究和工程实践中重要的全局优化和复杂问题求解技术,PSO的应用几乎渗透到了任何领域,
孤立词语音识别实现简单、技术成熟,有着广泛的应用领域,是深入进行语音识别研究的基础。隐马尔可夫模型(HMM)是目前最流行的语音识别技术,许多成功的语音识别系统都是基于该技
独立分量分析(Independent Component Analysis,ICA)是一种从多元混合信号中分离出独立分量的算法,其通过运用统计学原理,揭示出混合信号中的隐藏成分和内在因子,在生物医学、声音
混淆是一种用来增加逆向分析难度的软件保护技术。开展面向逆向分析的程序关键属性混淆技术研究,对优化混淆技术的理论模型,拓展混淆技术的应用领域,以及促进软件反逆向分析技术
近年来,社交网络呈现爆炸性增长,用户活跃程度越发提高,产生的信息量也越来越大,有着对传统互联网取而代之的趋势。在这种情形下,学术界和产业界也纷纷开始研究社交网络中用户和信
互联网的发展推动了全世界的交流,需要开发出满足不同地区语言、文化、生活习惯要求的WEB应用,因此,软件的国际化已成为必须要考虑并解决的问题。然而,传统软件多使用本地化