当前位置:主页 > 科技论文 > 计算机论文 >

大规模并行处理器上资源与性能优化的调度方法研究

发布时间:2020-10-18 10:02
   大规模并行处理器在空间上堆叠大量横向计算单元,通过提高并行度为许多计算带来了性能加速。以图形处理单元(Graphic Processing Unit, GPU)为硬件平台的通用计算GPU (General-purpose GPU, GPGPU)是大规模并行处理器的典型实例,加之CUDA和OpenCL等软件开发平台的推出,而备受亲睐。很多操作系统、图形图像处理软件、科学计算软件等都引入了GPGPU性能加速,且每年都有大量的关于GPGPU并行算法的学术成果被发表,不断拓展着GPGPU的应用范围、提高算法的性能。然而,以GPGPU为代表的大规模并行处理器由于体系结构和CPU之间的差异为其性能有效发挥带来了巨大的挑战。在软件方面,需要充分考虑这些差异,优化组合使用各种计算资源,才能充分发挥性能潜力;在硬件方面,需要不断完善体系结构设计,改进优化调度机制与策略,才能保证计算资源充分利用,避免过度硬件开销。而软硬件调度系统是保证GPGPU资源和性能优化的关键。分别从资源分配、执行次序、并行度三个角度对现有调度系统的各层次调度机制和策略存在的问题进行了剖析,提出相应的调度优化方法,其具体的内容如下:(一)资源分配,是指GPGPU各种软硬件资源的配给与管理机制,需要防止配给错误和访问冲突。针对GPGPU内存资源分配机制进行了研究:(1)GPGPU的多地址空间的内存模型导致了数据管理的复杂化。提出了多地址空间封装机制,将多地址副本整合成单一数据结构,在保持性能的同时简化了资源利用。(2)GPGPU特有内存和核函数之间的静态关联导致其在多线程程序中产生资源访问冲突。以纹理内存为例,提出内存资源池调度管理机制,将静态资源实现动态化分配,提高了特有内存利用率。(二)执行次序优化,是指根据依赖关系与资源需求优化线程、线程块(Cooperative thread array, CTA)、核函数等的时间分配和空间分布。针对线程和CTA的执行次序优化进行了研究:(1)探究GPGPU单指令流多线程的协同调度的设计合理性,研究了虚拟化平台的VCPU协同调度,并针对其时间片碎片化问题提出了缩小CPU作用范围的细粒度协同调度优化。该研究确认了GPGPU协同调度的合理性和GPGPU细粒度协同调度优化的性能优势。(2)负载均衡是GPGPU性能的关键,然而现有CTA调度策略由于数据局部性优化而产生了CTA分配的不均衡。设计CTA负载均衡调度优化策略CLASO,通过信用额度控制CTA分发,提高了CTA负载均衡和性能,同时模块化设计实现了对多种调度策略的兼容。(三)并行度优化,是指通过匹配源代码、核函数、线程等计算任务和硬件平台之间的并行度以减少调度开销,提高资源利用率并避免资源拥塞。针对源代码并行粒度和运行时线程级并行度的优化策略进行了研究:(1)现有GPGPU源代码并行粒度调整算法不能支持足够的语句类型。对此提出了多层次递归形式的源代码模型,并设计了自动化源代码并行粒度调整算法,实现了对包含在多层次分支、循环语句中的同步语句的支持。(2)现有线程级调度中面向CTA的并行度优化存在的调整粒度过粗和优化条件不准确等问题。提出了基于流水线停顿的Warp调度器上的细粒度动态并行度优化策略。对比CTA和Warp两个调度层次的并行度优化及其组合优化效果,Warp调度的并行度优化更具性能优势。
【学位单位】:大连理工大学
【学位级别】:博士
【学位年份】:2015
【中图分类】:TP332
【部分图文】:

内部体系,结构模型,执行单元


图2.2?SM内部体系结构模型??Kg.?2.2?The?archi化cture?model?inside?an?SM??SM指令执行使用流水线技术,如图2.3所示,包括取指、译码、发射、取参、执??行、写回六个阶段。取指和译码两个阶段主要负责从内存中读取指令和将指令翻译成相??应的控制信号。发射阶段主要负责Warp调度。每个时钟周期Warp调度器都根据各执??行单元状态和指令间依赖关系,尝试从各warp的待发射指令中选择一条指令,并送入??下一阶段。取参阶段根据指令中的寄存器下标读取各线程所需的输入参数并维护寄存器??依赖关系计分板(Scor纯oard)。执行阶段主要负责完成指令功能。这一阶段包含了不??同种类的执行单元,指令会根据类别分派到不同的执行单元。现有GPGPU包含了H种??主要的执行单元:计算核屯、包含ALU/FPU负责算术计算、SFU负责高阶函数计算、LDST??连接缓存和内存控制器负责访存操作。各执行单元内通常也包含一套流水线逻辑。由于??硬件复杂度的差异,不同的执行单元也具有不同的硬件并行度。通常来说,ALU/FPU??-16-??

