炼数成金 门户 CUDA 查看内容

详细解释CUDA以及CUDA应用实例演示

2015-9-9 15:09| 发布者: 炼数成金_小数| 查看: 2027| 评论: 0|来自: 太平洋电脑网

摘要: 1、前言自nVIDIA于GeForce 256提出GPU这个概念以来,显示核心就作为一个单独的单元从传统处理器中分离开来,主要负责视觉方面的处理工作。而发展至今日,GPU的性能已经远比当初强大,昔日停留在“视频卡”的概念也逐 ...

工具 架构 计算机 GPU CUDA NVIDIA

1、前言
自nVIDIA于GeForce 256提出GPU这个概念以来,显示核心就作为一个单独的单元从传统处理器中分离开来,主要负责视觉方面的处理工作。而发展至今日,GPU的性能已经远比当初强大,昔日停留在“视频卡”的概念也逐渐改变,GPU负责的事情已经超越原本单纯的2D/3D处理,它更多以协处理器的形式服务于制图工作者以及科研人员。未来的计算机时代将是视觉处理技术的时代,业界的领军者曾经指出。

工作负荷迅速从CPU向GPU(图形处理器)的转移不断鼓舞着消费类应用程序的开发。在NVISION 2008大会上,全球视觉计算技术的行业领袖NVIDIA(英伟达)公司向世人展现了新GPU时代的四大技术:使GPU担负更多应用工作的CUDA、进一步从游戏中解放CPU的游戏PhysX加速、为游戏用户提供亲历其境体验的3D Stereo、为发烧游戏用户提供更极致体验的SLi技术。nVIDIA将这四项技术统称为GeForce四大内功(Force WithIn)。
GeForce四大内功
nVIDIA倡导的GeForce 四大内功

GPU在今后计算机中扮演的角色将越来越重要,为了让大家更加了解nVIDIA GeForce系列的四大技术,我们将在近段时间针对GeForce的四大内功做多篇不同的文章报道来分析,今天我们首先为大家讲解GeForce的CUDA技术。下面我们将从GPU的并行处理架构说起。

2、并行处理架构:GPU将比CPU更主要

GeForce 系列的GPU同样是一款非常出色处理器并行架构处理器,而NVIDIA提出的CPU+GPU的异构运算平台在目前众多领域有着非常大的优势。随着越来越多的应用程序对GPU并行运算的支持,相信未来GPU重要性超过CPU也并非天方夜谭。
图片
并行处理器在各个方面都有优势

NVIDIA方面,上代G8X图形核心就采用了先进的统一渲染架构,拥有多达128个流处理器,引入几何着色器功能……这一切简直就是专为GPGPU运算而生!为了较大程度的发挥几何着色器的威力,G80还专门设置了一个名为流输出层(Stream Output State)的部件来配合它使用。这个层的功能是将Vertex Shader和Pixel Shader处理完成的数据输出给用户,由用户进行处理后再反馈给流水线继续处理。它可以直接读写本地显存。我们可以通过Stream Out把GPU拆成两段,只利用前面的一段几何运算单元。对某些科学研究,也可以通过stream out来利用GPU的数学运算能力,等于在CPU之外又平白多得了一个数学协处理器。我们可以这样理解G80图形核心的几何着色器和Stream Out单元:GS提供了改变图形数量的能力,Stream out提供了硬件Multi-pass的支持。可以预见,今后围绕这些全新的功能,又会有一批新的GPU通用计算程序出台。

3、面向未来:CUDA应用方向
随着显卡的发展,GPU越来越强大,第一代统一渲染架构的GTX 280核心中就已经拥有240个单独的ALU,因此非常适合并行计算,而且浮点处理能力也远远优于目前的多核CPU,加上GPU为显示图像做了优化。在众多计算领域上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的。CUDA(Compute Unified Device Architecture)工具包是一种针对支持CUDA功能的GPU(图形处理器)的C语言开发环境,未来还将发布Fortran语言版本。
图片

图片
CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。跟以往的GPGPU概念不同的是,CUDA是一个完整的解决方案,包含了API、C编译器等,能够利用显卡核心的片内L1 Cache共享数据,使数据不必经过内存-显存的反复传输,shader之间甚至可以互相通信。对数据的存储也不再约束于以往GPGPU的纹理方式,存取更加灵活,可以充分利用stream out特性。以上几点都将大大提高GPGPU应用的效率。例如,在游戏中我们可以使用CUDA来让GPU承担整个物理计算,而玩家将会获得另他们感到惊奇的性能和视觉效果。另外,用于产品开发和巨量数据分析的商业软件也可以通过它来使用一台工作站或者服务器完成以前需要大规模的计算系统才能完成的工作。这一技术突破使得客户可以任何地方进行实时分析与决策。同时,一些以前需要很先进的计算技术来达到的强大计算能力的科学应用程序,也不再受限在计算密度上;使用CUDA的计算可以在现有的空间里为平台提供更强大的计算性能。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。

