NVIDIA CUDA GPU硬件架构发展

上传人:ZJ****3 文档编号:42005466 上传时间:2018-05-31 格式:DOC 页数:18 大小:2.48MB
返回 下载 相关 举报
NVIDIA CUDA GPU硬件架构发展_第1页
第1页 / 共18页
NVIDIA CUDA GPU硬件架构发展_第2页
第2页 / 共18页
NVIDIA CUDA GPU硬件架构发展_第3页
第3页 / 共18页
NVIDIA CUDA GPU硬件架构发展_第4页
第4页 / 共18页
NVIDIA CUDA GPU硬件架构发展_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《NVIDIA CUDA GPU硬件架构发展》由会员分享,可在线阅读,更多相关《NVIDIA CUDA GPU硬件架构发展(18页珍藏版)》请在金锄头文库上搜索。

1、NVIDIA CUDA GPU 硬件架构发展GPU 英文全称 Graphic Processing Unit,中文翻译为“图形处理器” 。GPU 是相对于CPU 的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。CPU 与 GPU 比较CPU 中大量的晶体管用作高速缓存(cache)、逻辑控制单元(Control),只有少量的用作计算单元(ALU)。而GPU 则把更多的晶体管用作了计算单元,只有少量晶体管用作了高速缓存(Cache)和逻辑控制单元,这使得GPU 比CPU更适合完成密集计算任务。GPU与CPU微架构示意图(G

2、PU将更多的晶体管用于数据处理)GPU强大的浮点运算能力和存储带宽作为计算机的核心,CPU在逻辑判断、非线性寻址等复杂的逻辑运作中,有着非常高的效率,但是由于传统兼容包袱的沉重(如:最快的x86cpu也必须兼容26年前的8086cpu) ,竞争的不充分等多方面因素,发展速度相对缓慢。GPU 的优势在于天生的并行计算的体系机构。例如NVIDIA的8800 GTX GPU中,有128个Stream Processor(流处理器,就是上图的ALU,也理解为运算单元,也就是通常说的核) ,可同时并发上万个线程。而目前最新的NVIDIA GEFORCE GTX 590里面,SP的数量达到了512*2,在

3、高性能计算领域有着无以伦比的优势。在过去的五年,GPU有了突飞猛进的发展。过去的十年里,GPU的强大的浮点运算一直保持强劲是势头飞速发展,目前浮点运算已经达到TFLOPS级别。除此之外,GPU还拥有独立的存储系统(显存),其带宽已达到150GB/s以上。协同并行计算(CPC)的概念简单的说,CPU是串行计算的领先者,而GPU 是并行计算的领先者。CPU在操作系统、系统软件、应用程序、通用计算、系统控制等领域功能强大;而GPU 在密集计算方面则独树一帜。协同并行计算(CPC)(CPC)就是将GPUGPU和CPUCPU两种不同架构的处理器结合在一起,组成硬件上的协同并行模式,同时在应用程序编写上实

4、现GPUGPU和CPUCPU的协同配合的协同并行计算(CPC)(CPC)。AMD公司提出一种CPU+GPU异构并行方式,正是CPC的一种,NVIDIA公司发布的CUDA架构是CPC架构的代表。具体说,协同并行计算(CPC)机就是由CPU负责执行顺序型的代码,如操作系统、数据库等应用,而由GPU 来负责密集的并行计算。打个比方说,假如让10 个人把各自瓶子的水倒入一个大桶中,CPU 的做法是让这10 个人按着顺序一个一个往里面倒,而GPU 的做法则是在设定好一定规则的前提下让10 个人同时或分组往里面倒。因此,在高性能计算领域,可以把CPU 服务器和GPU服务器结合起来,构成一个混合型的集群,各

5、司其职,会大大提高集群系统的总体计算效能。协同并行计算(CPC)(CPC)示意图- -不同结构处理器共同计算的模式协同并行计算(CPC)的开发平台协同并行计算(CPC)作为高性能计算的一个发展方向,一直受到人们广泛关注。目前已有的开发平台包括Stanford大学的brook GPU,PeakStream公司推出的开发包,以及Nvidia 公司的CUDA。几个系统中,brook GPU是Stanford大学的一个开源项目,也是世界上最早的利用GPU进行通用计算的开发包。PeakStream目前已经被Google收购,其产品目前只支持ATI公司的显卡。其他还有AMD公司的Streaming Com

6、puting技术和Intel公司的Ct技术。另外还有3Dlabs、AMD、苹果、ARM、Codeplay、爱立信、飞思卡尔、 Graphic Remedy、IBM、Imagination Technologies、Intel、诺基亚、NVIDIA、摩托罗拉、QNX、高通,三星、Seaweed、德州仪器和瑞典Ume大学等多家支持的统一开发标准OpenCL。微软公司也于2009年发布了基于DirectX 11的DirectCompute技术。硬件Nvidia(GT200)AMD(RV770)Intel(Larrabee)单个处理单元8SP+2SFU+1DU16x(4ALU+1SFU+1DU)2 i

7、norder core总处理单元240SP160x5 = 80032线程Thread:SP 1:1Thread:ALU 1:5Thread:core 4:2时钟频率1296MHz750MHz未知DRAMGDDR3GDDR5GDDR5内存访问模式Global+sharedGlobal+sharedShared内存位宽512bit512bit1024bitNvidia从进军高性能计算领域以来,除了cuda的开发包,硬件产品已经更新三代,从G80 到GT200,直到今天的GTX590系列。晶体管数量达到60亿,核心数目达到1024,开发工具也从最早的0.8版本到今天4.0,为多线程编程充分利用。并提

