實(shí)機(jī)評(píng)測 - Windows 7 RTM對(duì)Nvidia CUDA技術(shù)的支持

2009/9/14 9:53:07    編輯:Windows7之家 - Mary Jane     字體:【

Win7之家afsion.com.cn):實(shí)機(jī)評(píng)測 - Windows 7 RTM對(duì)Nvidia CUDA技術(shù)的支持

 圖形巨頭NVIDIA推 出的GPU通用計(jì)算技術(shù)CUDA相信大家都有所了解,然而隨著Windows 7逐漸成為熱門的關(guān)注對(duì)象,有一部分人對(duì)Windows 7是否支持CUDA、能否很好的支持CUDA產(chǎn)生了質(zhì)疑。原因很直接——因?yàn)閃indows 7支持微軟自家的Direct compute!

開創(chuàng)視覺計(jì)算帝國GTX280/260權(quán)威評(píng)測

    但事實(shí)真的是這樣嗎?今天,筆者就再一次針對(duì)CUDA的概念、架構(gòu)等進(jìn)行剖析,并且分別在Windows Vista與Windows 7操作系統(tǒng)上對(duì)CUDA性能進(jìn)行對(duì)比測試,以達(dá)到撥亂反正的效果。

    在進(jìn)行正式的對(duì)比評(píng)測之前,我們首先必須要了解CUDA到底是什么?而筆者也發(fā)現(xiàn)正是因?yàn)楹芏嗳藳]有對(duì)CUDA進(jìn)行真正準(zhǔn)確客觀的了解,才導(dǎo)致了對(duì)CUDA和Direct Compute的誤解。我們先來看看NVIDIA官方如何解釋CUDA這個(gè)概念:

    CUDA是一種由NVIDIA推出的通用并行計(jì)算架構(gòu),該架構(gòu)使GPU能夠解決復(fù)雜的計(jì)算問題。 它包含了CUDA指令集架構(gòu)(ISA)以及GPU內(nèi)部的并行計(jì)算引擎。 開發(fā)人員現(xiàn)在可以使用C語言來為CUDA架構(gòu)編寫程序,C語言是應(yīng)用最廣泛的一種高級(jí)編程語言。所編寫出的程序于是就可以在支持CUDA的處理器上以超高性能運(yùn)行。將來還會(huì)支持其它語言,包括FORTRAN以及C++。


NVIDIA提供的CUDA開發(fā)包中的C語言編譯器版本更新很快

    可以看到,CUDA真正意義上來說是一種通用并行計(jì)算架構(gòu),但又包含了CUDA指令集架構(gòu)和GPU內(nèi)部的并行計(jì)算引擎。就如同CPU的情況一樣,X86的架構(gòu)也包含ISA和執(zhí)行指令的硬件架構(gòu)。各種應(yīng)用程序都基于這個(gè)架構(gòu)進(jìn)行開發(fā)并在此上運(yùn)行?梢哉fCUDA架構(gòu)的GPU是圖形渲染架構(gòu)與并行計(jì)算架構(gòu)的合體!

CUDA本意就是一種架構(gòu),但很多人認(rèn)為CUDA是一種語言、或者是開發(fā)平臺(tái),這可能跟NVIDIA最初的宣傳、推廣策略有關(guān)系。在CUDA架構(gòu)誕生之初(GeForce 8時(shí)代),尚不存在專門針對(duì)GPU并行計(jì)算的開發(fā)平臺(tái)以及編程語言,因此NVIDIA必須給程序員提供一種簡單、易上手、并且完整的軟件開發(fā)解決方案,這樣NVIDIA所發(fā)布的CUDA包當(dāng)中就包括了針對(duì)GPU的C語言編譯器、糾錯(cuò)器/制模器、專用驅(qū)動(dòng)和標(biāo)準(zhǔn)函數(shù)庫等。


