新浪科技

让GTX460超越游戏CUDA应用软件解析

太平洋科技

关注

08月04日太平洋电脑网浙江站本月初,NVIDIA正式发布了GeForce GTX460显卡,作为NVIDIA中端市场的主力产品,GTX460基于全新的GF104图形核心,相比较GTX470和GTX480,GTX460精简了图形架构,因此降低了核心成本和功耗,但是在性能上依然能大幅度超越上一代中端产品,却保持了和上代中端产品接近的价格,获得了媒体和消费者的一致赞誉和强烈关注。

虽然NVIDIA新一代中端产品的发布和上市时间远远落后于竞争对手,但是对于很多玩家来说,GeForce显卡出色的游戏性能、前卫的技术支持和良好的兼容性让他们依然不断的等待,从INMARK数据调研来看,第二季度NVIDIA的GTS250和GTX260依然保持着极高的市场关注度。

GTX460的上市满足了很多玩家的心愿,其犀利的游戏性能和震撼性的价格一经上市便广受好评,对于GTX460架构和性能分析,大家可以回顾文章《NVIDIA大反击!千元级王者GTX460评测》,而今天,我们继续深入探讨GTX460的其它技术领域,那就是已经被消费者广泛应用的CUDA技术。

作为视觉技术的领导厂商,NVIDIA显卡在图形技术方面的创新和发展始终没有停滞过,为大家所熟知的3D Vision、CUDA和PhysX为玩家创造了更为逼真的游戏、电影体验。

3D Vision相比较而言更注重玩家的外部体验,而CUDA则是NVIDIA的一个底层核心战略(PhysX是基于CUDA的上层技术),它甚至是NVIDIA对于GPU未来理念的一个体现。

随着几年的积累,CUDA技术已经应用在各类大负载的运算当中,甚至在商务、科学等领域也大有斩获,但是对于广大的消费者来说,如何更好的通过CUDA技术将自己电脑中的显卡GPU利用好,才是更贴近实际的问题。

本文就为大家介绍一些最新或热门的CUDA应用软件,并同时结合最新的GTX460显卡进行简单的测试,看看在中端价位上,GTX460的推出除了在游戏性能上拔得头筹,还能在各种应用方面获得怎样的优势。

在此之前,我们先来回顾一下GTX460的架构革新,正是因为GF100这一代产品从根本架构上为CUDA的优化,才让其有着更优越的扩展性能。

基于GF100核心 CUDA的运算能力更强大

虽然G80和GT200图形核心已经可以在CUDA运算方面做的非常不错,但是GF104系列核心具有更强大和更精准的CUDA运算能力,因为从架构设计的开始,NVIDIA就为其注入了CUDA运算的灵魂。

首先,新架构提供了对并行线程执行2.0指令集的支持,PTX是级别较低的虚拟机和ISA,目的是为了支持并行线程处理器的运作,在PTX被载入的时候,PTX指令会被GPU转换为可读的机器代码。PTX 2.0增加了很多新特性,比如IEEE 32位浮点精度、所有变量和指针都有统一的寻址空间、支持64位寻址、OpenCL和DirectCompute的新指令,以及最重要的对C++语言的支持,这些都将将会对GPU的可编程性、精度以及性能方面带来较大的提升。

其次,对于各种不同的应用程序来说,虽然共享缓存能够解决不少问题,但并非能够解决所有问题。程序当中经常会出现关联共享缓存的情况,而有些程序则更希望调用高速缓存,甚至还有要求两者全部调用的情况。为了让这些程序能够得到更好的优势,且满足不同的需求,GF104核心设计了全新的内存层级结构。

在GF104当中,抛弃了原有的纹理操作提供只读而像素数据提供只写的情况,改为了全新的加载/存储单元。并且在GF104当中的每一个SM阵列当中均增加了一个L1高速缓存,同时配备所有SM阵列可以共享的L2缓存,如此以来所有读取以及存储操作均可被支持。在每个SM阵列当中的64KB缓存上,可以将其分为48KB共享缓存和16KB的L1缓存组合,也可分为16KB的共享缓存和48KB的L1缓存组合。对于例如电子动态模拟这类需要大量使用共享缓存的程序,其性能将得到三倍左右的提升,而对于一些无法确定内存访问情况的程序,48BK的L1缓存设置则将会发挥更大功效。

