四核CPU大战GPU!谁才是视频转换之王
- 首先问大家一个非常简单的问题:四核CPU有什么用?
答案当然很简单,核心越多可以同时执行的指令就越多,在多任务多线程环境下自然游刃有余。可问题的关键在于只有工作站/服务器才会在同一时间内有大量任务等待处理,一般用户很少同时运行多个特别消耗资源的软件,所以四核CPU在多数情况下并不会比双核强多少。
- 那么在单任务模式下,有多少软件可以支持四核呢?
经过之前的诸多测试证明,大多数日常办公软件、网络应用、甚至特别消耗资源的电脑游戏等都无法从四核CPU中受益;当然也有一些软件能够完全发挥出多颗核心的强大效能,这类软件主要集中在压缩/解压缩、视频转换/编辑、图形后期处理等方面,而且软件数量也在不断增加中。
- 为什么多核处理器的应用范围如此狭窄?
多核心处理器的架构是过去只见于超级计算机的并行运算(Parallelcomputing),适合大规模各自独立的指令处理,而如果想要将由单一处理器负责的程序化整为零,分散到各个处理器进行运算,这对程序设计师而言是一大挑战。所以多核虽然看起来很诱人,但存在的问题经过了十几年都未能解决。
- 多核领域——并行计算——GPU的领域?
压缩/解压缩、视频转换/编辑、图形后期处理这类能够支持多核CPU的软件有个共性,那就是看似单一的任务可以被轻松的拆分为几段,然后交由不同的处理器计算,最后又合为一体,这就是最简单的并行计算模型,所以这类软件很容易发挥出多核处理器的效能。
而并行计算,恰恰是GPU的强项,而且可以说是看家本领,GPU内部动辄整合上百颗“核心”,通过并行计算可以发挥出远超CPU的强大性能。换句话说,只要是能够支持多核CPU的软件,理论上都能够被“改造”成支持GPU计算,那么多核CPU岂不是更加没用了?
作为业界的领导者,Intel近年来频繁更新产品,双核心已成为市场主流,四核心也在大力推广之下逐渐得到很多人接受。但更多的人发现:核心越多、架构越复杂,程序设计师头痛不已,广大用户很难利用到它的效能。
美国斯坦福大学电脑科学教授欧路克腾指出:“如果我是电脑厂商,我会惊慌失措,因为解决方案到现在连影子都没有……这是一大危机,我认为业界对这个问题做得太少、做得太迟。”领导微软公司软件开发的研究与策略长蒙蒂也表示,多核心技术是“近代电脑运算史上概念变化程度最大的变化。”
尽管如此,本着核心越多性能越强的原则,巨人Intel和AMD的脚步不会止步于四核。据了解Intel最新一代的六核心处理器“Dunnington”预计今年下半年上市,AMD积极开发八核心的整合型处理器“Montreal”,可望在明年下半年推出。
但是,大家可能忽略了另一方面,Intel在准备六核心处理器的同时,代号为“Larrabee”的GPU也在紧锣密鼓的研发当中。Intel的目的是把Larrabee设计成为一颗并行计算处理器,而绝不仅仅是一块3D游戏显卡。由此可见,Intel也意识到了多核CPU的局限性太大、性能提升有限、成本功耗难以控制、用户接受度也大不如前,与其盲目增加CPU核心数目,不如重新开发一颗专攻并行计算的GPU。
不过,Larrabee目前还只是一张设计图纸而已,它何时推出、运算能力有多强、软件程序兼容性如何,这些都还是未知数。而作为图形巨头的NVIDIA则率先将新一代的GPU设计成为了一颗专为并行计算优化的图形处理器,为显卡赋予了更多的非3D图形功能,从此显卡不再是游戏的代名词。
其实细数近年来的GPU发展历程,不难看出GPU正在逐步蚕食一些本属于CPU的功能:
- DX7引入,GPU从CPU手中接管T&L(坐标转换和光源),这也是GPU最初的定义;
- DX10引入,GPU从CPU手中接管几何着色;
- 越来越多的游戏开始从CPU物理加速转向GPU物理加速;
- 硬解码高清视频,现在就连整合GPU都支持;
如今,GPU想要从CPU口中夺走一块大肥肉,那就是属于并行计算范畴的所有应用程序,诸如视频转换、压缩、科学计算、财经模拟等等。此类程序和软件对于运算能力的需求几乎是无止境的,多核CPU、多路系统都无法满足其庞大的胃口,相比之下GPU拥有富裕的运算能力,从CPU手中接管并行计算可谓是顺理成章。
可以这么说,CPU是功能较多的,它几乎可以处理任何事情,但由于深度流水作业架构的特性,它处理一些任务时的效率很低。纵观近年来GPU的发展历程,就是一步步的将那些不适合CPU处理的任务转移过来,从而消除程序运算时的瓶颈,大幅提升电脑执行效能,以更小的代价(成本和功耗)实现更强大的性能。
GPU不费吹灰之力硬接高清
就拿常见的高清视频解码为例,主流双核CPU需要倾尽全力才能流畅播放H.264编码的1080p,而普通低端显卡甚至整合显卡只要动用很少的一部分晶体管就能轻松解码两部HDTV。
视频解码已经是老生长谈了,现在我们就来谈谈视频编码,相信很多高清玩家或者视频编缉会首选高端四核处理器,但即便您手头有4核CPU,相信在进行视频编码或转换时,也会因为蜗牛般的速度而恼火不已!
视频编码确实太消耗资源了,每部视频文件的体积都十分庞大,再加上近年来高清视频开始普及,多强的CPU都会被累垮,所以GPU视频转换的概念一经提出就大受欢迎。
最早实现GPU视频转换功能的是ATI,在X1000时代,ATI随驱动附带了一个Avivo Video Converter编码器,能够将一些编码的视频文件转换为PSP、iPod等手持设备支持的格式。在当时来说AVIVO的速度还是不错的,比P4系列主流CPU快两倍以上,可惜的是这个编码器似乎跟GPU处理能力没关系,X1300、X1600、X1800甚至交火系统的性能几乎一样,而且ATI的新显卡(HD2000/3000/4000)不再支持AVIVO编码器,看来ATI被AMD收购后已经基本放弃了GPGPU的相关研发。
而NVIDIA从GeForce 8系列开始,对GPU并行计算投入了高度重视,GPU庞大流处理器的实力被不断释放出来,专攻科学计算的Tesla已经在医学、财务、化学、生物、微观、气象等多个领域取代CPU发挥出了强劲的实力。近年来,CUDA开发平台的使用者与日俱增,GPU并行计算的威力也开始被渗透至民用领域,首当其冲的便是物理加速和视频转换:
前不久NVIDIA官方发布一个体积达2.8GB的CUDA大礼包,支持GeForce 8/9/200全系列显卡,里面包括了完整支持CUDA2.0的Forceware177.92驱动、7个各类GPU物理加速Demo或游戏补丁、1个Folding@home分布式计算包、以及一个GPU视频转换软件。下载地址:http://www.nvidia.com/content/forcewithin/us/download.asp
其中物理加速和蛋白质分布式计算之前我们已经做了非常详细的介绍,现在我们就来仔细研究下使用GPU进行视频编码,到底能比CPU强多少?
这款软件叫做Badaboom,是第三方开发商基于CUDA平台编写,能够充分利用GPU(GF8/9/200全系列)的流处理器进行视频编码,目前软件还处于测试阶段,版本号为0.9_RC9_BETA2,正式版本将会在一月内发布。
Badaboom是一款非常简单易用的软件,功能虽然单一但却非常实用,它能够把常见的视频文件通过H.264编码转换为iPhone、iPod、PSP、XBOX360、PS3等娱乐设备能够支持的.MP4文件。
基本上常见的视频编码格式他都能支持,但输出格式只有一种,那就是H.264编码MP4封装,分辨率最高720p(专业版支持1080p),好在绝大多数掌上设备和娱乐设备都支持这种视频,PSP、iPhone用户有福了!
该软件只要选好视频源文件,选择输出分辨率和码率,或者直接点选右侧的设备就会自动套用内置的输出方案,然后点击下方“Start”按钮就能开始转换,简直是傻瓜式的软件,相信各位玩家一看便会。
DVD版迪士尼经典动画片“恐龙”,轻松转换到iPhone之上
笔者也是iPhone用户,时不时会把一些经典电影转换成iPhone支持的格式,闲暇时分拿出来看看。Badaboom软件不但简单易用,而且速度飞快,能够大大缩短转换时间,如果您经常为iPhone、PSP转换视频,那么一定要向您郑重推荐Badaboom。
一般iPhone用户转换视频都会使用Aimersoft iPhone Converter这款软件,该软件比苹果官方的iTunes更简单易用,而且支持范围更广,但缺点就是和iTunes一样不支持双核,更别提四核了。
● E6550单核模式——转一部DVD需要1小时15分13秒
● QX9770单核模式——转一部DVD需要51分57秒
QX9770比E6550主频高、外频高、缓存大,所以单核模式速度也快一些
可以看出,使用Aimersoft转换一部DVD到iPhone格式,普通的CPU需要花费1个多小时的时间,几乎相当于重看一遍电影了,速度之慢让人难以忍受。不过好处就是CPU空闲率很高,在转换视频的过程不影响上网、看片等轻负载操作。
如果追求效率的话,必须使用支持多核的软件,这类软件并不多而且大都存在兼容性问题,设置起来也很复杂。最终笔者选择了MediaCoder这款软件,可以将双核/四核的占用率加至100%,转换效率倍增!
● E6550双核模式——转一部DVD需要43分
虽然MediaCoder能够支持双核CPU,但视频转换速度并没有比Aimersoft直接提高一倍,看来双核心的效率不可能达到200%,能到190%已经非常不错了。
● QX9770四核模式——转一部DVD需要15分54秒
可以看出,只要软件能够支持四核,那么视频转换时间就能大大缩短,性能提高310%,节约不少宝贵的时间,不过此时就连上网也会比较慢……
看来多核CPU也需要好的软件支持才能发挥出真正实力,同理GPU想要进行编码也需要软件支持到位,目前还只有BadaBoom这一款软件能支持,虽然对视频格式的兼容性不够好,效能也不是最优化,但我们通过它可以一窥GPU的视频编码性能。
还是转换DVD版迪士尼经典动画片《恐龙》,这次使用9800GTX显卡编码,搭配的CPU为双核E6550和四核QX9770,看看效果有什么不同?
● E6550+9800GTX GPU编码模式——转一部DVD需要14分42秒
可以看出,用E6550搭配9800GTX进行编码,速度已经比QX9770还要快,唯一比较遗憾的是CPU占用率较高,需要独占E6550的一颗核心。看来CPU也参与了视频编码运算过程,视频和音轨的分离合成、数据的读取/写入、最终文件组合封装都离不开CPU,GPU只负责编码,因此CPU占用率偏高可以理解。
那么如果我们把CPU更换为四核,转换速度会不会更快呢?
● QX9770+9800GTX GPU编码模式——转一部DVD需要14分06秒
更换为QX9770之后,视频转换速度快了36秒(4%),看来CPU在视频转换过程中的确只起到配角的作用,并不会让性能大幅提升。通过QX9770 20%的占用率来看,折算下来应该和E6550 50%的占用率差不多,只是凭借更大的二级缓存和更高的外频让转换效率提高了一点点。
● E6550+9500GT GPU编码模式——转一部DVD需要27分31秒
前面测试用的配置太过高端,可能对很多朋友都没意义,现在就使用一套中低端配置进行测试,显卡使用刚发布不久的9500GT,只有32个流处理器(9800GTX的1/4),其实也就是新版8600GT,用它来转换视频的话性能会不会很低呢?
看来9500GT的性能并不弱,几乎接近9800GTX的一半了。现在回过头来对照下E6550编码时的情形,单核模式花费了75分钟,双核模式也得43分钟。看上去9500GT的编码性能要比E6550强很多,但值得注意的是这其中还有E6550的一部分功劳,它也贡献出了40%的性能,简单估算下来的话,9500GT的纯编码性能要比E6550强一些。
前面的视频转换测试都是从DVD(640×480)转换为iPhone(480×320),应用范围比较窄,码率也不是很高。现在笔者就进行高清视频转换测试,把网上下载的1080p HDTV压缩成720p,这样就能节约不少存储空间,一部大片基本都能控制在4.3GB左右,可以刻录在DVD光盘当中保存,相信很多预算有限的高清玩家会经常使用。
由于高清编码太费时间了,所以这里笔者并没有转整部HDTV,而是选择了《蜘蛛侠3》末尾最精彩的一段进行转换测试,1080p源文件4.3GB,压缩成720p之后是1.3GB。
使用BadaBoom转HDTV也很方便,只要在右侧点选Apple TV、XBOX360或者PS3就可以了,因为这些娱乐设备都支持720p H.264 MP4格式的文件,这样视频输出分辨率就是1280×720,其它选项默认或者根据需要微调即可这里笔者把画质和码率都调成最高质量。
可以看出,转高码率1080p视频的速度就要比DVD慢很多了,不过此时CPU占用率也下降了一半。这就再次证明了CPU在BadaBoom中只是起到辅助作用,当GPU特别繁忙的时候,GPU和CPU之间的数据交换不是很频繁,所以CPU的负载也轻了一些。
9800GTX只用了11分34秒!这个成绩要比QX9770四核模式的15分54秒缩短了4分20秒,结果令人非常满意。要知道一片9800GTX只卖1000元,而QX9770的售价在7000元以上,即便是Intel的低端四核Q9450/Q9550售价也在2000元以上,而且必须超频才能获得接近QX9770的性能。
再看看入门级的9500GT显卡,它转换4.3GB的HDTV花了23分50秒,几乎是E6550双核模式43分钟的一半时间!目前E6550的售价是1000元,3M二级缓存的E7200也得800元,而一块9500GT仅售500元。
现在就把所有的测试成绩汇总,这样做对比就非常直观了:
● HDTV视频转换成绩对比:
如果单纯比转换所需时间的话,GPU显然要比CPU快不少,但实际情况并非如此简单,因为GPU在编码的时候CPU占用率并不低,CPU也贡献了一部分力量。
如果非要把CPU的功劳“抵消”掉,单纯计算GPU和CPU的编码能力确实不简单,经过简单估算,笔者认为9800GTX要稍逊于四核QX9770,而9500GT肯定强于双核E6550。
● DVD视频转换成绩对比:
再来看看DVD转换的成绩,CPU和GPU的性能差距幅度和HDTV转换基本差不多,看来Badaboom软件对于常见片源的支持度还不错:
这里笔者特意加入了两颗CPU在单核模式下的成绩,因为单核模式下E6550的CPU占用率是50%,而9500GT在编码时E6550的占用率是40%;单核模式下QX9770的CPU占用率是25%,而9800GTX在编码时QX9770的占用率是20%——这意味着什么呢?
意味着使用GPU进行硬件视频编码的话,不但CPU占用率更低,而且速度提高了3-4倍,为用户节约了大量宝贵的时间。
而且,9800GTX搭配主流双核进行视频编码时的性能就要比四核CPU强不少,如果您放弃四核购买双核搭配9800GTX的话,这无疑就能节约上千元的投资!
● Badaboom转换软件还不够成熟,兼容性运算效能有待提高
对于资深高清玩家来说,Badaboom软件的功能还是太简单了,但对于大多数普通用户而言,这款简单高效易用的软件具有极强的亲和力,在H.264编码横行手持设备和娱乐设备的今天,实用性毋庸置疑!
由于版权问题,Badaboom只支持正版光碟和标准的视频格式,对于国内网络流行的那些五花八门的视频文件可能无法支持,不过该软件正在被不断的改良,据笔者了解1.0版本的兼容性就好了很多,相信未来的正式版本将会支持更多的格式,非标准封装的视频文件也能通过特殊的手段加以支持。
网上下载到的TS封装《变形金刚》和《蜘蛛侠3》能被很好的支持
笔者经常测试高清解码用的《变形金刚》,现在被用来进行编码测试
Badaboom最高支持输出720p的视频,只有付费的PRO版本才完美支持1080p,输入输出视频的选项也会更加丰富,因此本文最高只作了1080p压制720p的测试。
通过实际测试来看,128SP 9800GTX的视频编码性能居然只有32SP 9500GT的两倍,看来Badaboom软件尚未完全释放出9800GTX的潜能,希望今后的正式版本能够继续优化性能。我们可以想象,目前9800GTX的性能已经十分接近最强CPU QX9770了,那么拥有240SP的GTX280将会强到什么程度呢?
其实GPU视频转换只是GPU并行计算当中一个小小的应用领域而已,Badaboom也只是其中的一款视频编码软件,目前基于NVIDIA CUDA语言编写、支持GPU硬件加速的软件数量正在逐渐增多,预计在未来用两个月内将会与广大用户见面。
● TMPGEnc——老牌专业视频编码转换工具支持CUDA2.0
视频编码转码一直是让许多软件开发者头疼的大运算量应用,新的并行计算技术往往可以使速度成倍提升。而开发TMPGEnc的Pegasys公司也一向对新技术十分敏感,当年他们的软件就是率先支持多核心处理器加速的先锋之一,对于Intel的SSE系列指令集也第一时间支持从而优化编码效能。现在又有了GPU通用计算的助力,四倍以上的速度提升也并不稀奇。
● Adobe Photoshop CS4/PDF Reader——全面支持GPU加速
无论带有2D图文还是3D插件的PDF,都可以利用GPU高速浏览
而且显示效果会比CPU软件加速更好
Photoshop在处理超大像素图片(旋转缩放)时效率会大幅提高
● MD5 Password Cracker——暴力密码破解工具利用GPU加速
当大家的视线还停留在视频解码和编码的时候,破解领域的朋友们已经敏锐的嗅到了GPU硬件加速的优势,这些“天才”程序员率先将GPU强大的并行计算能力应用在了非图形领域,以后遇到什么加密的PDF/RAR文件,是否有兴趣让您的显卡去算一算?
● PhysX GPU物理加速和Folding Home分布式科学计算(省略)
● 全文总结:GPU不再是3D的代名词
在双核多核CPU普及到千家万户的今天,很多软件依然不能很好的利用多核的效率。而GPU并行计算毕竟是一个新生事物,软件支持还不到位是完全可以理解的。但随着NVIDIA的大力倡导和CUDA平台开发者的与日俱增,一款款突破GPU应用层面的软件相继面世,GPU强大的浮点运算能力显露无遗,CPU在电脑系统中的核心地位面临挑战!
显然,GPU不仅能够玩游戏、3D绘图,它还能处理很多高负荷任务,而且比CPU干得更好……<