图形处理器在通用计算中的应用

  • 格式:pdf
  • 大小:301.86 KB
  • 文档页数:4

万方数据
图2 CUDA逻辑架构及其与设备内存的对应关系
张健,陈瑞:图形处理器在通用计算中的应用
2009,30(14)
3361



匣 笛
广
船 删
.夕

‘ U

一.警矿。j。j
1234
5 6 7 B 9 lO
序号
(a)CPU上的运行时间


厘 富
√。
啦 卿


/。
)■∥’—p
序号 (b)GPU上的运行时间
近年CPU和GPU浮点计算性能的比较如图l所示。
1 CUDA架构及实现平台介绍啪
为了方便的利用GPU进行数值运算,NvlD队公司 (www.nvidia.c01)新提出的GPU与计算统~设备体系结构 (compute unified device architecture,CUDA)相结合进行并行运 算的方法,可以通过片上上百个处理器同步协作,从而快速解
理的要求,是GPU需acedonia M.The GPU enters computing's mainsa-eam[J].IEEE Computer,2003,36(10):106-108.
【2】Cuda programming guide version 2.O【M】.NVIDIA Corporation,
3运算实例
矩阵运算是数值计算中的常用算法,同时为了有利于并 行运算的实现,本文采用矩阵乘法作为实例,来说明GPU用 于通用计算的性能与优点。矩阵A(mxh)与矩阵B(hxn)相乘
图3 GPU上执行矩阵乘法
为了比较方便,本文对A、B、C这3个矩阵采用大小相同 的方阵,GPU上的Block大小都是8x8,其运行时间如图4所 示(GPU:NVIDIA GeForce 8800 GTX CPU:Intcl(R)Pentium(R)D CPU 3,0Ghz)。随着矩阵的变大,无论是GPU还是CPU处理, 速度都再减慢:但是由于GPU可以利用其多个处理器并行处 理,所需的时间增加相比较与CPU而言,增加的很少,从8x8 的矩阵变为80x80的矩阵,数据增加了100倍,GPU运算时间 仅增加了3.95倍,而同样情况下CPU的运算时间增加了216.66 倍(如表l所示)。在表1中,发现当矩阵尺寸为8x8时,GPU的 运算速度没有CPU快,这是因为GPU运算时,数据需要从CPU 拷贝到GPU,这同样需要一定的时间。当矩阵过小时,GPU并 行运算提高的速度并不能抵消由于数据拷贝所需的时间。
2008.
【3】Kriiger J,Westermann R.Linear algebra operators for GPU ira- plementation of numerical algorithms[J].ACM Tram on Cn'ap hics,2003。22(3):908-916.
计算机工程与设计Computer Engineering and Design
2009,30(14)
3359
·多媒体技术·
图形处理器在通用计算中的应用
张健, 陈 瑞 (南京工程学院通信工程学院,江苏南京211167)
摘要:基于图形处理器(GPU)的计算统一设备体系结构(computeunifieddevicearchitecture,CtJDA)构架,阐述了GPU用于通用 计算的原理和方法。在Geforee8800GT下,完成了矩阵乘法运算实验。实验结果表明,随着矩阵阶数的递增,无论是GPU还 是CPU处理,速度都在减慢.数据增加100倍后,GPU上的运算时间仅增加了3.95倍,而CPU的运算时间增加了216.66倍. 关键词:图形处理器;计算统一设备体系结构;通用计算;矩阵乘法;矩阵阶数 中图法分类号:TP314 文献标识码:A 文章编号:1000-7024(2009)14-3359.03
目前,GPU主要的问题在于GPU与CPU之间数据通信的 瓶颈,提高两者之间的数据交换速度,使其能满足大量数据处
表l不同尺寸矩阵在GPU和CPU上的运行时间
序号 矩阵的尺寸

8x8

16x16

24x24

32x32

40x40

48x48

56x56

64×64

72x72
lO
80x80
CPU运行 时间/ms O.0062 0.0484 O.1516 03515 0.6782 1.1609 1.8328 2.864l 3.9172 5.3109

茁 牡 卿
_ /^

广

望 厘



/1
靶 卿
广

