免费论文查重: 大雅 万方 维普 turnitin paperpass

阐述模型可重构众核流处理器上编译与程序优化技术期刊

最后更新时间:2024-03-24 作者:用户投稿原创标记本站原创 点赞:30778 浏览:136553
论文导读:
摘要:半导体工艺的持续进步和流编程模型的提出是推动众核流处理器系统结构向前进展的两个重要因素。为了充分利用摩尔定律进展带来的丰富廉价的晶体管资源,片上多处理器已经成为工业界所接受的新一代处理器系统结构的解决案例之一。另一方面,流编程模型的提出为解决运用程序并行性表示和开发提供了有利的工具,业已成为程序并行化的一般策略。但是流运用程序本身的运转时特性对处理器资源的灵活可配置提出了新的要求。一方面,不同程序对于计算,存储和制约的硬件资源需求是千差万别的;另一方面,有的程序对于硬件资源的需求还体现出阶段性特点,不同阶段所需的硬件资源也不尽相同。为了解决这一不足,近年来可重构众核处理器系统结构受到广泛关注,期望以同构的轻量级物理核来构建不同粒度的逻辑处理器,自适应地调整硬件资源,最大化串行程序的性能。我们基于以上认识,提出了可重构的众核流处理器系统结构TPA-S,旨在为流运用程序提供片上资源灵活可重构的硬件衬底。本论文围绕这一系统结构,探讨了以CUDA为代表的流编程模型在TPA-S上的编译和程序优化技术,分别以可重构流处理器的执行模型,指令集扩展,编译系统设计,以及程序优化技术等方面展开探讨。主要的探讨内容包括:(1)探讨流编程模型与可重构流系统结构的执行模型,探讨流运用程序在可重构流处理器TPA-S上的映射案例。流编程模型的实质在于制约和计算的分离:流程序中的计算密集部分以核心函数的形式被抽取出来,利用多个计算线程来开发数据级并行性;而制约线程专注于计算之外的制约流程序,为核心函数组织数据以及开发生产者-消费者局部性。我们设计了主以式和分阶段式两种程序映射案例,分别以异步和同步的方式将计算线程和制约线程映射到TPA-S的多个逻辑处理器上。另外,我们还提出了单一线程和组合线程这两种核心函数的组织方式,在单线程性能和系统吞吐率之间寻求最佳平衡点。(2)探讨流编程模型对TPA-S指令集系统结构产生的设计需求,提出扩展的类数据流EDGE指令集DISC-S。TPA-S流处理器基于显式数据流图执行(EDGE)指令集,将程序的每个线程组织为原子执行和提交的超块序列,在超块内部按照类数据流方式执行。EDGE指令集中特殊的目标域编码方式是TPA-S处理器实现物理核可重构的基础之一。然而流编程模型为TPA-S微结构带来了一些不包括在EDGE指令集中的新特性,例如:多个计算线程需要依靠只读的特殊寄存器来快速地获取线程索引信息;计算线程需要访问软件管理的片上共享存储器数据;另外,多个线程之间需要实现高效的栅栏同步机制。DISC-S扩展指令集针对以上新特性,增加了对特殊寄存器读写,软件管理的片上共享存储层次以及线程间同步的指令支持,为实现流编程模型的映射带来了方便。(3)设计并实现面向CUDA编程语言的TPA-S编译器系统。本论文基于NVCC编译框架将编译器系统分为核心级与流级两条编译链。我们参考scale编译器设计了核心级编译器Ptx2EDGE,将PTX汇编语言形式的计算线程源代码程序编译成DISC-S扩展指令集的二进制目标代码。在流级,我们实现了CUDA C语法扩展和API函数接口以及运转时库的移植,并复用scale串行编译器产生制约线程代码。编译器系统设计的主要工作由一系列编译模块与工具软件的代码实现组成,包括PTX和CUDA语法的前端识别,中间表示形式转换,超块生成和优化,资源分配与指令调度,汇编器与链接器等。另外,为了实现CUDA制约线程中设备管理,线程管理,执行制约和存储器管理等功能模块,我们移植了CUDA运转时库并实现了软件运转时系统Mpsim。编译系统的正确性和执行效率通过实验在一组基准测试程序上进行了验证与评测。(4)探讨了不规则程序在流处理器上的程序优化策略。本论文主要浅析了众核流处理器上不规则程序的性能瓶颈不足,并对GPU平台上的图广度优先搜索算法进行了实例探讨,希望找到不规则程序在流处理器上进行性能调优的一般性策略。我们针对不规则程序中复杂多变的无组织数据并行性提出了基于并行性反馈的FlexBFS高效实现策略,并针对不规则访存带来的动态队列访存效率不足以及不规则输入引起的负载平衡不足,分别提出了相应的程序优化技术。这些实现策略和优化技术都能够被运用到其它的不规则程序当中。本论文获得了以下重要认识:(1)流编程模型能够驱动指令集系统结构的设计,ISA需要反映编程模型带来的新特性;(2)流程序的多线程映射需要软件运转时库的协同工作,在将来的操作系统中可以增加对流编程模型的支持;(3)编译系统设计环节需要利用合适的编程方式和软件工程策略来增强程序的模块化与可读性,例如访问者方式;(4)不规则程序的并行性开发需要准确的并行性度量,利用在线剖析技术能够指导计算资源的合理划分。关键词:流编程模型论文可重构众核流处理器论文论文导读:342.2流处理器编程语言与编译器34-462.2.1StreamC/KernelC34-382.2.2StreamIt38-402.2.3CUDA40-442.2.4其它流编程语言44-462.3CUDA编程模型的几种编译案例46-512.3.1MCUDA46-472.3.2OpenMPtoGPGPU47-492.3.3hiCUDA49-512.4小结51-53第3章流编程模型与可重构众核流处理器上的执行模型探讨53-673.1流编程模型的
类数据流执行模型论文运转时系统论文程序优化策略论文
本论文由www.7ctime.com,需要论文可以联系人员哦。摘要5-7
ABSTRACT7-15
第1章 绪论15-28

