GPGPU

1010 篇文章 11 订阅
292 篇文章 14 订阅

  GPGPU可以被称为通用图形处理器。其中第一个“GP”通用目的(GeneralPurpose)而第二个“GP”则表示图形处理(GraphicProcess),这两个“GP”搭配起来就是“通用图形处理”。而再加上“U”(Unit)就成为了完整的通用处理器。

  目前拥有双向发展的AMD更需要让GPU有个完美的发展前景,在GPU中基于了一套完整的DiretX、OpenGL开放标准,并且在发布了开源工具、Linux开源驱动之后又继续向外界公开GPU的微代码。AMD认为只有开放的标准才能让自己走的更远。而且AMD也希望与其他厂商共同前进集思广益,共同打造出一个完美开放式的通用计算标准,虽然NVIDIA也加入了开源的行列,但AMD认为CUDA方式并不符合自己的开放方向而放弃采用。

  在通用计算和图形处理领域里可以说是三国鼎立。Intel堪称通用计算的龙头,但是只有CPU而没有真正独立的GPU,虽然在各种宣传中一再强调CPU的重要性,但从其收购Havok来看,Intel自然也想在图形处理领域里分一杯羹。而图形领域里的龙头NVIDIA则与Intel相反,其只拥有GPU而没有完整独立的CPU。但最近两年的发展趋势不难看出NVIDIA正在努力的向通用计算领域里挺进。而AMD在成功收购ATI之后,则是同时即拥有完整独立的GPU和CPU,而GPGPU的概念也再一次成为关注焦点。

 

近年来,GPU (Graphic Processing Unit ) 得到了高速的发展,GPU非常适合于高效率低成本的高性能并行数值计算。而GPGPU (General-purpose computing on graphics processing units) 是一种使用处理图形任务的专业图形处理器来从事原本由中央处理器处理的通用计算任务,这些通用计算常常与图形处理没有任何关系。现代图形处理器强大的并行处理能力和可编程流水线,使得用流处理器处理非图形数据成为可能。特别是在面对单指令流多数据流(SIMD)且数据处理的运算量远大于数据调度和传输的需要时,通用图形处理器在性能上大大超越了传统的中央处理器应用程序。另一方面,CPU 由于受摩尔定律的限制,采用提高CPU制程和主频的办法遇到了工艺上的壁垒,暂时无法突;而从1993年开始,GPU的性能以每年2.8倍的速度增长,如下图所示。

 

