GPU在通用计算技术领域的研究

时间:2022-10-11 07:10:49

GPU在通用计算技术领域的研究

【摘要】介绍GPU的计算方法,分析GPU用于通用计算的发展优势,例举目前基于GPU的密集运算的流行软件,说明今后对于GPU的研究领域与建议。

【关键词】GPU;通用计算;CUDA

前言

现代的计算机中对图形的处理变得越来越重要,曾经人们把视频和图形这些需要大量运算的功能都交给CPU处理,但我们对图形计算方面的需求不断大大超出CPU的计算方面的发展速度。GPU—专业的图形处理器的出现填补这方面的不足,GPU具有强大的计算能力,它将能处理的问题由图形领域扩展到了通用计算领域。在浮点运算、并行计算等部分计算方面,GPU可实现数十倍乃至于上百倍于CPU的性能。

1、GPU计算方法

基于GPU的计算从概念上讲是很容易理解的,现有多种软件工具和高级语言可以简化GPU的编程工作。编程人员必须首先了解GPU在图像绘制过程中是如何工作的,然后才能确定可用于计算的各个组件。绘制图像时,GPU先要接收以三角顶点形式发送的宿主系统几何数据。利用可编程的顶点处理器对其进行进行几何变换和亮度计算等三角形计算。然后,由光栅器将这些三角形换成能够显示在屏幕上的独立“碎片”,所有碎片通过可编程碎片处理器计算最终颜色值[1]。计算习惯上采用Brook编译,Brook支持所有带附加流数据的C句法[2], 流数据存储于GPU的存储器中,而核函数也在GPU上执行。

早期Brook编译效率很低,只能使用像素着色器来进行运算。受GPU架构限制,Brook也缺乏有效的数据通信机制。AMD采用Brook 的改进版本Brook+作为高级开发语言。提高了效率[3]。由于GPU具有高效的并行性和灵活的可编程性等特点,越来越多的研究人员和商业组织开始利用GPU完成一些非图形绘制方面的计算,并开创了新的研究领域:GPGPU(通用计算图形处理单元),实现如何利用GPU进行更为广泛的科学计算[4]。最早的GPGPU开发直接使用图形学API编程。此种开发方式要求将数据打包成纹理,将计算任务映射为对纹理的渲染过程,用汇编或者高级着色语言编写shader程序,然后通过图形学API执行。目前,GPU“抛弃”传统的图形AP, NVIDIA推出了CUDA(统一计算设备架构),CUD并行计算kernel(内核函数)。一个完整的CUDA程序是由一系列的设备端kernel函数并行步骤和主机端的串行处理步骤共同组成的。这些处理步骤会按照程序中相应语句的顺序依次执行,满足顺序一致性。借助这些软件和GPU,软件开发人员可以基于CUDA平台开发计算软件,用户可以用比以往少得多的时间完成很多计算任务

2、GPU用于通用计算的优势

GPU通用计算在研究领域通过IEEE,SIGGRAPH、SUPERCOMPUTING等国际会议以及GPGPU、Folding@Home等组织的全力支持,已成功应用于代数计算、流体模拟、数据库应用、频谱分析等非图形应用领域,甚至包括智能信息处理系统和数据挖掘工具等商业化应用。将GPU用于通用计算的主要目的是为了加速计算,加速的动力来自于GPU在高性能计算方面所具有的优势:1.高效的并行性2.高密集的运算3.超长图形流水线4.控制简单5.分多个阶段执行。

3、基于GPU密集运算的软件

目前基于GPU的软件有很多,在政府,国防,分子动力学,生物信息学,视频处理,视觉成像,金融计算等领域都有卓越贡献,比如:

1.由AccelerEyes 公司开发的Jacket 插件能够使MATLAB利用GPU进行加速计算。

2.Adobe 插件将GPU通用计算技术引入到Photoshop CS4中。

3.Google Chrome 18稳定版改善GPU加速能力,使得浏览器处理3D画布渲染的能力提到较大提升。

4.Windows 7通过Directcompute增加了对由GPU 支持的高清流畅观看,同时CPU占用率很低。

5.PGI最新Accelerator Fortran和C编译器提供GPU支持,实现加速计算。

6.Excel2010、Powerpoint2010版本提供对Directcompute技术的支持。

4、结论

GPU已经突破了很多技术屏障,在信息检索、数据挖掘计算机病毒码匹配和生物基因技术领域中都有应用。支持CUDA的GPU可成为是由若干个向量处理器组成的超级计算机。GPU的架构还会不断优化,被越来越多的大型计算采用,在以后的研究中还要对GPU的分支预测能力进行分析,建立简单的GPU性能模型,对于复杂的分支预测、控制流、数据流等方面提高GPU的性能和效率,改善通用计算设计的友好界面,可扩展其开发环境。

参考文献

[1]吴恩华.图形处理器用于通用计算的技术、现状及其挑战[J].软件学报,2004,15(10):1493—1504.

[2]刘振林,黄永忠.基于Brook 在GPU的应用[J].信息工程大学学报,2008,9(1):80—84.

[3]Mark W R,Glanville R S,Akeley K.A system for Programming Graphics Hardware in a C—like Language[J].ACM Trans Graph,2003,22(3):896—907.

[4]Dorigo M, Maniezzo V, Colorni A. The Ant System: Optimization by a Colony of Cooperating Agents [J]. IEEE Transactions on SMC, 1996, Part B,26 (1): 1—13.

作者简介

杨柳 (1979— ),女,长春市,吉林工商学院讲师,硕士,主要从事算法研究.

上一篇:回到“泰罗制” 下一篇:忠言逆耳之:诊断“莲花味精”