面向CUDA集群的并行通讯机制研究

VIP免费
3.0 高德中 2024-11-19 5 4 3.66MB 66 页 15积分
侵权投诉
摘 要
随着人们对数据处理需求的不断增加,如何提高数据处理能力十分具有研究价
值。GPU具有非常强的处理能力,但应用范围较窄,如果将CPUGPU结合起来
组成集群,让二者协同计算,能充分发挥CPUGPU的计算特性,提高计算性能
的同时还可以利用集群的可扩展性来应对计算需求的变化。CUDANVIDIA公司
提出,是使用GPU进行协同计算的优秀平台,但它对集群支持能力较弱,我们利
MPI通讯机制扩展了CUDA技术,并探讨了CUDA集群的通讯机制。本文主要做
了以下几个方面的工作:
1)研究构建CPU+GPU集群所涉及的主要技术,包括集群技术,CUDAMPI
以及H.264解码算法,利用这些技术搭建开发环境。
2)构建了集群通讯关键技术,包括通讯消息的设计,消息的缓冲管理以及节
点之间大数据流的传输管理等,集群的通讯系统为集群的其它应用提供通讯服务,
是集群软件体系的基础。
3)提出了集群监测和控制方法,控制系统主要包括计算过程的控制,集群应
用软件的管理和集群结构变化的管理。
4)探讨了集群的任务映射机制,该任务映射算法利用通讯系统提供的服务,
采用消息驱动的方式来运转,能根据集群的变化来调整任务映射。
关键词:协同计算 CUDA 集群 集群通讯 集群监测 任务映射
ABSTRACT
With the data processing needs increasing, how to improve the data processing
capability has high research value. GPU has an excellent performance in some special
area, in order to improve the availability of GPU, we build a CPU+GPU cluster through
network which can give full play to the CPU and GPU computing features. CUDA is an
excellent platform using GPU to do collaborative computing, but it is weak on
supporting cluster computing. We use MPI to extend CUDA technology, and explore the
CUDA clusters communication mechanism.
The main work in this paper is as follows:
1) Researching the respective technology about building a CPU+GPU cluster,
including cluster technology, CUDA, MPI and H.264 decoding algorithm, and use these
technologies to build the software development platform.
2) Building clusters communication system: the design of communication message
and message buffer pool, and the management of transmission of large data stream.
Cluster communication system is used to provide communication service for other
cluster applications.
3) The cluster detection and control based on cluster communication system and the
control system includes calculation control management, software management and
cluster structure changing management.
4) The design of task mapping strategy: the task mapping algorithm uses the service
provided by communication system since it is driven by message and the algorithm can
adjust the task mapping strategy according to the changes of cluster.
Keywords: collaborative computing, CUDA cluster, cluster detection,
cluster communication, task mapping strategy
目 录
中文摘要
ABSTRACT
第一章 绪论 .....................................................................................................................1
§1.1 GPU 加速时代的来临 .......................................................................................1
§1.2 CPU GPU 的比较 .........................................................................................2
§1.3 CPU+GPU 协同计算 .........................................................................................3
§1.4 课题的来源与意义 ...........................................................................................3
§1.5 论文的主要工作和组织结构 ...........................................................................4
第二章 协同计算和集群的相关技术 .............................................................................5
§2.1 集群设计 ...........................................................................................................5
§2.2.1 集群特点及体系结构 .............................................................................5
§2.2.2 集群设计要素 .........................................................................................6
§2.2 CUDA ................................................................................................................ 7
§2.3 MPI .................................................................................................................. 12
§2.3.1 MPI 概述 ............................................................................................... 12
§2.3.2 MPICH2 Ubuntu 系统下的配置和使用 ..........................................14
§2.4 H.264 视频在 CPU+GPU 平台上的处理过程 ...............................................14
第三章 集群通讯系统设计 ...........................................................................................18
§3.1 集群通讯系统概述 ..........................................................................................18
§3.2 命令传输 .........................................................................................................18
§3.2.1 消息格式设计 .......................................................................................18
§3.2.2 管道消息代理(PipeMsgProxy.......................................................22
§3.2.3 远程消息代理(RemoteMsgProxy) .......................................................23
§3.3 中间结果集的传输 ..........................................................................................28
§3.4 集群通讯系统小结 ..........................................................................................31
第四章 基于通讯系统的监测和控制 ...........................................................................32
§4.1 集群监测系统 .................................................................................................32
§4.1.1 延迟监测 ...............................................................................................33
§4.1.2 负载均衡监测 .......................................................................................33
§4.1.3 计算通信比监测 ...................................................................................34
§4.1.4 监测算法性能分析 ...............................................................................35
§4.2 控制系统 .........................................................................................................36
§4.2.1 计算过程的控制 ...................................................................................37
§4.2.2 应用程序的管理 ...................................................................................42
§4.2.3 集群结构变化的管理 ...........................................................................48
第五章 集群任务映射系统 ...........................................................................................49
§5.1 任务映射系统概述 ..........................................................................................49
§5.2 任务映射系统的相关定义 ..............................................................................49
§5.3 集中式动态任务映射策略描述 ......................................................................51
§5.4 任务映射策略的实验结果分析 .....................................................................55
第六章 实验总结和展望 ...............................................................................................57
§6.1 协同计算平台性能测试实验 .........................................................................57
§6.1.1 实验描述 ...............................................................................................57
§6.1.2 实验结果分析 .......................................................................................57
§6.2 展望 .................................................................................................................59
§6.2.1 简化串行算法的移植 ............................................................................59
§6.2.2 CPU+GPU 集群设计优化 .....................................................................60
第一章 绪论
- 1 -
第一章 绪论
§1.1 GPU 加速时代的来临
2010 11 月,由国防科学技术大学研制的“天河一号 A”超级计算机实测速
度达到每秒 2570 万亿次[1]刷新了当时世界超级计算机的速度。“天河一号 A
处理器系统并非由单一的 CPU 组成,而是由 2048 颗飞腾 FT-1000 八核 CPU14336
Intel Xeon X5670 六核处理器和 7168 NVIDIA Tesla M2050 高性能计算卡
GPU)组成,正是由于 GPU 的加速才实现了如此高的计算速度,CPU+GPU
协同计算[2-3]也成为超级计算的一个发展方向,如何融CPU GPU 的计算优势
成为当前的一个研究热点。
按照摩尔定律,每一年半到两年时间内,在同等大小的芯片上集成的晶体管数
量就会翻倍,CPU 计算频率也将随之提高,过去相当长的一段时间,计算芯片正
是按照摩尔定律在发展,但目前该定律正在接受着挑战,随着芯片制造工艺的不
断提高,晶体管的尺寸越来越小,产生了很多新的问题,例如漏电流问题愈发严
重,能耗和发热过大等,这些问题导致计算性能的提高产生了瓶颈。例如 Intel
新的 CPU 酷睿 i7-980x其生产工艺是最新的 32nm 工艺,智能高速缓存达到 12M
但主频仍然是 3.33GHz,和采用 45nm 制造工艺,8M 缓存的 i7-975 相同,单个核
心的计算性能没有什么提高。于是众厂家纷纷推出多核 CPU,但美国桑迪亚国家
实验室的防真测试结果显示:从双核升级到四核能够大幅提升性能,但是从四核
升级到八核性能几乎没有提高,从八核升级到 16 核性能反而会降低到双核的水平,
在这之后,随着内核数增加,性能加速下滑。市场上芯片产品的性能也和实验结
果相似,六核的 i7-965 在综合性能上仅比四核的 QX9770 提升了约 20%,受限于
内存总线的性能,多核 CPU 的发展前景并不是很明朗。
CPU 陷入瓶颈的情况下,图形处理GPU(Graphic Processing Unit)的发展
异军突起。在过去几年间,
GPU 以远超摩尔定律的速度在发展——每 12 个月 GPU
运算能力都翻一番。特别是在 2007 年,NVIDA 正式发布 CUDACompute Unified
Device Architecture[4]计算平台,这种将 GPU 做为数据并行计算设备的软硬件体
系,带动了 GPGPUGeneral-Purpose computation on Graphics UnitsGPU 通用计
算)的飞速发展。
GPU 两大制造商 NVIDIA AMD 都在 2011 03 月发布了自己最新的显卡,
这两款产品都让人们眼前一亮。NVIDIA 推出的 GTX590 采用第二代 Fermi 架构,
由两颗 GTX580 通过 NF200SLI 桥接芯片组成。GTX590 拥有 1024 CUDA 处理
器核心,核心的频率为 1215MHz显存带宽为 327.7GB/sec单精度浮点计算能力
面向 CUDA 集群的并行通讯机制研究
2
达到 4.96TFLOPS,而上文提到英特尔最新推出的 i7-980x 理论浮点计算能力只有
79.92GFLOPS。目前最快的显卡AMD 推出Radeon HD 6990用了
岛”架构,由两颗 HD6970 核心通过桥接芯片组成,共有 3072 个流处理器单元,
核心880MHz存位320GB/s,单度浮点计能力 5.40TFLOPs,双
度浮点能力为 1.47TFLOPsGPU 在浮点计算领域已经展现了自己独特的优势。
§1.2 CPU GPU 的比较
虽然CPU的发展遇到了一些挑战,GPU取得了跨越式的发展,但目前GPU
通用计算只在某些特殊领域发挥作用,主要是利用GPU强大的浮点计算能力。由
GPU在复杂逻辑计算方面还不完善,想让GPU完全取代CPU还为时尚早。下面
从不同的方面来比较CPUGPU之间的差异:
1)微架构:CPU微架构的设计要同时考虑“指令并行执行”和“数值并行
计算”,要保证二者之间的平衡,不会为追求数值计算的速度而牺牲指令执行的
效率。和GPU相比,CPU的设计要复杂的多,复杂不是指晶体管数量的多少,主
要指实现的功能,如程序的分支预测,并行执行时关联指令和数据,多重嵌套的
分支执行,指令的预测执行以及多核CPU的数据一致性等。GPU架构设计中有大
量的重复计算单元,这样可以开启大量的线程来分别执行不同的数据流计算,但
每条数据流的逻辑计算不能太复杂且数据流之间的相关性弱,例如矩阵计算在
GPU上实现就有很高的效率。起初GPU主要用来绘制图像,通过GPU硬件加速实
现像素、光栅处理、三维坐标转换等相关计算,由于图形计算的特点是大量的同
一类型数据的密集型计算,因此设计GPU时才加入大量重复计算单元。虽然当前
主流的GPU可以支持比较复杂的控制命令,如分支、循环和子程序调用等,但和
CPU相比功能还略显简单且执行效率相差甚远。
2主频:目前主流CPU的时钟频率一般能达到3GHz左右,GPU的频率一
般在1GHz左右,因此即使是简单的数值计算,如果只用单个线程,CPU的速度要
快于GPU。但GPU可以开启大量的轻线程同时计算,提高并行数据处理的速度,
但在处理复杂的逻辑计算时,不能通过简单地增加线程个数来实现并行加速,
GPU
就失去了优势
因此GPU适合处理可并行的大规模数值计算,GPU可以开启大量线程并行执
行,这样做还能隐藏数据存取时主存的延迟[10]CPU善于处理有复杂逻辑的任务,
如操作系统拥有大量循环和分支计算,且程序规模庞大,在CPU上执行才有较好
的效率,GPU目前还无法执行这样复杂的软件。由于CPU要支持复杂的逻辑处理,
限制了CPU指令执行的并行度,
CPU只能程序执行层面进行逻辑并行,因此在CPU
摘要:

摘要随着人们对数据处理需求的不断增加,如何提高数据处理能力十分具有研究价值。GPU具有非常强的处理能力,但应用范围较窄,如果将CPU和GPU结合起来组成集群,让二者协同计算,能充分发挥CPU和GPU的计算特性,提高计算性能的同时还可以利用集群的可扩展性来应对计算需求的变化。CUDA由NVIDIA公司提出,是使用GPU进行协同计算的优秀平台,但它对集群支持能力较弱,我们利用MPI通讯机制扩展了CUDA技术,并探讨了CUDA集群的通讯机制。本文主要做了以下几个方面的工作:1)研究构建CPU+GPU集群所涉及的主要技术,包括集群技术,CUDA,MPI以及H.264解码算法,利用这些技术搭建开发环境。...

展开>> 收起<<
面向CUDA集群的并行通讯机制研究.pdf

共66页,预览7页

还剩页未读, 继续阅读

作者:高德中 分类:高等教育资料 价格:15积分 属性:66 页 大小:3.66MB 格式:PDF 时间:2024-11-19

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 66
客服
关注