CUDA 学习(三)、CUDA硬件概述

来源:互联网 发布:知乎2017校园招聘 编辑:程序博客网 时间:2024/05/19 15:43

一、PC架构

        先看一下酷睿架构图:

                       

       PCI-E 是一个有意思的总线。与其上一代PCI(外围设备互连)总线不同,PCI-E提供一个确定的带宽。在原先的PCI系统中,每个设备都可以使用总线的全部带宽,但一次只能让一个设备使用。因此,你增加的PCI卡越多,每个卡能够获得的可用带宽就越少。PCI-E总线通过引入PCI-E通道解决了这个问题。这些通过时一些高速的串行链路,这些链路组合在一起构成了X1,X2,X4,X8或X16链路。图中PCI-E配置提供5GB/S的全双工总线。这意味着,数据的传入与传出可用同时并行享有同样的速度。也就是说,我们在以5GB/S的速度向GPU卡传数据的同时,还能够以5GB/S的速度从GPU卡接收数据。但是,这并不是意味着如果不接收数据,我们就可以10GB/S的速度向GPU卡传送数据(即带宽是不可以累加)。

二、GPU硬件结构

       从图中可以看出,GPU的硬件由以下几个关键模块组成:(1)内存(全局的、常理的、共享的)、(2)流处理器簇(SM)、(3)流处理器(SP)

                  

        GPU实际上是一个SM的阵列,每个SM包含N个核(如G80和GT200中有8个核)。一个GPU设备中包含一个或多个SM,这是处理器具有可扩展型的关键因素。如果向设备中增加更多的SM,GPU就可以在同一时刻处理更多的任务,或者对于同一任务,如果有足够的并行性的话,GPU可以更快的完成它。

      每个SM都是由不同数量的一些关键部件组成,为了简单起见,没有在图中画出。最重要的部分是每个SM中若干个SP,图中显示的是8个SP,在费米架构中增加至32-48个。在下一代产品中每个SM中SP的数量极有可能继续增加。

      每个SM都需要访问一个所谓的寄存器文件(register File),这是一组能够以与SP相同速度工作的存储单元,所以访问这组寄存器单元几乎不需要任何等待时间。不同型号的GPU中,寄存器文件的大小可能是不同的。它用来存储SP上运行的线程内部活跃的寄存器。另外,还有一个只供每个SM内部访问的共享内存(shared Memory),这可以用作“程序可控”高速缓存。与CPU内部的高速缓存不同,它没有自动完成数据的硬件逻辑---它完全是由程序员控制。

      对于纹理内存(texture memory)、常理内存(constant memory)、全局内存(global memory)每一个SM都分别设置有独立访问它们的总线。其中,纹理内存是针对全局内存的一个特殊视图,用来存储插值(interpolation)计算所需的数据,例如,显示2D或3D图像时需要的查找表。它拥有基于硬件进行插值得特性。常理内存用于存储那些只读的数据,所有的GPU卡均对其进行缓存。与纹理内存一样,常理内存也是全局内存建立的一个视图。

      每个SM还有两个甚至更多的专用单元(SPU),SPU专门执行诸如高速的24位正弦函数/余弦函数/指数函数操作等类似的特殊硬件指令。

                                    

三、GPU计算能力

         CUDA支持多个级别的计算。硬件的计算能力是固定的。为了升级到一个新的版本,用户必须升级硬件。例如GeForce GTX 970 计算能力为5.2 具体功能如下:http://www.geforce.cn/hardware/desktop-gpus/geforce-gtx-970/specifications





0 0
原创粉丝点击