CPUGPU都是具有运算能力的芯片,CPU更像“通才”——指令运算(执行)为重+ 数值运算,GPU则更像“专才”——并行数值计算为核心。CPUGPU平等运算已经有五年时间,对大量运算平行处理,CPU面临越来越大的困难。更形象地说, CPUGPU运算好比送比萨,CPU一次一次地送,一次送一个,像卡车原理,再大但总有最后一个,到时候就凉了。唯一解决的方法是让卡车的容量再大,速度再快。但总会有一个极限,当遭遇瓶颈时,就会发热,耗油。GPU正好相反,它就像几百个小车,每个都很小,很简单,体积耗电小,做复杂的事很有限,但在1秒或者几秒内能够很好地处理信息。目前GPU数值计算的优势主要是浮点运算,它执行浮点运算快是靠大量并行,GPGPU具有比CPU高一个数量级的浮点性能,但是这种数值运算的并行性在面对程序的逻辑执行时毫无用处。总的来说,CPU擅长的:操作系统,系统软件,应用程序,通用计算,系统控制等等;游戏中人工智能,物理模拟等等;3D建模-光线追踪渲染;虚拟化技术——抽象硬件,同时运行多个操作系统或者一个操作系统的多个副本等等。GPU擅长的:图形类矩阵运算,非图形类并行数值计算,高端3D游戏。在一台均衡计算的计算机系统中,CPUGPU还是各司其职,除了图形运算,GPU将来可能主要集中在高效率低成本的高性能并行数值计算,帮助CPU分担这种类型的计算,提高系统这方面的性能。

    GPU的并行运算性能是极为强悍的,而传统的图形API又单单的只提供了图形操作的功能,没有提供类似于CPU那样通用计算的接口,CUDA的出现将改变这一状况。CUDA的本质是,NVIDIA为自家的GPU编写了一套编译器NVCC极其相关的库文件。CUDA主要在驱动程序方面和函数库方面进行了扩充。在CUDA库中提供了标准的FFTBLAS库,一个为NVDIA GPU设计的C编译器。CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员现在可以使用应用最广泛的高级编程语言C语言来为CUDA™架构编写程序。因此可以在支持CUDA™的处理器上以超高性能运行。将来还会支持其它语言,包括FORTRAN以及C++。目前,支持CUDAGPU销量已逾1亿,数以千计的软件开发人员正在使用免费的CUDA软件开发工具来解决各种专业以及家用应用程序中的问题,为各种应用程序加速。这些应用程序从视频与音频处理和物理效果模拟到石油天然气勘探、产品设计、医学成像以及科学研究,涵盖了各个领域。技术特点主要有:(1)用于GPU并行应用开发的标准C语言;(2)快速傅里叶转换(FFT)以及基本线性代数子程序(BLAS)的标准数字库;(3)专用CUDA驱动器,用于GPUCPU之间快速数据传输计算;(3CUDA驱动程序与OpenGLDirectX图形驱动程序可以实现互操作;(3)支持Linux 32/64位,Windows XP 32/64位以及Mac 操作系统。详细内容见其官方网页:http://www.nvidia.cn/object/cuda_what_is_cn.html 。除了NVIDIA,,还有INTELAMD(ATI)等主要GPU

 

GPGPU:从图形处理到通用计算

GPU用于通用计算(General Purpose GPU,也就是GPGPU)成为最近几年来业内备受关注的一个话题。在很长一段时间,GPU都是图形处理的专有载体,很少有人想过使用GPU来处理绘图之外的一般计算。然而,近几年来,GPU性能的迅速提升以及相关技术的发展让人们对于GPU的这一应用给予了空前的期望和热情。

在性能提升的速度上,GPU已经远远超出CPU。很长一段时间以来,CPU一直按照摩尔定律阐释的速度向前发展,每隔18个月单位面积IC上所容纳的晶体管数目便增加一倍,性能也提升一倍。然而,自1993年开始,GPU的性能便以每年2.8倍的速度高速增长。

而在浮点运算能力和带宽等关键指标上,GPU也远远超出了同期的CPU。拿一块工作频率为3.0GHz的P4处理器来说,其晶体管数目为1.25亿个,即使算上SSE指令集的SIMD,也只有6GFlops的峰值浮点处理能力,而同期的一块NV 40 GPU就有2.22亿个晶体管,峰值浮点运算能力很轻易就超过40GFlops。拿带宽来说,英特尔曾为其P4 XE系列处理器(1066MHz前端总线)所能提供的8.6G带宽而倍感自豪,而同期一块普通的GeForce 6800就拥有20GB/s以上的显存带宽。

基于强大的并行处理能力和极高的存储器带宽,我们完全可以将GPU抽象成一个流处理器(Steam Processor),来用于诸如科学计算、数据分析、线性代数、流体模拟等需要大量重复的数据运算和密集的内存存取的应用程序,那么我们就能获得比CPU强悍的多的计算能力。

随着GPU可编程性技术的出现,GPGPU也由构想逐渐进入可以实用的崭新阶段。

S3 FotoPro™:开GPGPU应用之先河

但是从实用到应用,还有一个重要的坎要跨,那就是必须有相应的计算工具与之相配合。S3 FotoPro™正是这样一款计算工具,目前其主要的应用是借助S3 GPU的流处理器架构从事复杂图形计算进而改善图像质量。

FotoPro可以对图像进行评估,然后使用可定制算法对图片进行适当调整,以增强色彩清晰度、减少雾化、优化饱和度和音色平衡性、提高人物皮肤平滑度等,还能同时对多个图像进行自动增强处理。此外,在进行图像质量增强的时候,并不破坏原始文件,而是在文件名之后加入“_r”后缀另存为新图像。

 

 

 

原始图片 经过Fotopro增强后的图形效果

如下图所示,在使用S3 FotoPro™进行图像质量改善的时候,并不是GPU承担所有的计算任务,而是GPU和CPU来协同完成。如下图所示,其基本的程序如下,当图形计算的任务下达后,首先由CPU完成解码工作,然后将需要进展的后续工作根据不同的处理单元特性进行匹配性分配。需要进行大量并行计算的任务便由GPU承担,而剩下的协调计算任务则由CPU自己来完成。在这个过程中,基本的计算资料置于CPU的寄存器中,GPU和CPU根据各自计算的需要从中调用基础数据。当这一阶段的计算过程完成,CPU便将双方计算获得的数据进行整合,重新编码,进而获得质量改善后的图片。

 

 

 

 

由于在使用过程中,GPU的并行计算能力得到了充分的应用,直接反应在结果上,便是处理任务的时间大幅缩短。如下图所示,在将GPU纳入之后,处理同一任务的时间缩短近60%,但是图像处理的品质却毫不逊色。

 

 

 

 

 

注:在本次测试中,CPU采用的是Intel E8200 (2.66G dual-core)

如今,S3 FotoPro还在持续改进中。据S3工程师介绍,在未来推出的版本中,将会让GPU承担更多的计算任务,如解码/编码、更多的分析工作等,以充分发挥其强大的并行计算能力。

尽管目前的应用还没有脱离图形处理的范畴,但是S3 FotoPro的推出还是让人们看到了希望:GPGPU并不是仅仅停留在概念或者实验室层面,而是已经可以应用并解决现实问题。相信,不久之外,在HPC、高清视频编解码、科学计算、工程计算、医学、图像处理、物理计算等众多领域,我们都可以看到GPGPU技术应用的身影。 (本文来源:网易数码 ) 周京生

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值