SIMD编译优化方法研究

SIMD编译优化方法研究

论文题目: SIMD编译优化方法研究

论文类型: 博士论文

论文专业: 计算机系统结构

作者: 朱嘉华

导师: 朱传琪,臧斌宇

关键词: 多媒体应用,单指令多数据指令集,编译优化

文献来源: 复旦大学

发表年度: 2005

论文摘要: 随着多媒体应用在计算领域中的重要性日趋显著,为了在多媒体应用中获得更为出色的性能表现,几乎所有的通用处理器生产厂商都为他们的处理器集成了一个或多个多媒体扩展部件。由于多媒体应用的核心代码往往具有高度的可并行性,并且对计算精度的要求远低于通用处理器所提供的计算能力,因此这些多媒体扩展部件往往以通用处理器已有的计算资源为基础,通过一系列整合后,以向量部件的形式出现。而相应的扩展指令集则以单指令多数据(Single Instruction Multi Data)的向量指令为主,我们将这些指令称作“SIMD多媒体扩展指令”,简称“SIMD指令”,同时,我们称这些多媒体扩展部件为SIMD部件。 目前,程序员只能通过编译器有限的支持来使用各种SIMD指令,例如通过嵌入汇编代码,或者使用编译器提供的内部函数(intrinsic function)等手段在代码中显式地使用SIMD部件的指定计算功能。这些手段的使用要求程序员深入了解SIMD部件的体系结构,并且具备基本的向量化程序开发能力,大大提高了多媒体程序开发的难度。一方面,由于各种处理器中集成的SIMD部件及相关的SIMD指令各不相同,针对不同SIMD部件开发的代码也不完全相同,从而导致了代码的可重用程度较低。为了降低开发的难度,提高代码的可重用程度,我们必须加强编译器对SIMD扩展指令集的支持,使之能够利用SIMD指令自动优化高级语言编写的多媒体代码,编译器的这一功能被称作SIMD编译优化。 虽然,SIMD编译优化技术隶属于向量化技术,然而,由于通用处理器中集成的多媒体部件与传统的向量处理器之间存在着显著的差异,致使传统的向量化技术无法被简单地移植于SIMD编译优化中。迄今为止,只有少数商业编译器(如ICC8.0)能够对个别多媒体程序实施有效地SIMD优化。而在学术界,针对SIMD编译的研究往往过于理想化,而无法提高真实多媒体应用的性能。 本文阐述了将传统的向量化方法运用于SIMD编译优化中的可能性与潜在的障碍。并以此为基础,展开了SIMD编译优化技术的研究,提出了多项能够显著提高代码性能的编译优化技术。并以开放源代码(Open Source)编译器Gcc3.5,以及并行编译平台Aggassiz为基础实现了SIMD优化编译的原型系统。其中,主要的工作与创新包括: 1.详细研究了当前常见的多媒体应用的核心代码以及流行的SIMD部件的体系结构,指出了SIMD多媒体编译优化技术与传统向量化方法的共同点与重要区别。 2.针对向量化技术中常用的位宽分析无法适应SIMD编译的需求,提出了基于双向数据流分析的有效位分析方法,为SIMD编译优化控制数据宽度、提高并行度提供了必要的分析基础。 3.由于SIMD微处理器体系结构的多媒体扩展与高级语言中的整数扩展规则有不协调之处,严重影响了程序的执行效率。为此,我们提出溢出控制方法,分别在饱和计算模式和封闭计算模式上解决了这一问题。 4.我们针对SIMD扩展,解决了一阶线性递归饱和计算的向量化问题,避免了在向量部件与串行部件之间交换数组,提高了计算效率。此外我们还提出了周期常量的识别以及变化周期的求解方法,对存在周期常量的多媒体应用程序扩大了可向量化范围。 5.以Gcc3.5与Aggassiz编译系统为基础实现了两个编译原型系统,并利用这两个原型系统对本文提出的分析与优化技术进行了正确性验证与优化效果分析。 综合来说,本文以提高SIMD多媒体编译优化能力为出发点,对其中若干关键技术进行深入研究,着重讨论了如何提高分析精度以适应SIMD编译需求,以及如何在饱和模式下开发潜在并行性的方法等问题。并通过实验验证了研究成果的正确性与有效性。

论文目录:

目录

插图目录

表目录

摘要

ABSTRACT

第一章 引言

§1.1 多媒体应用

§1.2 SIMD多媒体扩展——基于寄存器的向量化计算

§1.3 SIMD扩展的实际应用

§1.4 本文的工作

§1.5 全文结构

第二章 编译优化中的向量化方法

§2.1 数据的依赖关系分析

§2.1.1 循环中的数据依赖关系

§2.1.2 依赖关系的GCD分析方法

§2.2 向量化代码生成