另外,GF104的GigaThread引擎也经过了改进,G80的GigaThread引擎能够管理最多12288个线程,在新的架构当中,GigaThread引擎得到了再次提升,并且加入了最新的双级分布式线程调度器技术。GigaThread引擎负责将准备处理的线程块格为不同的SM阵列分配为线程块,而每个SM阵列当中的双Warp调度器负责将每个线程块分配为32个线程。Fermi的GigaThread引擎提升了线程吞吐率,同时动态加快了上下文交换、并发内核执行、以及改进的线程块调度等操作。

GTX460架构更新,让CUDA运算更具效率

GTX460的GF104核心在GF100的基础上经过了全新的设计,在GF104的每个SM阵列当中,与原GF100架构当中的SM阵列内安置了同样的功能单元,但是在数量方面发生了一定的变化。

最为明显的就是每个SM阵列当中的CUDA核心数量由GF100当中的32个升级到了48个,同时搭配的Load/Store Unit(载入/存储单元,负责运算线程地址)、Special Function Unit(特殊功能单元,负责执行其他抽象指令)单元数量也都进行了相应的调整。

除了CUDA核心激增到48个以外,双Warp Scheduler(Warp调度器,负责为后面的Core将线程块分解为线程)搭配的Dispatch Unit(分派单元,负责分派由Warp调度器分配后的指令)由两个升级到了四个,每个Warp调度器均搭配了两个分派单元。

这样的设计是由于CUDA核心数量的增加而进行了相应的调整,其目的在于让每个CUDA核心能够确保满负荷的运行状态,避免在一个指令周期内出现CUDA核心空循环的现象。在进行改变之后的双Warp调度器单元,能够更好的确保每个SM阵列当中的CUDA核心及时得到指令进行处理。

此外GTX460的核心设计改为了6个CUDA核心与两个LD/ST单元及一个SFU单元为一组,也就是说,在新的GF104架构当中,CUDA的执行效率将会更高,如果映射到游戏当中就是同流处理器情况下GF104架构运行速度将会更快。

CUDA在游戏中的应用(1):光线追踪

介绍完CUDA在架构上的技术更新,下面我们进入实际探讨的部分,这些内容与消费者密切相关,可能在现在或者不久的将来,每一个GTX460的用户就能体验到。首先我们来为大家介绍CUDA技术在游戏中的应用,首先就是光线追踪。

光线追踪这一技术很久以前就已经被好莱坞电影制片商所应用,但是在家用游戏领域,这一技术却迟迟没有得到推广。原因并非是光线追踪的技术有多高超:我们知道普通游戏对于画面的渲染要达到每秒要几十帧甚至上百帧,而光线追踪技术不仅以往的GPU无法做到及时渲染,甚至还需要几个小时甚至更久的时间来渲染一帧的画面。

这种情况对于好莱坞的电影开发商来说并没有关系,因为他们可以花费半年甚至一年的时间制作一部仅有90分钟时长的电影,他们可以尽情的将每一帧画面做到极致,花费一两天的时间都有可能,对于玩家来说,有可能承受这样漫长的等待么?

在光线追踪的算法中,GPU需要反复的进行循环计算,这也是以往GPU无法胜任的一个重要原因——无法支持硬件循环。除此以外,由于光线追踪计算的光线为不可预测的,因此这就需要占用大量的随机存储器进行存取。

在GTX460上,不仅首次支持了硬件循环。同时,通过提升L1、L2的缓存存取性能以及容量,也为大量随机存取数据提供了更好的支持。以上两点以及GF100的出色性能表现造就了GF100架构在光线追踪方面的巨大性能提升。另外在路径追踪等高级全局照明算法中,GTX460的架构设计也让其得到了更好的性能。

NVIDIA还专门为光线追踪推出了一个名为OptiX的引擎,这一技术在09年的8月被NVIDIA首次亮相,于11月左右正式推出。开发者可以使用这套引擎来对交互式光线追踪效果进行开发。并且针对Quadro以及Tesla用户提供了免费下载。上图当中就是采用了OptiX引擎开发的一套交互式光线追踪渲染的画面,可以看到车身上的反光效果近乎达到了真是的程度。

