针对实际多媒体程序和多媒体扩展指令集的SIMD编译优化

针对实际多媒体程序和多媒体扩展指令集的SIMD编译优化

论文题目: 针对实际多媒体程序和多媒体扩展指令集的SIMD编译优化

论文类型: 博士论文

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

作者: 姜伟华

导师: 朱传琪

关键词: 多媒体扩展指令集,编译优化

文献来源: 复旦大学

发表年度: 2005

论文摘要: 随着多媒体应用的日趋广泛,几乎所有的通用处理器厂商都为其处理器增加了多媒体扩展。这些多媒体扩展都利用了多媒体程序中广泛存在的SIMD并行性,从而在指令集上表现为SIMD指令集。为了节约成本,处理器厂商一般都重用现有的处理器资源(数据通路、内存接口等等)来实现这些SIMD指令集。 目前使用这些指令集的主要手段是程序员在编译器的有限支持下,费时费力的手工书写SIMD指令。为了能够让这些指令集被充分利用,我们需要编译器自动的根据串行代码生成SIMD指令(称为SIMD编译优化)。 这种优化和传统的针对向量处理器的自动向量化非常类似。但到目前为止,这方面的研究对于实际的多媒体程序能够取得性能加速的并不多。 本文首先从多媒体扩展指令集和多媒体实际程序两个角度去分析SIMD编译优化的机遇和问题所在。我们发现:在现有的处理器架构下,SIMD指令和其对应的标量指令相比,并不一定具有性能优势。多媒体扩展指令集最能产生性能加速的方面是其对小数据类型运算和多媒体程序中常见但比较复杂运算(多媒体典型操作)的SIMD支持上。 而妨碍SIMD编译优化的是以下几个问题: 1.多媒体扩展指令集和传统向量指令集存在一些根本的不同,从而使得要根据指令支持和性能评估来向量化代码块的语句。 2.多媒体源程序中复杂的代码形式,妨碍了可向量化操作的识别。 3.各种多媒体典型操作的变化多样。以前是通过为每种代码形式准备一个专门的识别模块来实现特定操作(idiom)的识别的。但对于多媒体程序来说,这种方法是不可行的。这是因为:一方面识别模块数量大大膨胀,使得编译器的书写和移植都变得很困难;另一方面,我们很难枚举出所有的可能形式来,所以识别的效果也并不一定好。 然后,本文通过扩展传统向量化中基于数据相关性的向量化算法,引入专门的代码规范化和识别模块来解决这些问题。 首先,我们通过代码规范化步骤来最大限度的将多媒体程序的源代码规范化,从而方便识别和向量化。这些规范化包括:循环规范化、循环折叠、指针变数组、变量值域分析、映射数组变换等等。其中一种最重要的规范化方法是

论文目录:

目录

摘要

Abstract

第一章 引言

1.1 多媒体扩展指令集

1.2 SIMD编译优化的意义

1.3 SIMD编译优化的内容

1.3.1 SIMD编译优化的层次

1.3.2 SIMD编译优化的要求

1.3.3 SIMD编译优化的主要内容

1.4 主要的相关研究工作

1.4.1 经典向量化

1.4.2 相关的SIMD编译优化研究

1.5 本文的贡献及结构安排

第二章 多媒体扩展指令集分析

2.1 多媒体扩展与传统向量机的区别

2.1.1 向量差异

2.1.2 内存差异

2.1.3 指令集差异

2.2 Intel MMX/SSE/SSE2/SSE3指令集简介

2.2.1 Intel多媒体扩展指令集发展简史

2.2.2 Intel MMX/SSE/SSE2/SSE3指令简介

2.2.3 结论

第三章 多媒体程序特性分析

3.1 程序包简介

3.2 多媒体程序运行时特点

3.3 多媒体扩展指令集对多媒体程序的效果

3.4 代码形式特点

3.4.1 广泛使用指针进行运算

3.4.2 大量的循环展开

3.4.3 多媒体典型操作的变体很多

3.4.4 使用映射数组替代复杂计算

3.4.5 普遍使用宽数据类型

3.4.6 各种代码形式在BMW中的出现情况

3.5 结论

第四章 SIMD编译优化的框架

4.1 传统向量化概述

4.2 BURS代码生成技术概述

4.3 SIMD编译优化基本思想

4.3.1 对经典向量化算法的改进

4.3.2 识别可向量化代码块的基本思想

4.4 概念定义

4.5 基本算法

第五章 代码规范化

5.1 经典代码规范化方法

5.2 指针变数组

5.3 循环折叠

5.3.1 进一步的探讨

5.4 变量位宽分析

5.5 IF-Conversion

5.6 映射数组变换

第六章 可向量化代码块的识别与选取

6.1 CVP_Set的计算

6.1.1 匹配信息的计算

6.1.2 匹配实例

6.2 MVP的寻找和计算

6.2.1 MVP规则示例

6.2.2 MVP的寻找

6.3 向量化策略的选取

6.4 代码生成

第七章 进一步的优化

7.1 Alignment分析

7.2 SIMD寄存器使用分析

7.3 规约变量的额外处理

7.4 窥孔优化

第八章 实现与测试

8.1 系统实现

8.2 系统中的向量化规则

8.2.1 简单算术运算规则

8.2.2 内存访问规则

8.2.3 MVP规则

8.2.4 规约计算规则

8.2.5 溢出控制下的运算规则

8.2.6 其他辅助规则

8.2.7 Agassiz中的规则总结

8.3 测试结果

8.3.1 测试环境与方法

8.3.2 测试结果

8.3.3 运行时性能指标比较

8.3.4 映射数组的识别效果

第九章 总结与展望

9.1 结论

9.2 将来的工作

参考文献

发表文章目录

致谢

论文独创性声明

论文使用授权声明

发布时间: 2005-09-19

参考文献

  • [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]. 魏帅.解放军信息工程大学2012
  • [2].SIMD自动向量识别及代码调优技术研究[D]. 姚远.解放军信息工程大学2012
  • [3].面向非多媒体程序的SIMD向量化方法及优化技术研究[D]. 李玉祥.中国科学技术大学2008
  • [4].前瞻多线程编译优化技术的研究与实现[D]. 邓鹍.国防科学技术大学2001
  • [5].面向媒体处理器可重定目标编译器的设计研究[D]. 琚小明.浙江大学2004
  • [6].数据局部性及其编译优化技术研究[D]. 夏军.国防科学技术大学2004
  • [7].OpenMP编译与优化技术研究[D]. 陈永健.清华大学2004
  • [8].SIMD编译优化方法研究[D]. 朱嘉华.复旦大学2005
  • [9].动态翻译和优化若干关键技术研究[D]. 李剑慧.复旦大学2006
  • [10].共享主存多SIMD结构编译优化及结构研究[D]. 张为华.复旦大学2006

标签:;  ;  

针对实际多媒体程序和多媒体扩展指令集的SIMD编译优化
下载Doc文档

猜你喜欢