Windows 7與CUDA架構(gòu)的兼容性測試
圖形巨頭NVIDIA推出的GPU通用計算技術(shù)CUDA相信大家都有所了解,然而隨著Windows 7逐漸成為熱門的關(guān)注對象,有一部分人對Windows 7是否支持CUDA、能否很好的支持CUDA產(chǎn)生了質(zhì)疑。原因很直接——因為Windows 7支持微軟自家的Direct compute!
但事實真的是這樣嗎?今天,筆者就再一次針對CUDA的概念、架構(gòu)等進行剖析,并且分別在Windows Vista與Windows 7操作系統(tǒng)上對CUDA性能進行對比測試,以達到撥亂反正的效果。
在進行正式的對比評測之前,我們首先必須要了解CUDA到底是什么?而筆者也發(fā)現(xiàn)正是因為很多人沒有對CUDA進行真正準(zhǔn)確客觀的了解,才導(dǎo)致了對CUDA和Direct Compute的誤解。我們先來看看NVIDIA官方如何解釋CUDA這個概念:
CUDA是一種由NVIDIA推出的通用并行計算架構(gòu),該架構(gòu)使GPU能夠解決復(fù)雜的計算問題。 它包含了CUDA指令集架構(gòu)(ISA)以及GPU內(nèi)部的并行計算引擎。 開發(fā)人員現(xiàn)在可以使用C語言來為CUDA架構(gòu)編寫程序,C語言是應(yīng)用最廣泛的一種高級編程語言。所編寫出的程序于是就可以在支持CUDA的處理器上以超高性能運行。將來還會支持其它語言,包括FORTRAN以及C++。
NVIDIA提供的CUDA開發(fā)包中的C語言編譯器版本更新很快
可以看到,CUDA真正意義上來說是一種通用并行計算架構(gòu),但又包含了CUDA指令集架構(gòu)和GPU內(nèi)部的并行計算引擎。就如同CPU的情況一樣,X86的架構(gòu)也包含ISA和執(zhí)行指令的硬件架構(gòu)。各種應(yīng)用程序都基于這個架構(gòu)進行開發(fā)并在此上運行。可以說CUDA架構(gòu)的GPU是圖形渲染架構(gòu)與并行計算架構(gòu)的合體!
CUDA本意就是一種架構(gòu),但很多人認為CUDA是一種語言、或者是開發(fā)平臺,這可能跟NVIDIA最初的宣傳、推廣策略有關(guān)系。在CUDA架構(gòu)誕生之初(GeForce 8時代),尚不存在專門針對GPU并行計算的開發(fā)平臺以及編程語言,因此NVIDIA必須給程序員提供一種簡單、易上手、并且完整的軟件開發(fā)解決方案,這樣NVIDIA所發(fā)布的CUDA包當(dāng)中就包括了針對GPU的C語言編譯器、糾錯器/制模器、專用驅(qū)動和標(biāo)準(zhǔn)函數(shù)庫等。
除了支持自家C語言編譯器之外,更多的語言及API都能運行在CUDA架構(gòu)
上圖就很好的反映出了CUDA與應(yīng)用程序接口(API)以及各種語言編譯器的關(guān)系,其中的DX11計算也就是Direct Compute,可以看出CUDA架構(gòu)和Direct Compute并無沖突。包括CUDA自家編譯器所采用的C語言擴展、OpenCL應(yīng)用程序接口、Fortran甚至C++等都可以運行在CUDA架構(gòu)之上,未來CUDA還將支持更多的語言。在整個產(chǎn)業(yè)的共同推動下,GPU計算可謂是前途無量!
實際上,在微軟的一份Direct Compute宣傳PPT中,我們也可以看到Direct Compute是完全建立在符合統(tǒng)一渲染架構(gòu)GPU的基礎(chǔ)之上的。實際上,從DirectX 10開始,NVIDIA和AMD紛紛淡化管線和頂點的概念,就是為了使得流處理器可以執(zhí)行更多非3D的應(yīng)用,而如今微軟推出的Direct Compute,無疑對GPU通用計算應(yīng)用有很大的推動性。#p#page_title#e#
理清了CUDA以及Direct Compute的關(guān)系,我們來進入測試階段,看看Windows 7中的Direct Compute到底對NVIDIA CUDA有沒有影響,再一次驗證Direct Compute到底和CUDA是否存在沖突與競爭的關(guān)系。
本次我們采用封裝接口為LGA1156的i7搭配剛剛發(fā)布的P55主板進行測試,顯卡采用Inno3D推出的iChill-GTX260+金牛典藏版 ,并分別在不支持Direct Compute的Windows Vista操作系統(tǒng)和支持Direct Compute的Windows 7操作系統(tǒng)下進行對比。其中Windows Vista為64Bit,Windows 7為32Bit。
測試程序我們選擇了三個最具代表性的CUDA軟件,分別為國產(chǎn)轉(zhuǎn)碼軟件MediaCoder、CyberLink推出的視頻編輯軟件Power Director(威力導(dǎo)演)以及大家非常熟悉的轉(zhuǎn)碼軟件Badaboom,并分別以同樣的方法在Windows Vista和Windows 7下進行測試
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)換視頻。目前,該軟件最新版本為1.2.1。
本次測試所采用的片源為電影《X戰(zhàn)警3》的一個長達11分鐘的預(yù)告片,原分辨率為1920×1080,在本次測試中我們將其轉(zhuǎn)換成720P的MP4格式,以下分別是在Windows Vista和Windows 7下的性能截圖:
Windows Vista下:轉(zhuǎn)換時間為5分23秒
Windows 7操作系統(tǒng)下,轉(zhuǎn)換時間同樣為5分23秒
從兩次轉(zhuǎn)換的完成時間來看,在Windows Vista和Winows 7下,所花費的時間完全一樣,都為5分鐘23秒,可以看出操作系統(tǒng)完全不影響CUDA效能。我們接著來看下一個測試!#p#page_title#e#
MediaCoder是一款國產(chǎn)轉(zhuǎn)碼軟件,在之前我們已經(jīng)對這款軟件有過非常詳細的測試。這款軟件相對于前面的Badaboom來說,最大的優(yōu)勢就在于其不僅僅可以利用GPU中的流處理器單元進行視頻轉(zhuǎn)碼加速,同時還可以利用CPU進行加速,也就是說其采用了GPU+CPU聯(lián)合加速。性能要比Badaboom好很多。
本次我們利用這款軟件轉(zhuǎn)換1080P高清影片《007皇家賭場》的一個預(yù)告片,并分別在Windows Vista和Win 7下進行測試。下面是測試成績:
Windows Vista:358秒完成,壓縮率31.83:1
Windows 7:花費時間374秒,壓縮率31.62:1
可以看出,在Vista和Win7中,兩次測試所花費的時間僅差16秒,而這主要的原因就是在不同的系統(tǒng)平臺下壓縮率不一樣造成,如果排除壓縮率差距的話,相信這兩者仍然不會有差距,所以再一次證明了在Win7操作系統(tǒng)下,CUDA的效能并沒有一點損失。
接下來我們將要通過一個視頻編輯軟件來測試NVIDIA CUDA在Vista或Win7操作系統(tǒng)下的性能差距,這款軟件名叫威力導(dǎo)演(PowerDirector),出自著名的多媒體軟件公司CyberLink。NVIDIA CUDA在這款軟件中的主要作用是加速視頻預(yù)覽與視頻渲染,其實也是編碼的過程。
這一部分測試我們選擇了一段AVI視頻,并對其加上萬花筒特效,測試渲染(編碼)時間,最后的成績?nèi)缦拢?/p>
Windows Vista:花費時間7分44秒
Windows 7:花費時間7分35秒
在這一部分測試中,我們驚奇的發(fā)現(xiàn)在Windows 7操作系統(tǒng)下,視頻渲染的速度竟然比Vista還快9秒,而輸出的格式、大小完全一樣,又一次證明了Windows 7中的Direct Compute絲毫不影響CUDA的發(fā)揮。
通過幾個軟件的測試,我們已經(jīng)完全可以充分的證明前文所說的Direct Compute和CUDA不存在沖突與競爭的關(guān)系,反而是一種互補的關(guān)系,如果沒有CUDA架構(gòu)的GPU,那么Direct Compute也根本不可能實現(xiàn)。所以,擔(dān)心CUDA不支持Windows 7完全是莫須有的想法。
前面我們說到,CUDA從本質(zhì)上將是一種硬件架構(gòu),但又含有一個CUDA C編譯器,而實際上,CUDA C與Direct Compute以及OpenCL等等應(yīng)用程序接口從定位上就不一樣,或者說使用人群不一樣。CUDA C是一種高級語言,那些對硬件了解不多的非專業(yè)人士也能輕松上手;而Direct Compute則是針對硬件的應(yīng)用程序開發(fā)接口,它能給程序員更多對硬件的控制權(quán),相應(yīng)的上手及開發(fā)會比較難一些。
我們現(xiàn)在回頭看NVIDIA為Windows 7做出的事情,首先在硬件上CUDA架構(gòu)的GPU可以完美的支持Windows 7以及DirectX 11中的Direct Compute技術(shù);另一方面,驅(qū)動程序上NVIDIA也是首先提供了Win7以及Direct Compute的支持,并且在最近的Power of 3三劍平臺的宣傳中,將Windows 7作為Power of 3推薦操作系統(tǒng),可見NVIDIA已經(jīng)完全為Windows 7的正式到來做好了準(zhǔn)備。