CUDA在游戏中的应用(2):流体力学

前文我们已经介绍过,CUDA是PhysX技术的基础,基于CUDA运算的平滑粒子流体力学算法的推出,让游戏中的流体效果进一步提升。我们依然用去年底上映的好莱坞大片《2012》来为大家介绍。在电影《2012》当中大量的海水、巨浪以及天气效果都与“水”息息相关。而通过物理计算,能够让这些水面、气候效果看起来更加的真实。由此看来,与“水”相关的物理加速同样会为玩家带来更好的游戏效果。

与“水”相关的物理加速效果,在2003年由Müller等人开发的交互式流体模拟算法——平滑粒子流体力学(SPH,smoothed particle hydrodynamics)的天体物理学算法,演示了5000个SPH粒子以每秒5帧的速度模拟一杯水倾泻出来的效果,得到了广泛认可,并且最终被收录到PhysX的算法当中。

在GTX460当中,NVIDIA专门为SPH算法加入了改良后的解算器,配合新架构核心的出色并行计算能力,游戏开发者可以以每帧128000个粒子的数量加入到游戏当中,还能够保持较高的帧数渲染。在粒子数量激增到128000个后,模拟雨水效果、水花效果、漩涡效果、溢出效果等将会得到更加真实的表现。

除了能够模拟水滴效果外,SPH算法还能够模拟泥浆、血液、油料等不同特质的流体。例如在血液当中,其粘稠度以及滴溅的效果均与普通水滴不同,开发者可以通过SPH调节用来模拟血液的粒子参数,来达到更加拟真的程度,因为无论是水滴、血液、油料等不同液体材质其物理特性大体相仿,都能够通过SPH算法进行模拟。

从架构上来说,SPH算法几乎不会利用共享存储器以及L2缓存,因此可调节的64KB片上缓存就成为了SPH算法的制胜法宝。通过调整,SPH算法可以享用到48KB的L1缓存,并且由于极少采用L2缓存,因此其存取速度得到了大幅提升,并且这样的算法能够为其他需要L2缓存以及共享缓存的进程最大程度的节省空间,配合20ms的切换速度,让SPH算法在新显卡当中得到了最大程度的提升。

CUDA在游戏中的应用(3):画质提升

实际上,在某些游戏中,基于CUDA的运算已经为NVIDIA显卡带来了ATI所不能的画质提升,下面就是《正当防卫2》中,仅有NVIDIA显卡才能开启的画质选项和相应的截图对比。

下面就是《正当防卫2》的高级图形设定中仅有NVIDIA显卡可以开启的专用选项,分别为“Bokeh Filter(远景景深模糊)”和“GPU Water Simulation”(GPU水面模拟),这两个选项基于NVIDIA的CUDA运算加速,因此ATI显卡玩家无法享用(控制面板中直接隐去)。

下面是《正当防卫2》中开关这两个选项在画面上的区别。

从上面截图可以看出,远景的画面明显发生了变化,由于天气或等情况造成的视野模糊程度更加明显。

水面效果的变化也非常明显,光影在水面的效果更为逼真,不过下面两张截图对于“Bokeh Filter”效果的展示略为生硬,远景模糊的分界线过于明显。

CUDA视频实战:测试平台和说明

◆ 测试平台

测试平台配置表
硬件平台
处理器 CPU 英特尔Core i5 670@ 3.47GHz
主板 Motherboard 华硕P7P55D-E(Intel P55)
内存 Memory 金士顿DDR3-1333 4GB(2GB×2)
硬盘 HDD Seagate Barracuda(希捷酷鱼)7200.11 320GB
显卡 VGA Card

盈通GTX460-768GD5封神版
七彩虹 igame GTX460(1024M)
Radeon HD5830

声卡 Audio 主板集成声卡
散热器 Cooler 超频三 南海2 HP-1204X
电源 Power 振华 冰山之星 SF-600
操作系统
操作系统 OS Windows 7 Ultimate 32bit
驱动程序
主板驱动 MB Drivers

