面向异构多核处理器并行化编译中的数据优化
发布时间:2017-09-19 16:16
本文关键词:面向异构多核处理器并行化编译中的数据优化
更多相关文章: 异构多核处理器 并行化编译 OpenACC 数据优化 循环分块 分块交叉传输
【摘要】:近年来,异构多核处理器迅速发展,并已逐渐应用于高性能计算领域。异构多核处理器在单芯片上集成了不同结构的处理器核,可以将不同类型的任务分配给不同的处理器核,执行任务更有效率,可以更优的利用资源。但同时也带来了更多挑战,比如编程问题、性能优化问题。这些问题的解决,是发挥异构多核处理器的性能优势的关键。运用并行化编译技术是解决编程和性能问题的一条有效途径。本课题选择OpenACC作为异构多核处理器的编程模型,基于Open64开发了一个面向异构多核处理器的“源-源”并行化编译系统Auto-ACC,用于实现OpenACC并行程序的自动生成。异构多核处理器通常有多层次的存储系统,数据的存储和传输优化是面向异构多核处理器并行化编译中的关键技术。本文对数据优化进行了深入的研究,主要研究内容和创新点有:(1)完善了面向异构多核处理器的数据优化架构。基于数据优化架构中已有的数组分块方法,设计并实现了循环分块优化方法,有效改善了原有数组分块方法在访问数组较多且访问方式复杂时复杂度高的问题,而且可以有效改善程序的数据局部性。并在数据优化架构中设计并实现了分块交叉数据传输方式,使数据传输更加准确高效。(2)提出了面向异构多核处理器的循环分块方法。循环分块是提高程序数据局部性的常用方法,本文提出的循环分块方法通过在程序中添加编译指示实现,跟以往的基于程序变换的分块方法相比,无需进行复杂的程序数据依赖关系分析,更加简单高效,而且也不需要嵌套循环是可置换循环,使用范围更广。在此基础上,提出了面向异构多核处理器的循环分块子句生成算法,并在Auto-ACC中进行了实现。(3)实现了面向异构多核处理器的分块交叉数据传输。通过对OpenACC的数据拷贝子句进行扩展,实现了用OpenACC编译指示指导的分块交叉数据传输。并基于程序的多面体表示,在Auto-ACC中实现了扩展数据拷贝子句的自动生成。分块交叉数据传输能够在循环分块的基础上,实现数据块更加精确的传输,提高了设备内存的利用率并减少了冗余的数据传输。本文提出的相关数据优化方法已在Auto-ACC系统中实现,测试结果表明了方法的有效性。
【关键词】:异构多核处理器 并行化编译 OpenACC 数据优化 循环分块 分块交叉传输
【学位授予单位】:解放军信息工程大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP332;TP314
【目录】:
- 摘要4-5
- Abstract5-12
- 第一章 绪论12-26
- 1.1 异构多核处理器12-15
- 1.1.1 异构多核处理器的发展12-13
- 1.1.2 异构体系结构13-14
- 1.1.3 异构多核处理器面临的挑战14-15
- 1.2 Open ACC编程模型15-19
- 1.2.1 异构编程模型15-16
- 1.2.2 Open ACC编程模型概述16-17
- 1.2.3 Open ACC执行模型17
- 1.2.4 Open ACC存储模型17-18
- 1.2.5 Open ACC程序编译流程18-19
- 1.3 并行化编译19
- 1.4 课题来源19-20
- 1.5 Auto-ACC并行编译系统20-22
- 1.6 研究内容22
- 1.7 论文组织结构22-23
- 1.8 基本术语23-26
- 第二章 面向异构多核处理器的数据优化架构26-36
- 2.1 相关研究26-27
- 2.2 数据流分析27-30
- 2.2.1 定义-使用图27-28
- 2.2.2 局部数据流分析28
- 2.2.3 全局数据流分析28-29
- 2.2.4 过程间数据流分析29-30
- 2.3 数据优化架构30-35
- 2.3.1 数组转置31-33
- 2.3.2 数据传输合并33-34
- 2.3.3 数据缓存34-35
- 2.4 本章小结35-36
- 第三章 面向异构多核处理器的循环分块36-48
- 3.1 问题的提出36
- 3.2 相关研究36-37
- 3.3 循环分块子句的引入37-39
- 3.4 循环分块子句生成算法39-44
- 3.4.1 问题的数学模型39-40
- 3.4.2 数据重用40-43
- 3.4.3 算法的具体实现43-44
- 3.5 实例分析44-46
- 3.6 本章小结46-48
- 第四章 面向异构多核处理器的分块交叉数据传输48-62
- 4.1 研究基础48
- 4.2 分块交叉的数据传输48-54
- 4.2.1 Open ACC数据拷贝子句49
- 4.2.2 分块规则数组区域49-50
- 4.2.3 分块交叉数据传输50-54
- 4.3 扩展数据拷贝子句的自动生成54-60
- 4.3.1 多面体模型程序表示54-55
- 4.3.2 单个数组引用的分块规则数组区域求解55-56
- 4.3.3 分块规则数组区域的合并运算56-59
- 4.3.4 数据拷贝子句的生成59-60
- 4.4 本章小结60-62
- 第五章 测试与实验分析62-70
- 5.1 测试环境和测试程序62-64
- 5.1.1 硬件平台62-63
- 5.1.2 软件环境63
- 5.1.3 测试用例63-64
- 5.2 循环分块测试64-66
- 5.2.1 测试方法64
- 5.2.2 分块方案测试64
- 5.2.3 不同规模测试64-65
- 5.2.4 加速比提升测试65-66
- 5.3 分块交叉传输测试66-67
- 5.3.1 测试方法66
- 5.3.2 分块交叉传输效果测试66
- 5.3.3 自动生成方法测试66-67
- 5.4 整体性能测试67-68
- 5.4.1 测试方法68
- 5.4.3 测试结果68
- 5.5 本章小结68-70
- 第六章 结论70-72
- 一、工作总结70
- 二、展望与计划70-72
- 致谢72-74
- 参考文献74-78
- 作者简历78
【参考文献】
中国期刊全文数据库 前6条
1 刘晓娴;黄品丰;;面向异构系统的OpenMP程序自动生成[J];信息工程大学学报;2012年04期
2 曹倩;胡长军;张云星;朱于畋;;一种面向非规则引用的Cell多核处理器自适应Cache行策略[J];计算机学报;2011年05期
3 刘俊;刘志祥;;应用Amdahl定律对多核处理器性能的分析[J];信息技术;2010年06期
4 张春元;文梅;伍楠;任巨;管茂林;何义;;流体系结构技术发展探讨[J];国防科技大学学报;2009年05期
5 杜静;敖富江;唐滔;杨学军;;流处理器上基于参数模型的长流分段技术[J];软件学报;2009年09期
6 银波;徐典;安亦然;陈耀松;;Aerodynamic optimization of 3D wing based on iSIGHT[J];Applied Mathematics and Mechanics(English Edition);2008年05期
,本文编号:882639
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/882639.html