8、供全套免费的开发工具,其中除了编译器(nvcc) 、系统函数库(cudafft、cudablas、cula、npp等等)之外,有专门的剖析工具(cuda visual profiler)帮助进行分析函数性能,可在仿真模式下提供调试,支持C/C+开发环境。CUDA 的优势是这是一个完全针对GPU计算所开发的C语言开发环境,它与NVIDIA公司的GPU高度协同,因此应用程序通过适当的优化可以获得极高的效率。同时,标准的C语言开发环境也可以使得开发者非常容易掌握,有经验的编程人员通过很短时间的熟悉就可以开发出高质量的GPU计算程序。CUDA包含一个让开发者能够使用C作为高级编程语言的软件环境。其他的

9、编程语言和应用编程接口也被支持,如CUDA Fortran,OpenCL和DirectCompute,这几种API均可以在SDK安装目录下可以找到。CUDA支持多种语言和APICUDA硬件架构发展表 同期 AMD 与 NVIDIA 品牌 GPU 年份GPU 型号显存容量SP 数浮点计算能力G8800 Ultra768 MB128393.6 GFLOPS 2007 HD 3870512 MB320497 GFLOPSGTX 2801.0GB240720 GFLOPS 2008 HD 48001.0GB8001.0 TeraFLOPSGTX 2951.75GB240894.24 GFLOPS 20

10、09 HD 59702.0GB32004.64 TeraFLOPSGTX 4601.0GB336897 GFLOPS 2010 HD 68501.0GB11201.5 TeraFLOPS2011GTX 5801.5GB5122.3TeraFLOPS表表 Specifications for some graphics boards, i.e. GPU-chip and GPU RAMGraphics boardGFLOPSBandWith (GB/s)WattGFLOPS/ WattGFLOPS/ BandWithGeForce GT 240M17425.6237.66.7GeForce GT

11、S 250M36051.22812.97.0GeForce GTX 260 core 2618751121715.17.8AMD/ATI 5870272015318814.517.7AMD 5750100873.68611.813.7AMD 577052051.23017.310.2AMD 583080025.62433.331.3AMD 58701120645022.417.5表表 Specifications for some CPUsCPUGFLOPSBandWith (GB/s)WattGFLOPS/ WattGFLOPS/ BandWithIntel Core2Duo E860027

12、10.4650.42.6Intel Core2Duo SP9600208.33250.82.4Intel i7-8704722.89950.52.1Intel i7-820QM2821450.61.3G80-GT200-GF100此处,主要以NVIDIA公司GPU介绍为主,分析GPU核心代号从G80发展到GF110历程。第一代支持CUDA架构的是以G80为核心的GPU,然后突破性改革发生在GT200核心,目前最新且火热的是支持CUDA架构的Fermi架构。G80-Graphic ModelG80-CUDA ModelGT200-Graphic ModelGT200-CUDA ModelFerm

13、i ArchitectureGF100 Streaming MultiProcessorGF100 ArchitectureG80、GT200和GF100相关参数比较CUDA执行模式以下分别以G80、GT200和Fermi三种架构对CUDA的执行模式进行硬件图示详解,其中最重要的CUDA核心应该为具有处理单个线程能力的流处理器-SP(Streaming Processor) 。CPU、GPGPU、CUDA执行模式标准的CUDA执行模式,是一种CPU+GPU异构并行方式。执行任务由CPU端和GPU端协同处理,CPU端负责逻辑性强的事务和串行计算,GPU端则负责高度线程化的并行处理任务。CUDA并

14、行执行模式CUDA硬件并行执行模式SP是CUDA中最基本的核心,其对应到每个线程的发射和执行。SP是一个流水线型,单线程执行,顺序的微处理器。G80核心和GT200核心中SP硬件设计是一致的,每个SP中都包含了2个ALU(arithmetic logic unit)单元和一个FPU(float point unit)单元,还有寄存器文件(register file)和32 bit的标量处理。Streaming ProcessorG80和GT200核心中,每个SM大致相当于一个具有8路SIMD的处理器,其指令宽度却不为8,而是32(即warp size) 。因为SP频率大约是GPU频率的两倍多,

15、因此每个发射单元两个SP周期才能发射一条新的指令,执行单元也要每两个周期才能访问一次存储器。又因为同一个GPU周期内,至少需要发射两次才能掩盖延迟。因此,发射单元一个GPU时钟周期内,需要发射四次指令发射单元才能充分利用。每个SM(streaming multiprocessor)中包含8个SP(streaming processor) ,2个SPU(special function unit,包含4个FPUfloat point unit) ,16KB的可读写共享内存(shared memory) ,多线程发射单元,instruction cache和constant cache。Strea

16、ming MultiProcessorG80和GT200架构中,每个TPC规模是不一致的。G80中每个TPC包含2个SM,即16个SP;GT200中每个TPC则包含3个SM,即24个SP。G80和GT200架构TPC详解Fermi架构详解Fermi GF100拥有这样的三层分级架构:4个GPC、16个SM、512个CUDA核心。每个GPC包括4个SM,每个SM包括32个CUDA核心。你可以认为GF100是一颗4核心(GPC)处理器,因为这个GPC几乎是全能的。GF100核心,除同样拥有12KB的L1纹理缓存之外,其拥有真正意义的可读写L1缓存和L2缓存。GF100核心的设计思路直接导致GPU 中首次出现了64KB的RAM支持可配置的shared memory和L1缓存。毫无疑问,G80到GT200以来,NVIDIA的MIMD架构流处理器设计一直是图形芯片中效率最高的,虽然它很耗费晶体管,但是以最后实际性能衡量,还是很划算的。这次Fermi延续了这种设计,但是在计算单元和周边资源方面做了扩充,更高精度和更小性能衰减是永远的目标。GF100 GPU基于图形处理团簇(翻译为GP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号