Intel 芯片组驱动程式 V9.1.0.1007

显卡驱动 VGA Drivers

NVIDIAGeForce 258.96 测试版
NVIDIA 3D Vision 258.96 测试版

◆ 平台介绍

测试平台方面我们选择了一款了华硕的P55主板,处理器为Intel酷睿i5 670,内存为双通道总共4GB。显卡方面我们选择的是盈通GTX460-768GD5封神版(768MB版本GTX460)和七彩虹igame GTX460(1GB版本GTX460)分别对比两种版本的产品性能。

CUDA的视频应用(1):MediaCoder

CUDA对于普通消费者来说,除了游戏方面的画质效果提升,另一个重要的处理优势就是视频方面的计算,包括视频转码、视频解码加速、视频后处理等等,因为视频的运算偏于大规模的并行计算,因此借助CUDA技术可谓恰到好处。

首先我们为大家介绍目前最为火爆的一款视频转码软件,那就是MediaCoder。MediaCoder是一个免费的通用音频/视频批量转码工具,它将众多来自开源社区的优秀音频视频编解码器和工具整合为一个通用的解决方案,可以将音频、视频文件在各种格式之间进行转换。

MediaCoder具备一个可扩展的架构和丰富的功能,可满足各种场合下的转码需求。目前,MediaCoder已经拥有上百万来自全世界170多个国家的用户。类似于播放软件中的“终极解码”,MediaCoder同样是集成了众多解决方案的一个集合类软件,玩家可以选择各类插件进行相应的计算,对于CUDA的支持,让这个软件在运算速度上如虎添翼。

MediaCoder主要功能和特点简介:

  • 实现各种音频视频格式间的相互转换
  • 丰富的可调整的编码参数
  • 丰富的视频处理滤镜,包括反交错、裁剪、分辨率调整、亮度色彩调整等
  • 丰富的音频处理滤镜,包括声道映射、重采样、音量调整等
  • 基于优秀的众多的开源编解码后台,能够解码和编码的格式多
  • 良好的多线程设计,为多核处理器优化,在四核上可达到90%以上的平均CPU使用率
  • 极为丰富的可调整的编码参数
  • 全部编解码器自带,不依赖于系统的编解码器和任何组件
  • 良好的可扩展的程序架构,快速适应新的需求,不断增加新的格式的支持
  • 可用脚本语言扩展界面,支持众多影音设备

MediaCoder软件实战对比测试

除了常规的版本,MediaCoder还推出了基于CUDA的专用版,在界面和操作方式上有所优化,更加简洁的界面和操作方式让普通玩家可以更快的进行视频转码,而无需过多的设置,对于NVIDIA显卡的用户来说,我们推荐这一版本的MediaCoder转码器(官方下载地址)。

CUDA专用版将各种流媒体的输出格式用终端设备所代替,包括Iphone、最新的Ipad、PSP和手机等都有收录,玩家简单的设定视频流的分辨率、编码率等就可以实现快速的转码操作。

◆ 对比测试

GTX460两个版本之间的区别不大,但是相比较HD5830速度要快很多,领先幅度达40%多,借助CUDA的计算能力,玩家在转换视频的时候可以节省大连的时间。我们的测试片段相对较短,如果玩家将整部影片转码,节约的时间就更可观了。

CUDA的视频应用(2):Badaboom

Badaboom是读者都已经非常熟悉的一款软件了,这款软件伴随着CUDA技术的正式发布,目前依然受到了很多NVIDIA显卡用户的青睐。

Badaboom主要应用在视频转换上,进行视频编码的操作我们平时经常用到,例如我们要将从网络上下载或者从DVD上获得的视频文件进行重新的编码压缩,才能传到我们手机、IPOD、iPhone以及PSP中观看。Badaboom的解决方案非常清晰,直接将这种输出模式放在最明显的位置,非常方便初级用户使用。

一般情况下视频编码完全是由CPU进行计算处理,CPU性能越强,编码速度越快。不过在应用CUDA技术的NVIDIA显卡上,我们可以使用GPU的强大性能来进行视频编码。经过实测,其速度要比CPU编码超出数倍。

