没有合适的资源?快使用搜索试试~ 我知道了~
高水平发展的平行环境-对于图形加速器:使用OPENMP实现。一个很好的选择DE REIM s ChamPA gnE-AR DE eEE学校 DOCTORALE SCIE nCETECH nOLO gIE sET SanTÉ论文提交人加布里埃尔·诺阿杰以兰斯香槟-阿登大学博士专业:计算机科学于2013年3月7日在评审团面前公开答辩,评审团成员包括:主任:Michaël Krajecki教授,兰斯香槟阿登大学联合主任:Christophe Jaillet兰斯香槟阿登大学讲师报告员:Hervé Guyennet弗朗什-孔泰大学教授Zineb HABBAS教授,洛林大学考官:Guillaume Colin-de-VerdiereCEA HPC项目经理Olivier FLAUZAC兰斯香槟大学教授ArdenneFlorin POP布加勒斯特政治技术大学讲师Adrian TATECray公司首席工程师科学和技术研究中心J谢谢你我想对兰斯香槟阿登大学教授MichaëlKRAJECKI和兰斯香槟阿登大学讲师Christophe JAILLET表示感谢,感谢他们同意指导本论文,感谢他们的可用性和他们的科学技能,这些年来我一直很欣赏如果没有他们,这项工作就很多建议。我还要感谢我的报告员弗朗什-孔泰大学教授HervéGUYENNET和洛林大学教授Zineb HABBAS报告了我的工作,以及评审团的其他成员:原子能委员会HPC项目官 员 Guillaume COLIN-DE- VERDIERE 、 兰 斯 香 槟 阿 登 大 学 教 授 OlivierFLAUZAC、布加勒斯特理工大学讲师我要感谢我的办公室同事HervéDELEAU在我工作的不同阶段进行的技术讨论我还要感谢香槟-阿登计算中心的工程师ArnaudRENARD和HervéDELEAU提供的技术和后勤支持。我要感谢数学、力学和计算机科学系的所有成员、教师、全体教职员工和博士生,我与他们我最后要感谢我的家人,我的父母,特别是科妮莉亚,因为没有他们不断的支持和鼓励,我目录导言十五I走向百万兆级机器1I.1执行模式。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...2I.1.1弗林法。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...3I.1.2 MIME体系结构模型 . . . . . . . . . . . . . . . . . . . . . . . ... ...6I.2并行机器的发展。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...8I.2.1处理器的演变。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...8I.2.2 TOP50012I.2.3前景/前瞻性14I.3加速器18I.3.1GPU(NVIDIA、ATI)18I.3.2专用加速器(ClearSpeed、CellBE、FPGA)28I.3.3L’avenir(英特尔-至强Phi).................................................................35I.4结论37II加速器的编程方法39II.1并行编程模型40II.1.1并行性的类型40II.1.2编程语言42II.2图形加速器的特定编程语言。45II.2.1CUDA- NVIDIA45VII.2.2加速并行处理- AMD............................................................................ 47II.2.3OpenCLKronos48II.3用于管理图形加速器51II.3.1岸边51号II.3.2PGI加速器53II.3.3HMPP54II.3.4OpenACC55II.3.5比较56II.3.6用于加速器的ICMP57II.4代码转换器58II.4.1并行代码生成58II.4.2加速器的代码生成59II.4.3Par4All60II.4.4KernelGen60II.5结论61III 将OpenGL代码自动转换为CUDA63代码III.1 OMPi65变压器的介绍III.1.1 操作模式66III.1.2 AST66的性能III.1.3 词汇和句法67III.1.4 OMPi 67衍生编译器III.2 CUDA语言的特性和与语法分析器的集成68III.3 代码转换方法69III.3.1 目标和一般方法69III.3.2 并行70的循环变换III.3.3 变量的可见性(私有/共享)73III.3.4 L’appel d’un kernelIII.4 实验分析80III.4.1 工具的结构...................................................................................................III.4.2 结果82III.5 改进的转换代码89III.5.1 优化的杠杆III.5.2 运行时参数的自动调整III.6 结论92IV 多GPU95IV.1 问题:管理多GPU计算96IV.2 使用OpenGL或MPI97控制GPUIV.2.1 目标问题97的描述IV.2.2 数据的划分98IV.2.3 管理CUDA99上下文IV.2.4 两种实施方式99IV.3 实验分析101IV.3.1 实验条件101IV.3.2 实施细节IV.3.3 结果和分析103IV.4 结论114结论和展望117附录1:OMPi121代码转换器文件参考文献121九图表I.1弗林 . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4I.2Flynn分类学:SISD模型。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4I.3Flynn分类学:SIMD模型。 . . . . . . . . . . . . . . . . ... ...5I.4Flynn分类学:MISD模型。 . . . . . . . . . . . . . . . . ... ...5I.5Flynn分类:MIMO模型。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...6I.6共享内存体系结构与分布式内存。. . . . . . . ...7I.7摩尔定律。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9I.8单核处理器与多核处理器的性能比较10I.9阿姆达尔定律I.10 L’évolution de la performance des calculateurs du TOP500I.11 费米与开普勒:建筑21I.12 费米与开普勒:流媒体多处理器的架构I.13 AMD Radeon HD 7970:GCN26架构I.14 GCN架构(AMD):计算单元27的详细信息I.15 L’architectureClearSpeedI.16 使用ClearSpeed 30的MTAPI.17 L’architectureI.18 电源处理器元件-CellBE 33I.19 协同处理元件-CellBE 34I.20 FPGA 34的结构...................................................................................................I.21 L’architecture Xilinx Virtex-7I.22 L’architecture Intel Xeon PhiI.23 英特尔至强Phi 37核心的结构二.1 PMP条款..............................................................................................................52III.1 for(i...)表达式的语法树示例{c[i]=[a][i]+[i];}........................................................................................68III.2 复合指令的转换III.3 内核的生成71III.4 ICMP的循环(无嵌套)72III.5 使用collapse子句嵌套的两个for循环示例73III.6 计算两个嵌套循环73III.7 计算内核中的循环标识符(两个嵌套循环已线性化的情况)73III.8 标量共享变量的变换III.9 转换III.10使用数组时语法树的变换III.11私有标量变量的变换III.12私有标量变量的转换78III.13内核调用III.14转换81III.15清理脚本:script_clear_ompi_Header.sh82III.16用于CUDA编译转换后的文件82的Mak劝阻文件III.17复合pragma86III.18平行pragma871988年实用新型转换III. 0CUDA占用率计算器IV.1 多GPU集群96IV.2 矩阵l:cij是sv向量ai *和b* j的标量e pro o dui t98..........................................................................IV.3 矩阵积(CUBLAS要求将矩阵存储在列中)98IV.4 ICMP方法:矩阵B完全保存在共享内存中100IV.5 MPI 100方法IV.6 CUDA 102定时器的使用示例IV.7 使用Malloc的ICMP的运行时间IV.8 使用Malloc的MPI的运行时间105IV.9 使用cudaHostAlloc(固定内存)的ICMP的运行时间106IV.10使用cudaHostAlloc(固定内存)的MPI的运行时间IV. 1使用cudaHostAlloc的ICMP的内存复制时间(bri-(s)和Malloc(虚线)108IV.12使用cudaHostAlloc(固定内存进行ICMP的内存和内核复制时间109IV.13两个CUDA流的110IV.14多GPU节点管理模型的有效性,取决于问题大小(运算数A.1 OMPi项目:简化的源文件依赖关系图xiii图片列表I.1共享和分布式内存体系结构的优点和缺点。... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...7I.2世界上最强大的10台超级计算机(TOP500,2012年12月I.3TOP500中的混合动力机器(2012年11月)17I.4Tesla系列的技术细节(费米和开普勒架构)21I.5AMD Radeon HD 7970 GHz25的技术细节I.6ClearSpeedCSX700 30处理器的技术细节I.7PowerXCell 8i31处理器的技术细节I.8英特尔至强Phi:技术细节36II.1主要并行代码转换工具的比较59III.1CUDA89的材料限制IV.1 执行时间问题的大小(cudaHostAlloc)111IV.2 加速(4个线程/进程与 1个线程/进程)................................................................112IV.3 效率(4个线程/进程与1个线程/进程).........................................................112IV.4 实现的性能(总功率;计算能力问题的大小-"任何人都可以构建一个快速的CPU。诀窍是建立一个快速的系统。西摩克雷xvL简介’évolution第一台被认为是超级计算机的机器,半个世纪后,橡树岭国家实验室的泰坦拥有299,008个CPU计算核心和261,632个GPU计算核心,分布在18,688个多GPU节点中,每秒能够执行它再次被用于与国防直接相关的应用(核武器模拟这场竞赛根据专家的预测,HPC领域的机器应该会突破百万兆级大关(10亿亿美元)。d’opérations par seconde) à l’horizon随着机器性能不断提高,使超级计算机受益的技术创新随后被公众所接受例如,多核处理器就是这种情况,这些处理器最初是为超级计算机保留的,现在已经变得司空见惯,以至于几乎不可能购买一台台式机或笔记本电脑,或者一部手机,因为它多年来,超级计算机能力的发展来自于处理器能力的发展,因为它们的集成度和速度都有所提高。这种发展现在受到能量消耗和散热障碍的限制。正是由于这个原因,超级计算机的计算单元数量不断增加,今天已经达到了大规模并行机器。但这种方法也产生近年来,高性能计算出现了新的趋势。它承诺通过使用混合计算使里程碑更接近百万兆级:计算由硬件加速器加速,这些加速器是专门的和超级强大的,并与更先进的计算节点中的处理器相结合。加速器是大规模并行单元,可以配备数百个专用计算单元,这些单元分为几个系列,包括图形卡和专用处理器。显卡现在在HPC领域占有非常重要的地位,这要归功于其所宣传的峰值性能,目前一张显卡的峰值性能约为几个TFlops,价格适中。图形卡的出现与对普通用户易于使用的图形界面的需求同时发生第一个视频游戏的出现进一步推动了这些协处理器的发展,因为它们在显示器中获得了越来越多的真实感和流动性。在某个时候,这些单元变得如此强大,以至于研究人员考虑到它们的功率潜力,以便将它们用于独立于任何图形职业的通用计算。早在1990年[LRDG9 0]就已经给出了令人鼓舞的结果,但一致的结论是,由于编程困难,采用这些加速器存在重大障碍,因为所有计算都必须映射到图形编程语言中。2007年,NVIDIA为其显卡提供了第一个通用编程语言;这是超级计算机世界采用这些新架构的起点,2012年达到62台混合超级计算机进入TOP500(12.4%)。L’apport 因此,然而, 特别是混合动力机器的编程提出了新的挑战。计算单元和存储器的不同层次结构使得这些体系结构难以编程。需要多层方法来管理不同节点之间、计算节点内的在本文中,我们研究了该层次结构的最后两个层次,并提出了集成多节点维度的观点从本论文一开始,我们的目标就一直是通过遵循两个互补的目标,使显卡能够很好地用于高性能计算:-我们研究的第一个领域是自动代码转换,允许从高级代码开始,将其转换为可在加速器上执行的等效低级代码。 我们选择了高级语言OpenMP,这是共享内存并行性最常用的语言,它允许通过在原始代码中添加指令来表达并行性;我们的目标是NVIDIAGPU架构,这是最常用的。在超级计算机中使用; CUDA语言的低级代码必须足够可读,以便可以对其进行修改以进行-此外,为了使多GPU架构的用户能够在良好的条件下使用它们,有必要建立适当的执行方案。 因此,必须有效地管理节点内多个图形卡和CPU之间的通信。我们使用OpenGL和MPI模型对显卡进行了本论文的其余部分是这样组织的:第三章和第四章集中在我们对本论文的贡献上,而第一章和第二章介绍了最新的技术水平,这对理解所做的选择和定义我们的工作框架是必不可少的第一章介绍了高性能计算领域的最新技术水平,以便在当前背景下正确构建我们的首先,我们介绍了关于并行机器执行模型的经典分类法(Flynn、Duncan、Young),以了解它们的演变。 为了继续讨论,我们将重点关注高性能计算硬件方面的当前基准,即著名的TOP500排名,我们正在跟踪该排名的演变,并将混合架构的出现视为实现百万兆级的一种方式。对加速器日益增长的兴趣使我们详细介绍了现有的主要硬件类型:GPU(NVIDIA和AMD)、特定的协处理器(ClearSpeed、CellBE、FPGA)以及最新的英特尔至强Phi。我们将看到, 对 加 速 器 架 构 的 深 入 了 解 对 于 利 用它 们 是 必 不 可 少 的 。第二章在软件层面上进行了过渡,特别是加速器的编程语言,与前面介绍的硬件架构密切相关。我们从并行编程语言的一般介绍开始,然后转向专门的编程语言(首先是低级编程语言,然后是高级语言)。我们将看到,每一个类别都有其优点和缺点。我们在本章的最后介绍了代码转换器,以便更好地构建我们贡献的第一个研究轴第3章详细介绍了我们的代码转换工具我们选择转换指南将集中在这两种语言上,但不会失去通用性,因为所使用的步骤同样适用于生成OpenCL代码。本章首先介绍紧接着,我们介绍了CUDA语言的特性及其集成。在工具中本章的大部分内容都集中在并行循环的转换方法上:这些元素具有最高的并行性,因此是GPU加速的良好候选我们对工具的一个限制是生成足够可读的代码,以便以后可以对其进行尽管如此,转换后的代码一些在第四章也是最后一章中,我们将对如何在单个节点内实现支持多加速器架构的环境进行比较研究在多GPU环境中管理上下文和通信是一个挑战,需要仔细执行。 我们介绍了不同的可能性并进行了比较,然后给出了有效实现所需的实现细节;在一个经典示例应用程序上的实现突出了使用共享内存编程和ICMP的优势。该方 法 是 能 够 管 理 多G P U 集 群 的 多 层 模 型 的 一 部 分 , 以 利 用 未 来 的 百 万 兆 级 架 构 。最后,我们总结了所有我走向百万兆级的总结I.1执行模式... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...2I.1.1Flynn分类3I.1.2MIME体系结构模型I.2并行机器的发展。... ... ... ... ... ... ... ... ... ... ... ... ... ...8I.2.1处理器的演变8I.2.2 TOP50012I.2.3前景/前瞻性14I.3加速器18I.3.1GPU(NVIDIA、ATI)18I.3.2专用加速器(ClearSpeed、CellBE、FPGA)28I.3.3L’avenir des architectures manycore(英特尔-至强Phi)...........35I.4结论................................................................................................................371第一章朝向散列机器的方向2我几十年前,平行治疗是一个为研究人员保留的这种看法已经逐渐改变,最近随着多核处理器的普及而被扫除,多核处理器几乎可以在当今所有的消费者计算机或移动设备(如智能手机)中使用。四核处理器已成为当今的标准配置,这给开发人员带来了更大的压力,他们必须"并行思考"以提供新功能并充分利用它们。可用性能。计算单元速度的唯一提高导致了能量障碍,逻辑上的下一步是增加计算元素,从而获得超级计算机,这是一台巨大的机器,可以包含多达数十万个协同工作的在本章中,我们将介绍随着时间的推移而出现的不同的运行时模型在这个超级强大的机器领域,有一些新来者,他们找到了自己的位置:加速器,特别是显卡。随着游戏玩家对更逼真渲染的需求推动了图形卡的快速发展,图形卡很快就成为了每秒能够执行数百亿次操作的强大架构研究人员对这些潜伏在用户机器中的加速器感兴趣,以转移它们的初始用途,使它们从事一般计算。转折点出现在2007年,当时NVIDIA显卡从那时起,图形架构变得更容易用于一般计算,这为GPU计算奠定了基础。我们将在本章的第二部分专门介绍硬件加速器(包括图形卡)的主要系列的体系结构特性,因为对目标体系结构特性的详细了解对于任何编程方法都是必不可少的,尤其是对于提供能够利用可用计算能力的代码。I.1执行的模型当考虑顺序编程领域时它允许设计独立于目标机器的程序。 我们可以列举出许多编程模型的名称:经典算法、逻辑编程、函数式编程、面向对象编程、... ... 在机器上-1. 所观察到的能量障碍既与冷却处理器的困难有关,处理器
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功