除了支持自家C語言編譯器之外,更多的語言及API都能運(yùn)行在CUDA架構(gòu)

    上圖就很好的反映出了CUDA與應(yīng)用程序接口(API)以及各種語言編譯器的關(guān)系,其中的DX11計(jì)算也就是Direct Compute,可以看出CUDA架構(gòu)和Direct Compute并無沖突。包括CUDA自家編譯器所采用的C語言擴(kuò)展、OpenCL應(yīng)用程序接口、Fortran甚至C++等都可以運(yùn)行在CUDA架構(gòu)之 上,未來CUDA還將支持更多的語言。在整個(gè)產(chǎn)業(yè)的共同推動(dòng)下,GPU計(jì)算可謂是前途無量!

    實(shí)際上,在微軟的一份Direct Compute宣傳PPT中,我們也可以看到Direct Compute是完全建立在符合統(tǒng)一渲染架構(gòu)GPU的基礎(chǔ)之上的。實(shí)際上,從DirectX 10開始,NVIDIAAMD紛紛淡化管線和頂點(diǎn)的概念,就是為了使得流處理器可以執(zhí)行更多非3D的應(yīng)用,而如今微軟推出的Direct Compute,無疑對(duì)GPU通用計(jì)算應(yīng)用有很大的推動(dòng)性。


小貼士:DirectX Compute還是Direct Compute?

    很多朋友應(yīng)該會(huì)發(fā)現(xiàn),早期我們將微軟的DirectX 11中包含的GPU通用計(jì)算成為DirectX Compute,但近期我們又改成了Direct Compute,這是為什么呢?實(shí)際上,微軟為了將GPU通用計(jì)算和主要是3D應(yīng)用的DirectX區(qū)別開,所以通知了所有合作伙伴以及媒體,將 DirectX Compute改為Direct Compute,微軟想要達(dá)到的效果應(yīng)該是讓Direct Compute和DirectX一樣重要吧,其實(shí)也可以看出微軟對(duì)GPU計(jì)算的重視。

理清了CUDA以及Direct Compute的關(guān)系,我們來進(jìn)入測試階段,看看Windows 7中的Direct Compute到底對(duì)NVIDIA CUDA有沒有影響,再一次驗(yàn)證Direct Compute到底和CUDA是否存在沖突與競爭的關(guān)系。

● 測試平臺(tái)

    本次我們采用封裝接口為LGA1156的i7搭配剛剛發(fā)布的P55主板進(jìn)行測試,并分別在不支持Direct Compute的Windows Vista操作系統(tǒng)和支持Direct Compute的Windows 7操作系統(tǒng)下進(jìn)行對(duì)比。其中Windows Vista為64Bit,Windows 7為32Bit。

    測試程序我們選擇了三個(gè)最具代表性的CUDA軟件,分別為國產(chǎn)轉(zhuǎn)碼軟件MediaCoder、CyberLink推出的視頻編輯軟件Power Director(威力導(dǎo)演)以及大家非常熟悉的轉(zhuǎn)碼軟件Badaboom,并分別以同樣的方法在Windows Vista和Windows 7下進(jìn)行測試。

Badaboom是NVIDIA聯(lián)合Elemetal制作的Geforce GPU視頻轉(zhuǎn)碼工具,在CUDA標(biāo)準(zhǔn)推出初期,這技術(shù)是唯一一款支持CUDA加速的視頻轉(zhuǎn)碼軟件,通過這款軟件可以直接利用CUDA加速給iphone、 iTouch、PSP、Apple TV等多種設(shè)備轉(zhuǎn)換視頻。

成績不是唯一!淺談選擇N卡的四大理由

下載:Badaboom

    本次測試所采用的片源為電影《X戰(zhàn)警3》的一個(gè)長達(dá)11分鐘的預(yù)告片,原分辨率為1920×1080,在本次測試中我們將其轉(zhuǎn)換成720P的MP4格式,以下分別是在Windows Vista和Windows 7下的性能截圖:


Windows Vista下:轉(zhuǎn)換時(shí)間為5分23秒


Windows 7操作系統(tǒng)下,轉(zhuǎn)換時(shí)間同樣為5分23秒

    從兩次轉(zhuǎn)換的完成時(shí)間來看,在Windows Vista和Winows 7下,所花費(fèi)的時(shí)間完全一樣,都為5分鐘23秒,可以看出操作系統(tǒng)完全不影響CUDA效能。我們接著來看下一個(gè)測試!