§2.3 反相关与输出相关的消除

§2.4 标量扩张

§2.5 循环条块化

第三章 向量化方法在SIMD优化中所遇到的障碍

§3.1 BERKELEY MULTIMEDIA WORKLOAD

§3.2 数组与指针的应用

§3.3 循环的手工展开

§3.4 高级语言标准与SIMD扩展的冲突

§3.4.1 整数扩展规则

§3.4.2 饱和计算模式

§3.5 映射表

§3.6 SIMD扩展的缺陷

§3.7 小结

第四章 SIMD编译优化的基本功能

§4.1 识别复合计算

§4.2 消除条件跳转

§4.3 数据引用方式变换

第五章 有效位分析

§5.1 SIMD指令并行度与相关优化研究

§5.2 针对SIMD代码并行度的深入优化

§5.3 深入优化分析与有效位区间

§5.4 有效位分析方法

§5.5 有效位分析与位宽分析比较

第六章 溢出控制

§6.1 SIMD构架与INTEGER PROMOTION造成的额外开销

§6.2 封闭模式下的溢出控制方法

§6.2.1 基本表达式变换

§6.2.2 表达式化简

§6.3 饱和模式下的溢出控制方法

§6.3.1 条件结合律

§6.3.2 基于条件结合率的表达式变形

§6.3.3 溢出控制

§6.3.4 值域检查

第七章 其他优化方法

§7.1 周期常量展开

§7.1.1 周期常量识别的差分方程方法

§7.1.2 差分方程有周期解的充分条件

§7.1.3 周期常量识别与优化

§7.2 SIMD编译优化中的一阶线性递归

§7.2.1 一阶线性递归计算

§7.2.2 基于交换律与结合律的一阶线性递归计算向量化

§7.2.3 饱和计算模式

§7.2.4 一阶线性递归饱和计算的向量化

§7.3 函数嵌入

§7.4 串行优化方法

第八章 系统实现

§8.1 SIMD编译优化的实现

§8.2 源到源的编译器AGASSIZ

第九章 实验与数据

§9.1 实验的系统平台

§9.2 GCC3.5-V的SIMD优化效果

§9.3 AGASSIZ的SIMD优化效果

§9.4 单项SIMD优化效果

§9.4.1 Adpcm中的SIMD编译优化

§9.4.2 G721/723中的SIMD编译优化

§9.5 小结

第十章 总结与展望:

§10.1 创新与贡献

§10.2 将来的研究方向

参考文献

发表文章目录

致谢辞

发布时间: 2007-06-28

参考文献

  • [1].针对实际多媒体程序和多媒体扩展指令集的SIMD编译优化[D]. 姜伟华.复旦大学2005
  • [2].共享主存多SIMD结构编译优化及结构研究[D]. 张为华.复旦大学2006
  • [3].多重循环SIMD向量化方法及性能优化技术研究[D]. 侯永生.解放军信息工程大学2014
  • [4].SIMD自动向量识别及代码调优技术研究[D]. 姚远.解放军信息工程大学2012
  • [5].面向非多媒体程序的SIMD向量化方法及优化技术研究[D]. 李玉祥.中国科学技术大学2008
  • [6].面向SIMD的向量化算法及重组技术研究[D]. 魏帅.解放军信息工程大学2012
  • [7].基于运行时的程序执行模型研究[D]. 李世胜.中国科学技术大学2010
  • [8].针对不规则应用的图形处理器资源调度关键技术研究[D]. 穆帅.清华大学2013

相关论文

  • [1].面向非多媒体程序的SIMD向量化方法及优化技术研究[D]. 李玉祥.中国科学技术大学2008
  • [2].数据局部性及其编译优化技术研究[D]. 夏军.国防科学技术大学2004
  • [3].OpenMP编译与优化技术研究[D]. 陈永健.清华大学2004
  • [4].针对实际多媒体程序和多媒体扩展指令集的SIMD编译优化[D]. 姜伟华.复旦大学2005
  • [5].基于机器学习的编译优化适应性研究[D]. 刘章林.中国科学院研究生院(计算技术研究所)2006
  • [6].指令级并行编译的关键技术研究[D]. 吴承勇.中国科学院研究生院(计算技术研究所)2000
  • [7].多线程低功耗编译优化技术研究[D]. 赵荣彩.中国科学院研究生院(计算技术研究所)2002
  • [8].并行化编译器中并行程序自动生成和性能优化技术研究[D]. 张平.解放军信息工程大学2006
  • [9].动态翻译和优化若干关键技术研究[D]. 李剑慧.复旦大学2006
  • [10].共享主存多SIMD结构编译优化及结构研究[D]. 张为华.复旦大学2006

标签:;  ;  ;  

SIMD编译优化方法研究
下载Doc文档

猜你喜欢