学位论文 > 优秀研究生学位论文题录展示

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

作 者: 姜伟华
导 师: 朱传琪
学 校: 复旦大学
专 业: 计算机系统结构
关键词: 多媒体扩展指令集 SIMD编译优化 可向量化操作的识别和向量化
分类号: TP391.4
类 型: 博士论文
年 份: 2005年
下 载: 199次
引 用: 0次
阅 读: 论文下载
 

内容摘要


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

全文目录


目录  3-11
摘要  11-13
Abstract  13-15
第一章 引言  15-33
  1.1 多媒体扩展指令集  15-17
  1.2 SIMD编译优化的意义  17-19
  1.3 SIMD编译优化的内容  19-26
    1.3.1 SIMD编译优化的层次  19-20
    1.3.2 SIMD编译优化的要求  20-21
    1.3.3 SIMD编译优化的主要内容  21-26
  1.4 主要的相关研究工作  26-31
    1.4.1 经典向量化  26-28
    1.4.2 相关的SIMD编译优化研究  28-31
  1.5 本文的贡献及结构安排  31-33
第二章 多媒体扩展指令集分析  33-53
  2.1 多媒体扩展与传统向量机的区别  33-37
    2.1.1 向量差异  33-35
    2.1.2 内存差异  35
    2.1.3 指令集差异  35-37
  2.2 Intel MMX/SSE/SSE2/SSE3指令集简介  37-53
    2.2.1 Intel多媒体扩展指令集发展简史  37
    2.2.2 Intel MMX/SSE/SSE2/SSE3指令简介  37-50
    2.2.3 结论  50-53
第三章 多媒体程序特性分析  53-67
  3.1 程序包简介  53-55
  3.2 多媒体程序运行时特点  55-56
  3.3 多媒体扩展指令集对多媒体程序的效果  56-58
  3.4 代码形式特点  58-65
    3.4.1 广泛使用指针进行运算  59
    3.4.2 大量的循环展开  59
    3.4.3 多媒体典型操作的变体很多  59-63
    3.4.4 使用映射数组替代复杂计算  63-64
    3.4.5 普遍使用宽数据类型  64-65
    3.4.6 各种代码形式在BMW中的出现情况  65
  3.5 结论  65-67
第四章 SIMD编译优化的框架  67-89
  4.1 传统向量化概述  67-72
  4.2 BURS代码生成技术概述  72-75
  4.3 SIMD编译优化基本思想  75-85
    4.3.1 对经典向量化算法的改进  77-79
    4.3.2 识别可向量化代码块的基本思想  79-85
  4.4 概念定义  85-87
  4.5 基本算法  87-89
第五章 代码规范化  89-109
  5.1 经典代码规范化方法  89-92
  5.2 指针变数组  92-93
  5.3 循环折叠  93-98
    5.3.1 进一步的探讨  98
  5.4 变量位宽分析  98-101
  5.5 IF-Conversion  101-103
  5.6 映射数组变换  103-109
第六章 可向量化代码块的识别与选取  109-125
  6.1 CVP_Set的计算  109-113
    6.1.1 匹配信息的计算  110-112
    6.1.2 匹配实例  112-113
  6.2 MVP的寻找和计算  113-118
    6.2.1 MVP规则示例  113-115
    6.2.2 MVP的寻找  115-118
  6.3 向量化策略的选取  118-124
  6.4 代码生成  124-125
第七章 进一步的优化  125-133
  7.1 Alignment分析  125-128
  7.2 SIMD寄存器使用分析  128-130
  7.3 规约变量的额外处理  130-131
  7.4 窥孔优化  131-133
第八章 实现与测试  133-145
  8.1 系统实现  133-134
  8.2 系统中的向量化规则  134-138
    8.2.1 简单算术运算规则  134
    8.2.2 内存访问规则  134-136
    8.2.3 MVP规则  136
    8.2.4 规约计算规则  136-137
    8.2.5 溢出控制下的运算规则  137
    8.2.6 其他辅助规则  137-138
    8.2.7 Agassiz中的规则总结  138
  8.3 测试结果  138-145
    8.3.1 测试环境与方法  138-139
    8.3.2 测试结果  139-141
    8.3.3 运行时性能指标比较  141-143
    8.3.4 映射数组的识别效果  143-145
第九章 总结与展望  145-149
  9.1 结论  145-147
  9.2 将来的工作  147-149
参考文献  149-157
发表文章目录  157-159
致谢  159-160
论文独创性声明  160
论文使用授权声明  160

相似论文

  1. SIMD编译优化技术研究,TP314
  2. 媒体处理器编译器中SIMD编译优化技术的研究与实践,TP391.41
  3. SIMD编译优化方法研究,TP314
  4. 基于FPGA的数字图像处理基本算法研究与实现,TP391.41
  5. 用于检索的人脸特征提取与匹配算法研究,TP391.41
  6. 基于FPGA的高速图像预处理技术的研究,TP391.41
  7. 2D人脸模板保护算法研究,TP391.41
  8. 导弹虚拟试验可视化技术研究,TP391.9
  9. 基于用户兴趣特征的图像检索研究与实现,TP391.41
  10. 图像拼接技术研究,TP391.41
  11. 高效精确字符串匹配算法的研究与实现,TP391.41
  12. 基于词义及语义分析的问答技术研究,TP391.1
  13. 基于三维重建的焊点质量分类方法研究,TP391.41
  14. 舌体特征的提取及融合分类方法研究,TP391.41
  15. 统计机器翻译中结构转换技术的研究,TP391.2
  16. 基于人眼检测的驾驶员疲劳状态识别技术,TP391.41
  17. 基于句法特征的代词消解方法研究,TP391.1
  18. 空中目标与背景的红外图像仿真技术研究,TP391.41
  19. 基于EPC C1G2协议的超高频RFID系统设计及仿真,TP391.44
  20. 基于智能学习的多传感器目标识别与跟踪系统研究,TP391.41
  21. 基于TMS320C6713的SPIHT图像压缩算法研究及实现,TP391.41

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机的应用 > 信息处理(信息加工) > 模式识别与装置
© 2012 www.xueweilunwen.com