MediaCoder是一款國產(chǎn)轉(zhuǎn)碼軟件,在之前我們已經(jīng)對(duì)這款軟件有過非常詳細(xì)的測試。這款軟件相對(duì)于前面的Badaboom來說,最大的優(yōu)勢就在于其不僅僅可以利用GPU中的流處理器單元進(jìn)行視頻轉(zhuǎn)碼加速,同時(shí)還可以利用CPU進(jìn)行加速,也就是說其采用了GPU+CPU聯(lián)合加速。性能要比Badaboom好很多。

    本次我們利用這款軟件轉(zhuǎn)換1080P高清影片《007皇家賭場》的一個(gè)預(yù)告片,并分別在Windows Vista和Win 7下進(jìn)行測試。下面是測試成績:


Windows Vista:358秒完成,壓縮率31.83:1


Windows 7:花費(fèi)時(shí)間374秒,壓縮率31.62:1

    可以看出,在Vista和Win7中,兩次測試所花費(fèi)的時(shí)間僅差16秒,而這主要的原因就是在不同的系統(tǒng)平臺(tái)下壓縮率不一樣造成,如果排除壓縮率差距的話,相信這兩者仍然不會(huì)有差距,所以再一次證明了在Win7操作系統(tǒng)下,CUDA的效能并沒有一點(diǎn)損失。

接下來我們將要通過一個(gè)視頻編輯軟件來測試NVIDIA CUDA在Vista或Win7操作系統(tǒng)下的性能差距,這款軟件名叫威力導(dǎo)演(PowerDirector),出自著名的多媒體軟件公司CyberLink。NVIDIA CUDA在這款軟件中的主要作用是加速視頻預(yù)覽與視頻渲染,其實(shí)也是編碼的過程。

   這一部分測試我們選擇了一段AVI視頻,并對(duì)其加上萬花筒特效,測試渲染(編碼)時(shí)間,最后的成績?nèi)缦拢?/p>


Windows Vista:花費(fèi)時(shí)間7分44秒


Windows 7:花費(fèi)時(shí)間7分35秒

    在這一部分測試中,我們驚奇的發(fā)現(xiàn)在Windows 7操作系統(tǒng)下,視頻渲染的速度竟然比Vista還快9秒,而輸出的格式、大小完全一樣,又一次證明了Windows 7中的Direct Compute絲毫不影響CUDA的發(fā)揮。

通過幾個(gè)軟件的測試,我們已經(jīng)完全可以充分的證明前文所說的Direct Compute和CUDA不存在沖突與競爭的關(guān)系,反而是一種互補(bǔ)的關(guān)系,如果沒有CUDA架構(gòu)的GPU,那么Direct Compute也根本不可能實(shí)現(xiàn)。所以,擔(dān)心CUDA不支持Windows 7完全是莫須有的想法。

    前面我們說到,CUDA從本質(zhì)上將是一種硬件架構(gòu),但又含有一個(gè)CUDA C編譯器,而實(shí)際上,CUDA C與Direct Compute以及OpenCL等等應(yīng)用程序接口從定位上就不一樣,或者說使用人群不一樣。CUDA C是一種高級(jí)語言,那些對(duì)硬件了解不多的非專業(yè)人士也能輕松上手;而Direct Compute則是針對(duì)硬件的應(yīng)用程序開發(fā)接口,它能給程序員更多對(duì)硬件的控制權(quán),相應(yīng)的上手及開發(fā)會(huì)比較難一些。

    我們現(xiàn)在回頭看NVIDIAWindows 7做出的事情,首先在硬件上CUDA架構(gòu)的GPU可以完美的支持Windows 7以及DirectX 11中的Direct Compute技術(shù);另一方面,驅(qū)動(dòng)程序上NVIDIA也是首先提供了Windows7驅(qū)動(dòng)以及Direct Compute的支持,并且在最近的Power of 3三劍平臺(tái)的宣傳中,將Windows 7作為Power of 3推薦操作系統(tǒng),可見NVIDIA已經(jīng)完全為Windows 7的正式到來做好了準(zhǔn)備。

文/PCPOP