CUDA工具包推出已有1年,它的推出马上受到了众多软件/游戏开发商以及科研机构和程序爱好者的欢迎,NVIDIA方面也将发布的CUDA 2.0版本。相信在未来,CUDA将会受到越来越多的领域的支持。目前,支持CUDA环境的GPU主要有采用统一渲染架构的显示核心。

4、CUDA应用:BadaBoom视频压缩
一直以来,视频编码的转化都是令用户非常头疼的一件事,一款较高级的处理器在转换容量巨人的视频文件的时候,慢如蜗牛的速度令人难以忍受,这也主要受目前CPU性能的制约。目前,NVIDIA与许多软件开发商在推广支持GPU加速的视频压缩软件,Badaboom就是一款支持GPU加速的视频转换软件,可以把mpeg2的视频转换为ipod或者iphone这样的所使用的H.264视频格式,据称速度方面是目前CPU转化的10倍以上,为了验证其真实性,我们就做了一次相关的评测。
图片

图片
由于目前这个版本仅支持GPU加速,所以我们并不能拿来与CPU进行同平台对比,考虑到目前参差不齐的编码软件,测试结果仅做主观参考,从软件显示的编码速度来看,编码帧数达到了130帧每秒,一个160M的MPEG-2文件压缩至iphone标准视频仅1分钟内就可以编码完成。这个速度相信已经超过了目前所有的CPU版本编码软件。

5、CUDA应用:Folding@home
Folding@home是斯坦福大学的一个分布式计算计划可以利用分布于全球的计算机模拟复杂的蛋白质折叠效应,是一款典型的科学计算程序,目前已经推出了支持CUDA环境的版本。该项目的客户端程序可以使用客户机的CPU或NVIDIA CUDA enable GPU或者AMD Radeon对同一以项目进行求解,为了让大家最清楚的了解CUDA的GeForce GTX 200系列GPU在科学计算方面与CPU和其他计算解决方案在性能上的区别。我们利用这款软件对GTX 280做了一次评测,测试所采用的处理器为Intel 45nm四核处理器QX9770,超频至3.6GHz(400x9)。
图片
支持CPU版本运行速度非常慢
图片
支持CUDA版本的Folding@home

=从测试的过程可以看出,支持CUDA的Folding@home的性能非常强大,能明显的感觉到远超过CPU版本,测试结果也达到了669.7ns/day。这个成绩基本上是目前CPU的100倍左右,GPU强大的并行处理能力在这体现无疑。

6、Photoshop CS4支持GPU加速=
在加州圣克拉拉举行的2008年春季Editor's Day上,NVIDIA和Adobe带来了新的希望:代号“Stonehenge”(巨石阵)的Adobe Photoshop Creative Suite Next(也就是CS4)会加入对GPU、物理加速的支持。
图片

如果您的计算机具有基于 AGP 或 PCI 的视频卡,则该计算机可能具有 GPU(图形处理器)。 如果您的 GPU 支持 DirectX 9.x、Pixel Shader (PS) 1.3 或更高版本,以及 Vertex Shader (VS) 1.1 或更高版本,则可以使用 GPU 加速效果,如“卷边”、“折射”和“波纹(圆形)”。 这些效果充分利用了 GPU 卡的增强视频处理功能,给图像增加了三维真实感。
图片

图片

图片
有了GPU加速支持,用Photoshop打开一个2GB、4.42亿像素的图像文件将非常简单,就像在Intel Skulltrail八核心系统上打开一个500万像素文件一样迅速,而对图片进行缩放、旋转也不会存在任何延迟;另外还有一个3D加速Photoshop全景图演示,这项当今最耗时的工作再也不会让人头疼了。
根据我们了解的消息,Adobe CS4套装将在今年10月1日正式发布,其中当然包括支持GPU和物理加速的Photoshop CS4
图片
还可处理3D图片

7、IE小插件Piclens让2D变3D
http://www.piclens.com/site/ie/

Cooliris推出的Piclens插件可以让google图片搜索以及youTube变为3D模式,通过用GPU硬件加速来实现图片浏览。但就是这么一个实用的小插件,没有GPU也是不行的。
图片

图片

图片

图片
当我们使用一块GeForce 9600GT进行GPU加速时,cooliris满速率运行可达60fps,但换用集成显卡时,这个数值还不到24fps,前后的差距至少达到了2.5倍,集显与独显的产品在日常应用中终于体现出来了。

8、连PDF都需要GPU加速
http://www.adobe.com/cn/

早在2007年,Adobe就与NVIDIA展开合作,推出了支持GPU加速的PDF版本,Adobe Acrobat 8及Adobe Reader 8系列产品提供全新的页面显示着色技术,利用GPU来加速PDF格式下的绘图及显示功能,除了在效能上有所增进外,还可以利用GPU的可编程特性,进一步加强PDF文件中的2D内容展示效果。
图片
据Adobe平台产品营销总Pam Deziel表示,NVIDIA GeForce与Quadro GPU使用者可利用PDF档案进行更多样的作业,同时也能更有效率。包括平移、卷动、缩放等,实际上Adobe Reader 8每一项运用到GPU的功能都有着显著的效能增进。使用者过去避免使用的一些应用,例如可进行极精细比例缩放的地图,现在都可以轻易地显示。
图片