模型图,指令执行,流水线,模型


 ̄??数觀爱存存II纹理缓存II龍缓存…??图2.2?SM内部体系结构模型??Kg.?2.2?The?archi化cture?model?inside?an?SM??SM指令执行使用流水线技术,如图2.3所示,包括取指、译码、发射、取参、执??行、写回六个阶段。取指和译码两个阶段主要负责从内存中读取指令和将指令翻译成相??应的控制信号。发射阶段主要负责Warp调度。每个时钟周期Warp调度器都根据各执??行单元状态和指令间依赖关系,尝试从各warp的待发射指令中选择一条指令,并送入??下一阶段。取参阶段根据指令中的寄存器下标读取各线程所需的输入参数并维护寄存器??依赖关系计分板(Scor纯oard)。执行阶段主要负责完成指令功能。这一阶段包含了不??同种类的执行单元,指令会根据类别分派到不同的执行单元。现有GPGPU包含了H种??主要的执行单元:计算核屯、包含ALU/FPU负责算术计算、SFU负责高阶函数计算、LDST??连接缓存和内存控制器负责访存操作。各执行单元内通常也包含一套流水线逻辑。由于??硬件复杂度的差异,不同的执行单元也具有不同的硬件并行度。通常来说,ALU/FPU??-16-??

模型图,核函数,模型,线程


对应的工具的角度,两者都极为相似。本节就W?CUDA为例同时兼廠OpenCL介绍??GPGPU软件编程模型。??分发给GPGPU的计算任务W函数形式定义,称为核函数(Kernel),如图2.4所示。??核函数代码规定了单个线程的计算逻辑,并通过固有变量来获得当前线程下标。线程数??量在核函数调用时通过配置参数指定。核函数的线程被姐织成H个层级:网格(Grid)、??线程块(Block或Cooperative?thread?array,?CTA)和线程(Thread)。网格代表整个核??函数的执行实例,被划分为若干CTA,而各CTA则由指定数量的线程构成。根据核函??数的计算還辑,线程和CTA的下标可选用一维、二维或H维形式(图2.3采用了二维下??标)。由于运行时WCTA为单位向各SM分发计算任务且SM之间独立运行,因此线??程间的同步操作只能在CTA内进行,而没有提供CTA之间的同步操作接口。??计算网格?綾巧??CTA?'??核函数1?i??巧国..■曝?tO.O)?(1.0)?(m,0)??(0,0)?(1,0)?带莉?^?^?^??[HQ?"■?H?\?【0.1)【1.1)??(0
【相似文献】

相关期刊论文 前10条

1 陈勇,刘心松,苏森;大规模并行处理互连结构的分析[J];地质科技管理;1994年06期

2 郑世荣,李晓峰;大规模并行处理系统互连通信的新技术研究[J];计算机研究与发展;1996年06期

3 王文义,王若雨;世界级重大挑战性课题与大规模并行处理系统[J];郑州工业大学学报;1997年04期

4 果苹;;2012年大数据市场前瞻[J];通讯世界;2012年05期

5 李国杰;高速科学计算与大规模并行机[J];计算物理;1992年04期

6 王广益;当前超级计算机的发展态势研究[J];现代计算机;1999年02期

7 ;Universal DB是否满足需求[J];每周电脑报;1997年10期

8 刘心松;基于程控SP_2开关直通的计算机系统[J];计算机工程与设计;1999年03期

9 桂文庄;;多尺度现象和大规模并行处理[J];科研信息化技术与应用;2010年04期

10 ;大规模并行超级计算机的关键技术[J];水利电力机械;2000年04期


相关博士学位论文 前1条

1 于玉龙;大规模并行处理器上资源与性能优化的调度方法研究[D];大连理工大学;2015年


相关硕士学位论文 前1条

1 郑雪梅;云平台上基于OLAP的what-if分析技术研究[D];贵州大学;2016年



本文编号:2846153

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2846153.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户86f45***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com