日前Badaboom升级到了最新的v1.2版本,感兴趣的用户可以尝试最新的版本,新版本增加了多个新功能,支持更大的分辨率输出,并修正了大量已知问题。Badaboom支持的格式包括:

  • 输入视频格式:MPEG-2、H.264/AVC、AVCHD、HDV、RAW、MPEG-1、WMV、VC-1、DivX、Xvid、FRAPS
  • 输入音频格式:AC-3、MP2、PCM、AAC
  • 输入文件类型:M2V、MPG、VOB、AVI、TRP、TS、M2T、M2TS、MPEG、MTS、MOV、MP4、MKV、WMV
  • 输入分辨率:最高1920×1080
  • 输出视频格式:H.264 (MP4) Baseline Profile、H.264 (MP4) Main Profile
  • 输出音频格式:AAC-LC (2 Channel)

BadaBoom软件实战对比测试

由于BadaBoom这款软件是一款专门针对CUDA计算而开发的软件,因此这款软件就无需开启GPU加速功能了(因为BadaBoom只支持CUDA加速计算)。软件的使用界面也非常简单,除了我们在上一页看到的主界面外,还可以点击Advanced按钮进入高级选项当中进行设置。当然,实际上对于普通用户而言,直接选择你需要输出的视频格式,点击开始就可以了。

◆ 对比测试

因为BadaBoom不支持ATI显示卡,所以这项对比成绩我们与NVIDIA的上一代同档次显卡GTX260进行对比,可以看出,GTX460的领先接近40%,足以说明GTX460的新架构对于CUDA运算的提升。

CUDA的视频应用(3):vReveal

除了视频转码,现在大家用手机(或摄像头)拍摄和分享照片、视频已经成为很多普通消费者的乐趣,但是限于手机摄像头的性能限制,以及拍摄环境的复杂,往往拍摄出来的照片或者视频并不能让人满意,进行适当的后处理,让照片和视频更为清晰,可以大大增加分享的乐趣。

 下面我们介绍的就是一款基于CUDA技术的视频后处理软件“vReveal”,通过特别的算法,它可以让本来模糊、抖动、灰暗的视频画面变的更为清晰和亮丽,而借助CUDA技术,这个转变过程变得更加行云流水和更具效率。

vReveal这款软件的界面非常简单,对于大多数初学者用户来说上手自然也就非常方便了。用户只要将需要优化的视频拖拽或者添加(实际上,首次安装完毕vReveal软件后,系统会自动搜索视频文件)到软件当中,就可以轻松对这些视频进行编辑了。

这款软件虽然能够支持CUDA架构的GPU计算,不过同样也是一款支持CPU计算的软件,因此我们在使用前一定要确认在软件当中打开了GPU加速的支持。软件安装完毕后默认是开启GPU加速的,我们可以参考下图的设置确认是否开启了GPU加速功能:

从软件设置上很容易看出,这款软件目前仅提供了对NVIDIA统一架构显卡的支持,而对于ATI产品来说,目前尚未提供支持。我们在确认好开启GPU加速之后,接下来就可以尝试为手机或者小型数码相机拍摄的视频短片进行优化了。

vReveal软件实际操作介绍

对于视频的画质增强功能,主要就是下图展示的几个功能,包括去除噪点让画面更为清晰,通过插值运算让画面更为锐利,调节对比度让画面的主题更为突出,通过特别的计算方法让图像不再抖动等等。

 下面是我们用一段实际视频实验得到的截图,左侧画面为为开启任何效果,而右侧画面将所有增强效果开启。可以看出画面的明显区别。

左侧画面更为昏暗,主题不突出,而通过处理的画面锐度变得更高,可以看清很多细节元素,另外在功能选项中的“防抖”技术非常好玩,它是利用截取视频中的恒定部分让画面更为稳定,实际播放的效果更为明显。

实际上这些算法也可以在CPU的帮助下完成,只不过通过CPU计算会占用非常巨大的CPU资源,导致在视频优化过程当中用户不能够流畅进行其他操作,下面两幅截图就是在视频优化处理过程当中的实际截图,我们可以明显看到GPU加速时CPU占用率非常低,并且视频画面也能够做到实时效果。