图片
打开同样复杂的一幅图表,利用GPU加速你可能会获得更快的浏览速度

同样一个容量达到50MB的期刊读物电子版PDF文件,在使用传统方式打开时,读取时间为8秒。而使用GPU硬件加速功能时,打开时间不超过3秒,且在浏览时不会有拖沓感,PDF文件也变得流畅异常了。

9、Google Earth独显与集显的区别
http://earth.google.com/intl/zh-cn/index.html

Google earth,是一款3D地图显示软件,它能够将地球上某一区域的地貌,以3D图像的形式展现出来。很显然,这类软件将会逐渐成为我们今后生活的必备软件。
图片

图片

在Google earth的设置界面,如果你拥有一个性能强劲的显卡,那么可以将画质设置为较高,这是在没有GPU加速功能的PC上无法体验的速度感。
nvidia
没有GPU加速状态下
nvidia
GPU加速状态下

当我们以较高画质量为限查找地图街景时,带有GPU的PC系统可以流畅地进行地图缩放。而同样的场景、同样的搜索速度、同样的处理器,在没有GPU加速时,运转速度简直无法忍受,在Fraps显示的速率上,使用GPU加速和不使用GPU加速情况下,速度落差达到了几十倍之巨,由此可见,GPU的作用和意义绝不仅限于游戏。

10、Google picasa显卡加速更强大
http://picasa.google.com/intl/zh-CN/download/index.html

Google Picasa2是一款可帮助您在计算机上立即找到、修改和共享所有图片的软件,软件附带了常见的图片处理功能。
图片

图片
图片的处理以及旋转同样可以通过GPU加速

在使用NVIDIA显卡的电脑上使用Picasa软件,通过GPU加速,图片的拖放或文件夹切换,图片生成的速度都非常快,这跟我们采用NVIDIA的显卡是息息相关的。如果换用没有GPU加速的平台,搜索图片时生成速度是有明显差异的。

11、PICTOMIO速度更快
nvidia
Pictomio是一个类似于Picasa的图片浏览和管理软件,它提供了极其华丽3D图片浏览效果。如果PC中具备GPU,那么完全可以利用强大的GPU将浏览方式变更为3D模式,无缝缩放、渐变式切换,效果十分惊叹。但如果没有GPU,平面的交互效果实在是太过让人失望了。

如你所见,视频功能的日渐丰富是当今计算机发展的主流趋势,这些软件通过GPU 的提升可以明显的得到更快、更连贯的显示效果。而这些性能的改变单靠提升CPU的运算性能,是无法完全实现的。可以说,GPU强大的浮点运算能力转化为全新的应用方式,将成为PC机正在经历的一场全新变革;我们的数字生活也将会因GPU的改变而步入全新的视觉时代。

12、实例应用:Badaboom压缩H.264编码
对于不少视频爱好者来说,追求高清已经是理所当然的事情,而将1080P的高清电影经过视频压缩放在手机等随身携带的视频播放器材中,随时拿来欣赏更是这类视频爱好者的必备追求。

但我们知道,就H.264来说,这类高清视频的码率都非常之大,用一般的视频压缩工具来进行是非常费时的,你虽然能够将电脑开通宵,打开软件工具来为一部高清视频转换编码压缩,但如果能够以更加简单、快捷的方法进行视频格式的转换压缩,无疑能够为视频爱好者节省大量的时间和经历。针对这类群体,nVIDIA提供的CUDA技术方案能够完满的解决这类用户的需求。

Badaboom就是一款专门以CUDA技术应用的视频压缩工具,而笔者亦亲身使用了目前更为主流的中低端显卡GeForce 9500GT,来对一部高达1.8G的H.264高清视频片段进行压缩,下面是这次关于CUDA应用的试用过程。
Badaboom视频转换处理
Badaboom为用户提供了简单、容易操作的面板
Badaboom视频转换处理
选好需要压缩的H.264,对其进行视频压缩,本次试用采用了GeForce 9500GT的GPU
Badaboom视频转换处理
只用了8分多钟的时间,一部1.8G的H.264格式片源就成功压缩

总结:CPU发展至现在已经相当成熟,GPU接下来需要做的,就是将应用层面发展至更广,来解放CPU在某些应用层上的工作,并行+顺序处理,将GPU和CPU灵活的结合起来,才能为用户带来更加方便、更加人性化的计算机处理体验。CUDA的出现将为未来的计算机领域带来一番新的景象,我们期望CUDA技术带来更多日常应用的解决方案。

鲜花

握手

雷人

路过

鸡蛋

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

热门文章

     

    GMT+8, 2020-1-19 17:59 , Processed in 0.190506 second(s), 23 queries .