CUDA的應(yīng)用與案例詳解
曾經(jīng),筆者的一個(gè)從事網(wǎng)頁設(shè)計(jì)工作的美工朋友給我講過一個(gè)笑話,他們單位為了某大型宣傳活動(dòng),準(zhǔn)備設(shè)計(jì)一個(gè)巨型的條幅廣告,而條幅廣告的設(shè)計(jì)任務(wù)自然是他們美工的責(zé)任。不過,具體負(fù)責(zé)設(shè)計(jì)的不是我的朋友,而是他的幾個(gè)同事。
根據(jù)我朋友的敘述,兩位同事,同時(shí)為這個(gè)巨型的條幅廣告進(jìn)行設(shè)計(jì),并且配備了單位最好的電腦來進(jìn)行處理,但是,由于巨型的條幅廣告尺寸過大,僅僅一個(gè)簡單的渲染過程就要等待半個(gè)小時(shí)甚至最長長達(dá)一上午的時(shí)間。導(dǎo)致朋友的同事一天下來,僅僅能夠進(jìn)行簡單的幾部操作,而剩下的事情幾乎全部是坐在電腦前等待……
可是,不知道讀者是否能夠想象得到,這些漫長的等待,如果使用擁有強(qiáng)大浮點(diǎn)運(yùn)算能力的GPU來進(jìn)行這些運(yùn)算的話,僅僅需要幾分鐘甚至幾秒鐘,更甚至能夠做到所見即所得的形式,這將會大幅度的提高工作時(shí)的工作效率。如果剛才我們所說的筆者朋友的同事能夠擁有這樣的設(shè)備的話,有可能這樣一個(gè)巨型的條幅廣告僅僅需要一個(gè)上午的時(shí)間就能夠全部完成了。
◆CUDA,讓你夢想成真:
CUDA,如今這個(gè)名詞越來越多的出現(xiàn)在了我們的眼里。雖然說,目前來看,CUDA可能和我們目前的電腦應(yīng)用并沒有太明顯的關(guān)系,不過相信隨著未來越來越多的軟件支持,CUDA最終將會走入我們每個(gè)人的電腦應(yīng)用當(dāng)中。前面我們說的那個(gè)例子,雖然現(xiàn)時(shí)來看并不太可能實(shí)現(xiàn),不過,我們卻很有可能在下一代的PhotoShop當(dāng)中看到這一功能付諸實(shí)踐。
『通過GPU加速,圖像的渲染和處理將大大加快』
在Photoshop Creative Suite Next上通過GPU、物理加速的支持。Photoshop打開一個(gè)2GB、4.42億像素的圖像文件將非常簡單,對圖片進(jìn)行縮放、旋轉(zhuǎn)也不會存在任何延遲。這就是GPU的強(qiáng)大運(yùn)算能力的體現(xiàn),而想要實(shí)現(xiàn)這一功能,則需要借助于一個(gè)接口——CUDA。
◆CUDA是什么?
CUDA(Compute Unified Device Architecture)是一個(gè)新的基礎(chǔ)架構(gòu),這個(gè)架構(gòu)可以使用GPU來解決商業(yè)、工業(yè)以及科學(xué)方面的復(fù)雜計(jì)算問題。它是一個(gè)完整的GPGPU解決方案,提供了硬件的直接訪問接口,而不必像傳統(tǒng)方式一樣必須依賴圖形API接口來實(shí)現(xiàn)GPU的訪問。
CUDA誕生的意義以及CUDA的應(yīng)用領(lǐng)域
◆CUDA誕生的意義:
在傳統(tǒng)的發(fā)展路線中,電腦顯示卡一直在為游戲和3D應(yīng)用程序服務(wù),但是競爭的激烈、技術(shù)的飛速前進(jìn)客觀的成就了GPU的爆炸式發(fā)展。GPU的運(yùn)算能力已經(jīng)達(dá)到了非常高的水平,甚至在浮點(diǎn)運(yùn)算能力上已經(jīng)大幅度超越最高級別的處理器產(chǎn)品。
研究表明,從1993年開始,GPU的性能以每年2.8倍的速度增長,這個(gè)數(shù)字大大超過了PC其他子系統(tǒng)的發(fā)展速度。一塊工作頻率為3.0GHz的Pentium 4處理器,其晶體管數(shù)目為1.25億個(gè),即使算上SSE指令集的SIMD(單指令并發(fā)多數(shù)據(jù)流,這種情況是浮點(diǎn)吞運(yùn)算下吐能力的最理想狀況),也只有6GFlops的峰值浮點(diǎn)處理能力,而同期的一塊NV40 GPU就有2.22億個(gè)晶體管,峰值浮點(diǎn)運(yùn)算能力很輕易超過40GFlops,而時(shí)間發(fā)展的今日,GPU的峰值浮點(diǎn)運(yùn)算能力已經(jīng)接近甚至超過了TFlops(1000GFlops)級別,GPU的性能可想而知
除此之外,GPU還擁有自己的獨(dú)立子存儲系統(tǒng)——顯存,它擁有比系統(tǒng)主內(nèi)存高得多的帶寬。Intel曾經(jīng)為它的Pentium 4 XE系列處理器所擁有的1066MHz前端總線所提供的8.6GB/S的帶寬倍感自豪,而同期一塊普通的GeForce 6800就擁有20GB/S以上的顯存帶寬。
于是,由這個(gè)問題就導(dǎo)致了兩方面的考量:一、GPU擁有如此強(qiáng)大的性能,它能否為其它非游戲類的應(yīng)用程序進(jìn)行加速,發(fā)揮其性能的優(yōu)勢;二、GPU的浮點(diǎn)運(yùn)算能力雖然強(qiáng)大,但是其架構(gòu)一直是專有的,無法和目前的x86處理器相比擬,通過什么方法去使用GPU,通過什么方法去讓應(yīng)用程序利用GPU加速。
上述所講就是NVIDIA最新的理論構(gòu)想,那就是讓GPU超越游戲,去拓展更為廣闊的空間。而超越游戲,讓GPU為其它應(yīng)用程序服務(wù),NVIDIA很早就進(jìn)行了嘗試,比如:NVIDIA早就與Adobe公司合作,為其Adobe Acrobat 8及Adobe Reader 8系列產(chǎn)品提供全新的頁面顯示著色技術(shù),利用GPU來加速PDF格式下的繪圖及顯示功能,除了在效能上有所增進(jìn)外,還可以利用GPU的可編程特性,進(jìn)一步加強(qiáng)PDF文件中的2D內(nèi)容展示效果,包括平移、卷動(dòng)、縮放等,實(shí)際上Adobe Reader 8每一項(xiàng)運(yùn)用到GPU的功能都有著顯著的效能增進(jìn)。使用者過去避免使用的一些應(yīng)用,例如可進(jìn)行極精細(xì)比例縮放的地圖,現(xiàn)在都可以輕易地顯示。
『早在G80時(shí)代NVIDIA就已經(jīng)提出了CUDA的概念』
而想要實(shí)現(xiàn)這些功能,必然需要顯卡與應(yīng)用程序之間有一個(gè)良好的程序接口,這就是CUDA。其時(shí)早在G80時(shí)代,NVIDIA就提出了CUDA的概念,只不過因?yàn)槟菚r(shí)候CUDA還未成型,所以沒有公布,而現(xiàn)在,基于CUDA的應(yīng)用程序越來越多,因此到了GTX200系列芯片的發(fā)布,CUDA才同時(shí)正式大范圍的推廣并介紹給普通消費(fèi)者。
◆CUDA的應(yīng)用范圍:
由于GPU的特點(diǎn)是處理密集型數(shù)據(jù)和并行數(shù)據(jù)計(jì)算,因此CUDA非常適合需要大規(guī)模并行計(jì)算的領(lǐng)域。目前CUDA除了可以用C語言開發(fā),也已經(jīng)提供FORTRAN的應(yīng)用接口,未來可以預(yù)計(jì)CUDA會支持C++、Java、Python等各類語言。雖然現(xiàn)在更多的應(yīng)用在游戲、圖形動(dòng)畫、科學(xué)計(jì)算、地質(zhì)、生物、物理模擬等領(lǐng)域,但是由于GPU本身的通用特性和CUDA提供的方便的開發(fā)環(huán)境,我們可以放開思維的束縛,想象幾種可能的應(yīng)用場景:
搜索引擎中的排序、文本分類等相關(guān)算法的應(yīng)用
數(shù)據(jù)庫、數(shù)據(jù)挖掘
數(shù)理統(tǒng)計(jì)分析
生物醫(yī)藥工程
導(dǎo)航識別
軍事模擬
無線射頻模擬
圖像語音識別
這些領(lǐng)域內(nèi)的計(jì)算都是屬于大規(guī)模的數(shù)據(jù)密集型計(jì)算,因此我們完全有理由相信,在CUDA的驅(qū)動(dòng)下,GPU能夠在這些領(lǐng)域建立一個(gè)屬于自己的新時(shí)代。
應(yīng)用開發(fā)很簡單,CUDA的軟硬件需求
CUDA是一個(gè)全新的軟硬件架構(gòu),可以將GPU視為一個(gè)并行數(shù)據(jù)計(jì)算的設(shè)備(通俗來講,我們可以把它簡單的看做是一個(gè)用途專一的CPU陣列),對所進(jìn)行的計(jì)算進(jìn)行分配和管理。
并且,CUDA最大的優(yōu)勢在于,無需像傳統(tǒng)GPGPU那樣必須將計(jì)算映射到API接口上(也就是顯卡名詞當(dāng)中常見的OpenGL或者Direct 3D),開發(fā)人員只需要懂得C語言,就可以開始對CUDA的軟件進(jìn)行開發(fā)了。而對于用戶而言,更加簡單,只要安裝好驅(qū)動(dòng)程序,然后就可以運(yùn)行基于CUDA開發(fā)的程序了。
◆硬件需求:
首先,我們來看看對于CUDA的卡發(fā)者和用戶群來說,都需要哪些硬件設(shè)施。CUDA支持的GPU (CUDA-enabled GPU)包含GeForce、Quadro和Tesla三個(gè)系列:GeForce是NVIDIA公司面向消費(fèi)市場的GPU產(chǎn)品;Quadro是面向?qū)I(yè)圖形市場的GPU產(chǎn)品;而Tesla則是專門面向GPU計(jì)算的產(chǎn)品,它不具備圖形輸出的功能,因此不能作為圖形卡來使用。這三個(gè)產(chǎn)品面向不同的應(yīng)用領(lǐng)域,因此建議在開發(fā)和部署CUDA應(yīng)用的時(shí)候需要考慮到產(chǎn)品的應(yīng)用決定采用不同的GPU。
NVIDIA的CUDA-enabled GPU具有一個(gè)完整的產(chǎn)品線,各種用戶都可以從中選擇到合適自己的產(chǎn)品。對于有高密度計(jì)算能力需求的用戶來說,Quadro和Tesla則是必須的選擇。諸如Quadro Plex 1000 Model S4和Tesla S870在一個(gè)1U高度的標(biāo)準(zhǔn)服務(wù)器機(jī)架機(jī)箱內(nèi)裝備了四個(gè)GPU,每個(gè)GPU具備128個(gè)stream processor以及1.5GB的存儲器,每個(gè)1U裝置總共具備512個(gè)stream processor和6GB存儲器,非常適合于有高密度、大規(guī)模數(shù)據(jù)計(jì)算需求的用戶。CUDA-enabled GPU的家族還在不斷地?cái)U(kuò)大之中,隨著NVIDIA新一代GPU的發(fā)布,更多的產(chǎn)品也將加入到這個(gè)行列中來。 #p#page_title#e#
另外,CUDA對于GPU產(chǎn)品線還涵蓋了從筆記本電腦到高性能多GPU的系統(tǒng)中。也就是說,對于普通用戶來講,我們使用的普通筆記本或者臺式電腦,只要擁有一塊NVIDIA的GeForce 8以上級別的顯卡都能夠支持CUDA。
◆軟件需求:
對于普通的應(yīng)用者來說,對于軟件方面,只要安裝了一款能夠支持CUDA的驅(qū)動(dòng)程序,就可以了。接下來需要做的就是使用那些能夠支持CUDA的軟件。對于目前來說,能夠支持CUDA的軟件還是有些偏少,不過隨著越來越多的軟件開發(fā)者加入CUDA的行列,日后能夠支持CUDA的軟件將會逐漸完善起來。
而對于CUDA的開發(fā)者來說,開發(fā)CUDA的軟件也非常簡單。開發(fā)者只要會運(yùn)用C語言編程,就能夠順利的學(xué)會CUDA。因?yàn)镃UDA就是基于C語言為基礎(chǔ)的,CUDA可以支持多種運(yùn)行在Windows XP和Linux操作系統(tǒng)下的C開發(fā)系統(tǒng)諸如Microsoft Visual C++等。CUDA工具集的核其實(shí)心是一個(gè)C語言編譯器,CUDA開發(fā)環(huán)境的具體內(nèi)容包括:
· nvcc C語言編譯器
· 適用于GPU(圖形處理器)的CUDA FFT和BLAS庫
· 分析器
· 適用于GPU(圖形處理器)的gdb調(diào)試器(在2008年3月推出alpha版)
· CUDA運(yùn)行時(shí)(CUDA runtime)驅(qū)動(dòng)程序(目前在標(biāo)準(zhǔn)的NVIDIA GPU驅(qū)動(dòng)中也提供)
· CUDA編程手冊
除了編譯器外,NVIDIA提供了一些非常實(shí)用的函數(shù)庫。目前有兩個(gè)數(shù)字計(jì)算庫包含在已經(jīng)發(fā)布的軟件包里面,分別是CUDA FFT和CUDA BLAS子程序庫。CUDA FFT是快速傅立葉變換(Fast Fourier Transform, FFT)的子程序庫,快速傅立葉變換是信號處理之類應(yīng)用的基本算法。BLAS是基本線性代數(shù)的子程序庫,提供了高效率的線性代數(shù)計(jì)算子程序。CUDA FFT和BLAS都是針對GPU高度優(yōu)化的高性能數(shù)學(xué)函數(shù)庫,在CUDA程序中可以方便調(diào)用,節(jié)省大量的代碼編寫時(shí)間。
另外,CUDA所有軟件包都可以從NVIDIA公司的網(wǎng)站上免費(fèi)下載。NVIDIA還專門建立了一個(gè)針對CUDA的名為CUDA Zone社區(qū),網(wǎng)址是 http://www.nvidia.com/object/cuda_home.html。它包含各種程序、文檔的下載,并且有幾個(gè)針對開發(fā)者的論壇,里面有專人為各位開發(fā)者進(jìn)行服務(wù),解答各種疑問。
除此以外,NVIDIA提供了開發(fā)指南和大量的第三方應(yīng)用實(shí)例,所有這些資料均可以從NVIDIA CUDA Zone里面下載。
為何使用CUDA?CUDA都有哪些優(yōu)勢
首先要說明的一點(diǎn)是,CUDA尤其擅長的是某一方面,而并不是面面俱到。CUDA的開發(fā)是基于NVIDIA GPU平臺的,因此發(fā)揮GPU的并行優(yōu)勢才是最主要的目的。
理論上講,CUDA對于非圖形的計(jì)算并沒有什么限制,不過它還是相對比較適合高度并行的計(jì)算,畢竟這是它的長處。這里所謂的高度并行的數(shù)量級為上千個(gè),相對于CPU來講,雙核的CPU也許幾個(gè)線程就能充滿它整個(gè)的計(jì)算單元,然而CUDA-enabled GPU卻能夠容納上千個(gè)線程(也就是GPU中數(shù)百個(gè)SP單元的功力),所以常遇到的高性能計(jì)算領(lǐng)域的問題就特別適用于CUDA,而之前通常采用計(jì)算機(jī)集群的方式來進(jìn)行計(jì)算。
而目前GPU已經(jīng)發(fā)展到十分強(qiáng)大的地步,從GeForce6開始,就能夠支持比較復(fù)雜的控制指令,比如條件轉(zhuǎn)移、分支、循環(huán)和子程序調(diào)用等。而到了新一代的顯卡,GPU的程序控制能力又增強(qiáng)了很多,支持的程序長度也得到了更大的擴(kuò)展,也就是說利用GPU還是可以寫一些比較復(fù)雜的程序。
當(dāng)然CUDA也有其弱勢的地方,其還是主要去做那些能夠分成很多個(gè)獨(dú)立線程的數(shù)值計(jì)算。比如說矩陣的乘法計(jì)算,矩陣相對應(yīng)的元素的計(jì)算是沒有什么聯(lián)系的,可以很多個(gè)線程同時(shí)送入很多個(gè)處理器進(jìn)行并行處理,這就非常適合于用CUDA來解決。當(dāng)然并不是所有的事情CUDA都能夠很好地解決,比如像操作系統(tǒng)這樣復(fù)雜的指令和紛繁的分支循環(huán)而又用很少的線程來處理,這顯然就不是CUDA的強(qiáng)項(xiàng)了。高度并行的計(jì)算是CUDA的技術(shù)特性之一。 #p#page_title#e#
『GPU的架構(gòu)非常合適進(jìn)行大規(guī)模的并行計(jì)算』
CUDA已經(jīng)應(yīng)用在很多領(lǐng)域,包括在通用計(jì)算中的一些GPU加速,游戲中的物理模擬等等,而在科學(xué)計(jì)算中,CUDA可發(fā)揮的功效就更大了。比如有限元的計(jì)算、神經(jīng)元的研究計(jì)算、地質(zhì)分析等等科學(xué)研究的領(lǐng)域;當(dāng)然目前GPU計(jì)算的應(yīng)用還是處于一個(gè)早期的階段,大部分CUDA應(yīng)用都是專業(yè)人員和相關(guān)的程序員在開發(fā),隨著CUDA的廣泛推行,以后會有實(shí)際的基于CUDA的程序,更多的程序員能夠加入進(jìn)來,并且開發(fā)一些可以給大家日常應(yīng)用帶來好處的程序,只要有支持CUDA的GPU就能夠利用到GPU計(jì)算的好處。
最后來說明一下某些讀者對于CUDA的誤解,可能有人認(rèn)為“有了GPU之后CPU就不需要了”,這也是不對的。顯然,GPU和CPU還是做不同的工作的,GPU的計(jì)算主要集中在高效率低成本的高性能并行計(jì)算,所以事實(shí)上在一個(gè)系統(tǒng)里面,一個(gè)高效的GPU配合一個(gè)高效的CPU,整體的效率還是會有明顯提升的。
目前能夠支持CUDA的應(yīng)用軟件介紹(一)在我們了解了CUDA的需求之后,對于本文的絕大多數(shù)讀者來說,他們更想要了解的應(yīng)該就是CUDA對于我們普通用戶究竟是否有實(shí)際意義,并且,目前真的又能夠支持CUDA的應(yīng)用程序么?這些程序是否如同前面所描述的那么好?下面我們就先來簡單了解一下目前常見的幾款能夠支持CUDA的應(yīng)用軟件:
◆ Google earth需要3D加速
Google earth是一款3D地圖顯示軟件,它能夠?qū)⒌厍蛏夏骋粎^(qū)域的地貌,以3D圖像的形式展現(xiàn)出來。這款軟件讀者都很熟悉,早期的Google earth從2D起步,但是隨著深入發(fā)展和商業(yè)應(yīng)用,這款軟件也進(jìn)入了3D化,很顯然,這類軟件將會逐漸成為我們今后生活的必備軟件。
在Google earth的設(shè)置界面,如果你擁有一個(gè)
當(dāng)我們以最高畫質(zhì)量為限查找地圖街景時(shí),帶有GPU的PC系統(tǒng)可以流暢地進(jìn)行地圖縮放。而同樣的場景、同樣的搜索速度、同樣的處理器,在沒有GPU加速時(shí),運(yùn)轉(zhuǎn)速度簡直無法忍受,在Fraps顯示的速率上,使用GPU加速和不使用GPU加速情況下,速度落差達(dá)到了幾十倍之巨,由此可見,GPU的作用和意義絕不僅限于游戲。
◆ 圖片、視頻都是3D的
Cooliris推出的Piclens插件可以讓圖片搜索變?yōu)?D模式,通過用GPU硬件加速來實(shí)現(xiàn)圖片瀏覽。但就是這么一個(gè)實(shí)用的小插件,沒有GPU也是不行的。鼠標(biāo)滾輪就能讓所有圖片成為一面幕墻,這么有趣的功能沒有GPU加速可是不行的哦。
瀏覽圖片時(shí)GPU加速非常有意義,在使用普通集成顯卡時(shí),這個(gè)數(shù)值還不到24fp。當(dāng)我們使用一塊GeForce 9600GT進(jìn)行GPU加速時(shí),cooliris滿速率運(yùn)行可達(dá)60fps,但換用集成顯卡時(shí),這個(gè)數(shù)值還不到24fps,前后的差距至少達(dá)到了2.5倍。
目前能夠支持CUDA的應(yīng)用軟件介紹(二)
◆ 連PDF都需要GPU加速
隨著計(jì)算機(jī)的發(fā)展,圖形、圖像的顯示成為越來越重要的工作。現(xiàn)在連閱讀傳統(tǒng)的PDF文件,都離不開GPU的加速了。早在2007年,Adobe就與NVIDIA展開合作,推出了支持GPU加速的PDF版本。
同樣一個(gè)容量達(dá)到50MB的期刊讀物電子版PDF文件,在使用傳統(tǒng)方式打開時(shí),讀取時(shí)間為8秒。而使用GPU硬件加速功能時(shí),打開時(shí)間不超過3秒,且在瀏覽時(shí)不會有拖沓感,PDF文件也變得流暢異常了。
◆ 圖片瀏覽也向3D邁進(jìn)—Google Picasa2
Google Picasa2是一款可幫助您在計(jì)算機(jī)上立即找到、修改和共享所有圖片的軟件。在使用NVIDIA顯卡的電腦上使用Picasa軟件,通過GPU加速,圖片的拖放或文件夾切換,圖片生成的速度都非常快。如果換用沒有GPU加速的平臺,搜索圖片時(shí)生成速度可絕非一時(shí)一刻,前后對比,數(shù)倍的差異十分明顯。
◆ PICTOMIO,華麗的3D圖片瀏覽
Pictomio是一個(gè)類似于Picasa的圖片瀏覽和管理軟件,它提供了極其華麗3D圖片瀏覽效果。如果PC中具備GPU,那么完全可以利用強(qiáng)大的GPU將瀏覽方式變更為3D模式,無縫縮放、漸變式切換,效果十分驚嘆。但如果沒有GPU,平面的交互效果實(shí)在是太過讓人失望了。 #p#page_title#e#
GPU加速詳細(xì)實(shí)例,Google Earth路線導(dǎo)航
下面,我們以目前不少人非常喜愛的Google Earth來舉例,看看CUDA在Google Earth中能夠起到怎樣的作用。Google Earth是大家非常熟悉的三維地圖軟件。通過它您能看到全世界任何角落的三維地圖(數(shù)據(jù)庫中沒有數(shù)據(jù)的地區(qū)當(dāng)然除外嘍),清晰得能看到街道上的小汽車!它帶來的視覺震撼是絕無僅有的。
以下是一個(gè)很有趣的應(yīng)用例子:由于Google Earth可以提供從某地到某地的一個(gè)線路查詢,下面是一個(gè)從San Francisco的一個(gè)叫1 market street街道到San Francisco的線路指引,Google Earth還提供了三維的經(jīng)過路線播放演示:
『線路是:從右上角到左下角』
『這個(gè)綠色標(biāo)志地方是開始點(diǎn)』
『途中經(jīng)過的兩個(gè)拐彎點(diǎn)』
『最終到達(dá)終點(diǎn)』
整個(gè)從起點(diǎn)到終點(diǎn)都是3D顯示周圍的實(shí)物,其中包括聳立的建筑物、街道等等,如果有NVIDIA GPU的圖形加速,可以讓這個(gè)過程非常流暢。
實(shí)際檢驗(yàn)GPU能力——視頻編碼:Badaboom
進(jìn)行視頻編碼的操作我們平時(shí)經(jīng)常用到,例如我們要將從網(wǎng)絡(luò)上下載或者從DVD上獲得的視頻文件進(jìn)行重新的編碼壓縮,才能傳到我們手機(jī)、IPOD、iPhone以及PSP中觀看。一般情況下視頻編碼完全是由CPU進(jìn)行計(jì)算處理,CPU性能越強(qiáng),編碼速度越快。
不過在應(yīng)用CUDA技術(shù)的GeForce GTX280上,我們可以使用GPU的強(qiáng)大性能來進(jìn)行視頻編碼。經(jīng)過實(shí)測,其速度要比CPU編碼超出數(shù)倍。下面讓我們來看一下對比測試。
下面我們先使用平時(shí)較為常用的Aimersoft iPhone視頻轉(zhuǎn)換器進(jìn)行一次視頻轉(zhuǎn)換。視頻源是MPEG2格式的720P的電影片段。目標(biāo)是壓縮成iPhone可用的640x480分辨率的H.264視頻。
『CPU運(yùn)算編碼,耗時(shí)很長』
Aimersoft iPhone視頻轉(zhuǎn)換器進(jìn)行視頻編碼完全依賴于CPU運(yùn)算,在整個(gè)轉(zhuǎn)換過程中我們花費(fèi)了2分39秒。這樣計(jì)算下來,如果要轉(zhuǎn)換一部一個(gè)半小時(shí)的電影大約就要花費(fèi)129分鐘,等待時(shí)間相當(dāng)長。
下面我們就來看看利用GeForce GTX280 GPU來進(jìn)行硬件視頻編碼的性能。測試中我們使用了一款名為Badaboom的視頻轉(zhuǎn)換軟件,其目前可以支持NVIDIA的GPU視頻編碼加速。
測試軟件:Badaboom
相關(guān)介紹:Badaboom是一款視頻轉(zhuǎn)換軟件,可以把Mpeg2等格式的視頻轉(zhuǎn)換為ipod或者iPhone這樣的所使用的H.264視頻格式。
『GTX280 GPU運(yùn)算進(jìn)行視頻編碼,比CPU耗時(shí)縮短6倍』
同樣還是剛才那段視頻,整個(gè)過程大約只花費(fèi)了26秒時(shí)間,速度提升了6倍多,速度非常快。如果您是iPhone的用戶,我想以后就無需再消耗長時(shí)間進(jìn)行視頻的壓縮了。
實(shí)際檢驗(yàn)GPU能力——科學(xué)計(jì)算:Folding@Home斯坦福大學(xué)的分布式計(jì)算系統(tǒng)非常有名,其開發(fā)了一套名為Folding@home的客戶端軟件,所有互聯(lián)網(wǎng)電腦都可以通過這套軟件模擬復(fù)雜的蛋白質(zhì)折疊效應(yīng)科學(xué)計(jì)算。
什么是Folding@home?
Folding@home是一個(gè)研究研究蛋白質(zhì)折疊,誤折,聚合及由此引起的相關(guān)疾病的分布式計(jì)算工程。我們使用聯(lián)網(wǎng)式的計(jì)算方式和大量的分布式計(jì)算能力來模擬蛋白質(zhì)折疊的過程,并指引我們近期對由折疊引起的疾病的一系列研究。(摘自Folding@home中文網(wǎng))
安裝上CUDA版本的Folding@home后,我們現(xiàn)在開啟顯示窗口,可以看到當(dāng)前計(jì)算的即時(shí)速度。使用GeForce GTX280時(shí),大約顯示的速度為500多ns/day。而如果使用CPU,速度大概只有4ns/day左右,可以看到GTX280的科學(xué)運(yùn)算能力非常強(qiáng)。
我們進(jìn)行一次完整的計(jì)算來看看GeForce GTX280的計(jì)算速度,同時(shí)我們還同AMD 四核羿龍CPU以及ATI Radeon HD3870進(jìn)行的對比。
從速度成績中可以看到GeForce GTX280的領(lǐng)先幅度很大。GPU的強(qiáng)大的性能展現(xiàn)出來,CPU完全落后。