。/硒
厶 U
~令/●
序号 (c)CPU与GPU上运行时间比较
图4矩阵乘法的运行结果
4结束语
GPU特别适于解决表现为并行数据计算的问题,即同样 的程序并行地在许多数据元素上使用高数学密集型的算法(数 学计算相对于内存操作的比率很高)㈨。特别是NVIDIA公司 推出CUDA2.0后,解决了GPU通用计算只支持单精度数的缺 点,为其在更广阔的领域应用提供了基础。
GPU运行 时间/ms O.030485 0.032838 0.036267 0.041213 0.04639l O.056055 0.068375 0.08184l O.1030“ 0.120525
CPU运行时间/ GPU运行时间
0.203379 1.4739I)2 4.180109 8.528862 14.6192l 20.71002 26.80512 34.9959l 38.00745 44.06472
0引 言
近年来,由于在图形处理器(graphics processing unit,GPU) 中加入可编程内部处理器,使GPU具备很高的运算性能。GPU 凭借多核共同驱动及很高的内存读写带宽,使其不仅应用于 图形处理方面,在通用计算方面也可以提供更多的运算资源Ⅲ。
相比CPU而言,GPU硬件结构采用了更多的运算逻辑部 件(arithmetic lo画c unit,ALU)参与数据处理,而不是被用在数 据缓存和流程控制。运算过程中GPU相当于大量的并行处 理器。所以,GPU更适合那些相同程序并行处理大量数据的 并行计算,即高密集度数据运算。因为这些相同程序对许多 数据元素进行同样的运算过程,所以不需要复杂的流程控制, 同时,由于高密集运算,这样从内存读取数据的等待时间就可 以被运算所掩盖,从而可以简化高速数据缓存机制。

J∞ Jul
J∞
Jul J∞
Jul Jan
Jul
Jan Ju|
2∞3 2003 2004 2004 2005 2∞5 2006 2006 2007 2∞7
图l近年CPU和GPU浮点计算性能的比较 (FLOPS每秒浮点运算次数)
可以得到矩阵C(mxn),C中的每个元素G=∑彳觑。由于求

解G的操作都是相同,仅是选择矩阵A和B中的不同行和列,
【4】Hall JD,Carr NA,Hart JC.Cache and bandwidth aware matrix multiplication 011 the GPU[R].Champaign:University of Illinois at Urbana-Champaign,2003.
【5】Thompson CJ,Hahn S,Oskin M.Using modem graphics architec- turos for general-purpose c,omputing:A framework and analysis 【C】.Proc ofthe Int’l Symp on Microarchitefture。2002:306-317.
陈瑞(1972一),女,湖北武汉人,硕士,副
万方数据
3360 2009,30(14)
计算机工程与设计Computer Engineering and Design
600
T茄laC870
口 500

400
饼一00罗
3∞ ∞‘o一‰o
G7泖0鼻512∥
2∞
/尸,.。。№湍
100 笾短P呻m4....右=∥≥/
多个thread组成一个thread block,它们可以共享shared memory中的数据,并可以同步执行一致的内存访问。即一个
收稿日期:2008.08.18:修订日期:2008.11.22。 基金项目:南京工程学院引进人才科研启动基金项目(KXJ07056)。 作者简介:张健(1977一),男。江苏昆山人,博士,讲师,研究方向为计算机图形学、并行计算: 教授,研究方向为计算机图形学。F-maih zhangiiaa@njit.edll.如
可以充分利用GPU的并行计算能力,使用多个处理器,每个
处理器处理一个G,并行执行M。如图3所示。
thread可以在kernel中定义一个同步点,则所有同属于当前 block中的其他thread必须在此同步点进行等待,当此block中 所有thread都达到这个同步点时,再执行同步点后面的操作。
每个thread都有threadlD与其对应,这是其在block中的 线程序数。为了便于这种基于threadID的复杂寻址,也可以将 block定义成任意大小的2D或3D的矩阵,这样就可以通过2 元或3元的索引来表示其threadlD。例如,对于2D,大小为 (Dx,Dy)的block,则索引为(x,y)的threadlD为(x+y Dx);对于 3D大小为(Dx,Dy,Dz)的block,索引为(x,Y,z)的thread的 threadID为(x+y Dx+z Dx Dy)。
Abstract:Based on the CUDA(compute unified device孤.chitccture)ofGPU(graphics processing uni0。the technical fundamentals and methods for general purpose computation 011 GPUare introduced.The algorithm ofmatrix multiplication is simulated on Geforee8800 GT.With the increasing ofmatrix order,algorithm speed is slowed either On CPU or on GPU.AfIer the data quantity increases to 100 limes,the operation time only increased in 3.95 times On GPU,and 216.66 times on CPU. Key words:graphics processing unit(GPU);compute unified device architecture(CUDA);general purpose computation;matrix multiply;matrix 0rd盯