您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > GPU在高性能并行计算中的应用
GPU在高性能并行计算中的应用摘要:在科学研究领域以及深度学习领域中,需要进行大规模的并行计算。而传统的CPU计算不能满足这一需求,而计算机图形处理器(即GPU,GraphicProcessingUnit)由于其由大量的运算单元(核心)组成,并行计算能力远高于CPU。同时GPU拥有较普通内存位宽更大、频率更高的专用内存,即显存,适合处理大规模数据。所以计算正在从CPU「中央处理」向CPU与GPU「协同处理」的方向发展。而本文则主要介绍GPU计算中常见架构之一:NVIDIA推出的CUDA(ComputeUnifiedDeviceArchitecture)架构。关键字:GPU、并行计算、CUDA1.背景随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,所以越来越多的科学研究机构已经开始选择部署大型GPU集群来进行科学计算。随着GPU的可编程性不断增强,GPU的应用能力已经远远超出了图形渲染任务,利用GPU完成通用计算的研究逐渐活跃起来,将GPU用于图形渲染以外领域的计算成为GPGPU(GeneralPurposecomputingongraphicsprocessingunits,基于GPU的通用计算)。而与此同时CPU则遇到了一些障碍,CPU为了追求通用性,将其中大部分晶体管主要用于构建控制电路(比如分支预测等)和Cache,只有少部分的晶体管来完成实际的运算工作。CPU+GPU是一个强大的组合,因为CPU包含几个专为串行处理而优化的核心,而GPU则由数以千计更小、更节能的核心组成,这些核心专为提供强劲的并行性能而设计。程序的串行部分在CPU上运行,而并行部分则在GPU上运行。GPU已经发展到成熟阶段,可轻松执行现实生活中的各种应用程序,而且程序运行速度已远远超过使用多核系统时的情形。未来计算架构将是并行核心GPU与多核CPU共同运行的混合型系统。虽然GPU并不适用于所有问题的求解,但是我们发现那些对运算力量耗费巨大的科学命题都具备天然的“图形计算”特色。这类程序在运行时拥有极高的运算密度、并发线程数量和频繁地存储器访问,无论是在音频处理、视觉仿真还是到分子动力学模拟和金融风险评估领域都有大量涉及。这种问题如果能够顺利迁移到GPU为主的运算环境中,将为我们带来更高效的解决方案。传统意义上的GPU不善于运行分支代码,但是ATI和NVIDIA经过长期改进其内部架构已经使得GPU可以较为高效地运行分支、循环等复杂代码。同时因为GPU属于并行机范畴,相同的运算可以应用到每个数据元素的时候,它们可以达到最好的性能。在CPU编程环境中,写出每个输入数据元素有不同数量的输入的程序很容易,但在GPU这种并行机上还是有不少麻烦。2.发展现状当今最常用的GPU的并行和异构计算环境主要是NVIDIA的CUDA和苹果公司提出的OpenCL,还有微软的C++AMP平台。下面是这几个平台的介绍:2.1CUDA(ComputeUnifiedDeviceArchitecture)CUDA是显卡厂商Nvidia于2007年推出的业界第一款异构并行编程框架。在Nvidia的大力支持下,CUDA拥有良好的开发环境,丰富的函数库,优秀的性能。但是CUDA只能被用于在Nvidia的显卡上进行异构编程,有先天的局限性。但是CUDA对程序开发员更加的友好。原因在于其统一的开发套件(CUDAToolkit,NVIDIAGPUComputingSDK以及NSight等等)、非常丰富的库(cuFFT,cuBLAS,cuSPARSE,cuRAND,NPP,Thrust)以及NVCC(NVIDIA的CUDA编译器)所具备的PTX(一种SSA中间表示,为不同的NVIDIAGPU设备提供一套统一的静态ISA)代码生成、离线编译等更成熟的编译器特性。3.应用举例参考文献:1.电子创新网:《浅谈GPU并行计算新趋势》
本文标题:GPU在高性能并行计算中的应用
链接地址:https://www.777doc.com/doc-2874851 .html