除了CPU占用率方面的差别外,CPU计算的另一大弊端在于视频处理的速度也非常慢。上图的性能对比可以说明一定的问题。如果单纯利用CPU来进行计算,即便是目前顶级的酷睿i7,也只能达到10fps左右的运算速度,而利用CUDA技术的NVIDIA显卡只需很少的投资便能实现更快的速度,GTX460就能实现比CPU两倍以上的性能提升。

CUDA的视频应用(4):威力导演

除了手机拍摄的视频,很多玩家也会使用DV在外出旅游时记录下美好时光。不过在每次外出完毕后,拍摄的视频如何剪辑就成为了不少用户头疼的问题。

基于CUDA技术的威力导演这款软件就是专门针对这样的人群而设计的一款简便易上手的视频剪辑软件。软件的界面非常具有前卫感,提供的功能包括了视频剪辑、音频分离、音频剪辑、过场效果、视频特效、字幕效果等等等等,可谓非常全面。即使是对于有一定专业要求的用户来说,威力导演也能够满足他们的需要。

不必多说,这款软件自然也是一款基于CUDA架构而设计的软件了。我们可以在软件的设置界面当中,打开“编辑”选项卡,在这个选项卡的底部就可以看到开启GPU加速的选项了:

值得注意的是,这款软件同样是一款仅支持NVIDIA CUDA架构的GPU加速软件,而软件也提示用户尽量选择性能稍高的显卡进行计算。不过通过我们的实验,即使目前NVIDIA的入门级产品也基本上等同于现在顶级的CPU性能了。

威力导演软件实际操作介绍

在设置完毕GPU加速之后,我们就可以对我们自己录制的视频片段进行编辑了。当然,用户也可以在视频当中任意加入过场效果、字母、配音、特效等等。需要注意的是,部分特效是需要GPU加速才能够开启的。
 
在采编完毕视频之后,接下来就是考验GPU加速的最重要时刻了——视频输出。下图分别为开启和关闭GPU加速之后的性能表现:

虽然从表面上来看,采用CPU加速仅比GPU加速慢了1分左右,不过读者需要注意的是,处理器方面我们使用的顶级的高价处理器,而对于NVIDIA的用户来说,一块千元级别的GTX460搭配主流的处理器就能将处理速度提升一倍以上,从性价比来看真是非常出众。

GTX460创造新中端显卡的性能标杆

对于NVIDIA新推出的GTX460显卡的CUDA介绍和测试就到此为止,我们得出的结论就是:“GTX460创造了新中端显卡的性能标杆”,这个性能标杆不仅游戏性能,同样还指基于CUDA的通用计算性能和基于PhysX的物理运算性能,当然,本文主要涉及的内容主要基于CUDA的通用计算性能。

在文章的引言我们就指出了GTX460的上市创造了很强大的震撼性,这个提法并不是空穴来风,NVIDIA的产品战略在这一代产品上体现的淋漓尽致,GTX260虽然也创造了一个时代的性能标杆,但是其毕竟是从较高的价格降价而来,但是GTX460上市之初就直接瞄准中端市场,其所造成的性能震动自然不可小视。

对比竞争对手同档次的HD5830,GTX460首先在价格上就具备一定的优势,在3D游戏性能上GTX460也取得先机。而今天我们介绍的基于CUDA技术的GPU通用计算方面,更是GTX460的强项,它已经在基于CUDA技术的通用计算方面大有斩获,基于CUDA技术的应用软件越来越多,已经完全贴近了普通消费者。

CUDA是NVIDIA的一个底层技术,其已经在商业和科学运算方面获得了认可和支持,甚至好莱坞的电影业也开始使用基于CUDA技术的显卡进行后期渲染和运算,包括《2012》、《阿凡达》这类大制作都使用到了NVIDIA的CUDA解决方案。

CUDA对于普通消费者的影响也非常大,从游戏画质的提升,到未来光线追踪技术的储备,再到各种视频转换、视频后处理等等,这些操作都会给用户带来更好的享受:更为美妙的画面或者更快的处理速度。

加载中...