SIMD数据置换指令的自动生成与优化
发布时间:2020-06-20 07:25
【摘要】:为了提高多媒体、编码/解码、加密/解密等计算密集型应用的性能,越来越多的现代微处理器中集成了SIMD(Single Instruction Multiple Data)功能单元,并向原有的指令集中增加了SIMD扩展指令,以充分挖掘这些应用中蕴含的丰富数据级并行。 在理想情况下,SIMD指令能够带来很高的性能加速比,但是目前编译器对SIMD指令的利用并没有达到足够令人满意的程度,其主要原因有两个:一是SIMD指令都是寄存器-寄存器型的,操作数的宽度必须与向量寄存器的宽度一致;二是绝大多数SIMD访存单元仅支持地址连续、对齐(aligned)的存储访问。如果实际应用无法满足这两个条件,就必须插入数据置换(permutation)指令,对参与运算的数据进行重新组织,以得到符合SIMD指令要求的操作数。然而,数据置换指令的加入会带来不小的性能损失,降低程序的执行效率。本文研究并提出了减少这种性能损失的方法,并将其集成到SIMD指令的自动生成编译框架中。 通过分析现有的数据置换指令自动生成和优化方法,不难发现现有的编译策略都将置换指令的生成和优化分为两个阶段,第一个阶段生成置换指令,但其中有不少是冗余的,第二阶段再尽可能地将这些冗余的置换指令优化掉,但优化效果往往无法令人满意。 为了解决这些问题,本文首先提出了一种新的中间表示URSS(Unified Representation for Scalar and SIMD),它能够将标量指令和SIMD指令的表示统一起来。基于这种中间表示,本文设计并实现了一种自动向量化算法,在向量化的过程中仅生成非冗余的置换指令,而将其他置换指令表示为数据流图中的冲突边。最后本文提出了冲突边的识别和消除算法。上述工作已经在基于SUIF2的编译框架上实现。面向核心程序和MiBench基准程序包的测试结果表明,我们提出的方法大大减少了数据置换指令带来的性能损失。
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2010
【分类号】:TP332
【图文】:
图 1.8 子字置换单元结构图[29]些文献对 SIMD 数据置换问题进行了讨论。Nuzman 等了一种自动编译策略[26]。此外,人们也提出了其他一策略[10]。SIMD 存储访问单元已经能够支持对齐数据重矩阵元素的重组,使用专用的 diagonal 寄存器[9]和向量的进行优化。为了对 2-D 数据块中的元素进行任意重组,组指令[32]。ELITE DSP 结构中实现了数据重组[33]。究围绕与 SIMD 编译优化相关的问题展开。Rainer Leu图的指令选择算法,将传统的树模式匹配和动态规划规划相结合,最大限度地生成 SIMD 指令。还有一些研关性问题及其与传统向量化之间的差异进行详细的讨论1.4 主要工作与创新点究工作受到以下项目的支持:题“计算系统虚拟化的理论模型和体系结构研究”
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2010
【分类号】:TP332
【图文】:
图 1.8 子字置换单元结构图[29]些文献对 SIMD 数据置换问题进行了讨论。Nuzman 等了一种自动编译策略[26]。此外,人们也提出了其他一策略[10]。SIMD 存储访问单元已经能够支持对齐数据重矩阵元素的重组,使用专用的 diagonal 寄存器[9]和向量的进行优化。为了对 2-D 数据块中的元素进行任意重组,组指令[32]。ELITE DSP 结构中实现了数据重组[33]。究围绕与 SIMD 编译优化相关的问题展开。Rainer Leu图的指令选择算法,将传统的树模式匹配和动态规划规划相结合,最大限度地生成 SIMD 指令。还有一些研关性问题及其与传统向量化之间的差异进行详细的讨论1.4 主要工作与创新点究工作受到以下项目的支持:题“计算系统虚拟化的理论模型和体系结构研究”
【共引文献】
相关博士学位论文 前3条
1 姜伟华;针对实际多媒体程序和多媒体扩展指令集的SIMD编译优化[D];复旦大学;2005年
2 朱嘉华;SIMD编译优化方法研究[D];复旦大学;2005年
3 张为华;共享主存多SIMD结构编译优化及结构研究[D];复旦大学;2006年
相关硕士学位论文 前3条
1 张逸n
本文编号:2722079
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2722079.html