1.1 探讨背景15-21

1.1 流处理器系统结构的诞生与进展15-17

1.2 流编程模型的进展17-18

1.3 为什么需要可重构流处理器18-21

1.2 可重构众核流处理器编程和编译面对的几个关键不足21-25

1.2.1 指令集系统22-23

1.2.2 软件编译系统设计23-24

1.2.3 流程序中并行性的表示和开发24-25

1.3 论文的探讨目标和主要工作25-26

1.4 论文结构26-28

第2章 流处理器编程与编译相关探讨工作28-53

2.1 流处理器的指令集系统28-34

2.

1.1 超长指令字VLIW28-31

2.

1.2 并发线程执行指令集PTX31-32

2.

1.3 DISC-D32-34

2.2 流处理器编程语言与编译器34-46

2.1 StreamC/KernelC34-38

2.2 StreamIt38-40

2.3 CUDA40-44

2.4 其它流编程语言44-46

2.3 CUDA编程模型的几种编译案例46-51

2.3.1 MCUDA46-47

2.3.2 OpenMP to GPGPU47-49

2.3.3 hiCUDA49-51

2.4 小结51-53

第3章 流编程模型与可重构众核流处理器上的执行模型探讨53-67

3.1 流编程模型的探讨53-54

3.2 可重构众核流处理器上的执行模型54-62

3.

2.1 可重构众核流处理器系统结构介绍55-57

3.

2.2 超块执行模型的组织与执行57-62

3.3 流编程模型在可重构众核流处理器上的映射案例探讨62-66

3.1 多线程映射案例62-64

3.2 核心程序的单一线程与组合线程两种映射方式64-66

3.4 小结66-67

第4章 扩展EDGE指令集系统的探讨67-81

4.1 类数据流EDGE指令集系统67-72

4.

1.1 指令格式67-70

4.

1.2 EDGE指令集对可重构的支持70-72

4.2 设计面向可重构系统的扩展EDGE指令集DISC-S72-79

4.3 本章小结79-81

第5章 编译工具链设计-与实现81-120

5.1 编译系统设计框架81-85

5.2 Ptx2EDGE编译器85-107

5.

2.1 编译链概述85-87

5.

2.2 基于Antlr的前端实现87-93

5.

2.3 语法树与制约流图中间表示形式的实现93-101

5.

2.4 后端实现101-107

5.3 CUDA主机代码的编译实现107-113
5.

3.1 主机代码中的CUDA C语言扩展108-109

5.

3.2 CUDA运转时库移植109-113

5.4 实验评测113-118
5.

4.1 正确性与超块产生效率114-116

5.

4.2 性能评测116-118

5.5 本章小结118-120
第6章 流处理器上不规则程序优化技术探讨120-134

6.1 不规则程序在流处理器上的性能浅析120-124

6.

1.1 不规则程序的行为特点与性能瓶颈120-122

6.

1.2 不规则程序中的并行性浅析122-124

6.2 实例探讨:图广度优先遍历算法124-133
6.

2.1 BFS算法的并行性浅析124-125

6.

2.2 基于可用并行性反馈的实现:FlexBFS125-127

6.

2.3 动态队列的层次化优化127-129

6.

2.4 不规则输入图中的负载平衡优化129-130

6.

2.5 性能评测130-133

6.3 小结133-134
第7章 全文总结134-138

7.1 论文工作总结134-136

7.2 本论文的主要革新点136-137

7.3 未来探讨工作137-138

参考文献138-143
致谢143-144
在读期间发表的学术论文与取得的探讨成果144-146
在读期间参与的科研项目146