找回密碼註冊
作者: 深舔公子
查看: 18169
回復: 16

文章標籤:

文章分享:

+ MORE精選文章:

+ MORE活動推薦:

SAMSUNG T7 Shield 移動固態硬碟

[*]超快的移動固態硬碟,比傳統外接 HDD 快 9.5 倍 [*]堅固的儲存 ...

GEX PRO 850W玩家開箱體驗分享活動

卓越性能,超值選擇 GEX PRO 系列通過 80 PLUS 金牌認證,實現高達 ...

體驗極速WiFi 7!MSI Roamii BE Lite Mesh

第一名 guanrung1110 https://www.xfastest.com/thread-293988-1- ...

極致效能 為遊戲而生 990 PRO SSD 玩家體驗

[*]極致效能固態硬碟 [*]PCIe 4.0 速度大幅提升 [*]優化的電源效率 ...

打印 上一主題 下一主題

[XF]顯示卡的C語言開發轉譯好工具-簡介CUDA技術

[複製鏈接]| 回復
跳轉到指定樓層
1#
深舔公子 發表於 2008-9-29 21:15:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式





NVIDIA的CUDA ZONE專區,目前的CUDA已經到2.0版本,而且也提供對應的驅動以及工具程式還有SDK讓各位下載。


顯示卡的C語言



能夠支援CUDA技術的顯示晶片核心編號,還有更多只是小弟沒有收錄在同一張圖片內,詳情可以請各位上CUDA ZONE專區網站:https://www.nvidia.com.tw/object/cuda_home_tw.html#


CUDA是NVIDIA從2007年就開始推廣的技術,只是最近跟著PhysX物理加速這個技術被大量曝光,使得大家也注意到這個屬於程式設計應用範疇的專業技術。它採用了程式設計師界最流行的C語言相容架構,另外開發了很多工具程式例如:NVIDIA專用組譯程式,專用SDK程式碼範例等等。說實在話,小弟專科的程式語言是暑假還要來的那種人,所以由小弟來寫語言只怕笑掉一堆人的大牙,陷入無限的「迴圈」之中啊。但是即使如此,小弟仍然可以看得懂CUDA技術的主要核心價值,那就是把原本交給CPU運算的部分,經由轉譯程式後,可以讓GPU用最短的時間處理完畢,因此稱呼它為顯示卡的C語言是一點也不為過!



這是目前很多3D網站或者是一些影像處理的玩家使用CUDA程式撰寫出來的精選範例檔,目前可以看到有將近122個不同國家不同用途的開發者作品,有針對醫學,有的是3D繪圖等等。


為何要把CPU的工作搶過來?



目前總共有約30所全世界的有名學校參加了CUDA課程教學,其中也有應用Folding @Home的史丹佛大學研究室,至於在我們國內則是國家高速網路計算中心負責教學與培訓的工作。


NVIDIA這麼說是有其根據,因為CPU發展到目前,最多還是四個核心,而相較於顯示卡已經多到一百多個純量運算單元在一個晶片內,那麼能不能有效利用這些多出來的核心進行一些運算呢?我們可以這樣看,CPU負責的是整體、全面性的運算,把這個整體性的東西拆解成很多小的部分來單獨運算後再加以結合,如果速度可以比CPU快上許多,就的確有所作為。GPU運算的過程可能也與CPU稍微不同,因為架構也不同,這樣的特性讓GPU最適合處理「平行資料運算的工作」,讓所有不同資料的運算,都經由同樣的程式把所有不同的資料當作一個個獨立的程序,以平行化來進行加速運算。在這之前,能有效使用顯示卡的GPU都是透過OpenGL或者是DirectX來呼叫圖形程式函數庫,因此使用固定的Shader語言來得到設計師想要的加速運算效果,就是CUDA誕生之前的做法,但缺點是只能在既定的函數庫中使用固定流程,增加程式撰寫的困難點。



一套共八片教學DVD,內容都是非常精華的教學課程。



內容對於非程式開發人員來說,可能兩分鐘內就可以讓人睡著,對於寫程式的人,則是如獲至寶。



從介紹開始,一直到後面實作都相當精闢,而且解說的非常精彩。


相容於C語言的程式奧義



前面提到的CUDA 2.0 SDK下載安裝完後會多出這個東西在桌面,這裡面有各種的CUDA測試以及預先寫好的Sample。


如果是遊戲開發者的話,寫OpenGL或者是DirectX的語言函式庫基本上一定沒有問題的,不過要能有廣泛的推展到一般程式設計師都能使用的話,勢必要再創造一套方便好用的SDK以及相容於最流行的程式語言上,這麼一來程式設計師無須重頭學習適應,推廣的速度才能像野火燎原一般普及。NVIDIA基於這個利基點,在2007年左右推出了CUDA這套相容於C語言的組譯程式以及SDK套件,讓一般人也能透過撰寫C語言讓GPU也能提供它強大的運算能力。而使用NVIDIA組譯程式完成的C語言程式,程式碼仍然保存C語言架構,也無須擔心除蟲以及管理的問題,可以說使C語言的執行能力更上了三、四層樓那麼高啊!



例如這是流體動態模擬,用滑鼠去點去拉,水波紋就好像真實的動態一般的旋轉流動。


真正加入「CUDA」的繪圖晶片要算是G80以後了,這個時間剛好是DX10版本推出後,雖然以DX10的改良來說,有關Shader的指令集已經頗為接近一般程式語法,但它還是為3D繪圖專用,仍然跟你我知道的C語言是兩碼子事情;而CUDA的出現,一言以蔽之,就是利用你我都知道的C語言來達成控制G80繪圖核心的便利工具。



這是顯示卡的頻寬效能測試,沒有炫麗的圖形,全部都是數字呈現。


不過,對我們這種非開發人員來說,我們只能對於聲光效果的表現起共鳴,至於背景的程式丟了多少資料進去Shader運算則非所問。所以之前介紹的PhysX技術只能說是CUDA的其中一小部分而已,它只是證明了把物理運算這個程式碼利用GPU來處理後可以達到多棒的效果。當然,用CPU也一定可以執行運算,只是那結果就像是3DMark Vantage所演示的CPU執行GPU模擬運算的下場一般,FPS低到不行。



Folding @ home,現在已經是大家最耳熟能詳的應用之一了。

而除了PhysX這個令所有玩家驚豔的遊戲畫面以外,實際運用上還有相當多程式是可以使用CUDA語言組譯後把CPU做的事情丟給GPU處理,例如:影像處理相關,只要是修圖,影片壓縮、後製處理等等都是屬於平行運算的一種,而目前也有一家軟體準備在下一次改版後採用CUDA編寫的影片壓縮、轉檔、合併的程式,那就是TMPGEnc Express這套相當好用的影片轉檔壓縮以及後製程式。



這是Pre-sample盒裝,目前還沒上市。



日本的測試版有看到設定選項多出了NVIDIA CUDA 2.0的支援。


取代CPU?


GPGPU這麼強大,那麼你最後一定也會連想到這個問題,它是不是有可能取代CPU呢?其實就如同之前分析所言,GPGPU目前能夠大量處理的大都是平行運算,也就是相類似的資料運算,因此目前以圖形、影像的種類居多,而且它必須要仰賴DX10以及OpenGL才能運作。而CPU則是處理無相關的不同資料運算比較擅長,依此以短時間而言,想要取代CPU是不可能的事情。總之,牛丸各有得做,灑尿蝦就歸我做。我們期待NVIDIA能在很短時間的未來,讓我們看到更多的應用方式,才能夠大量滿足人們飢渴的視覺享受。



NVIDIA甚至還為了這個技術舉辦一場解碼大賽呢。
2#
宅男 發表於 2008-9-29 23:30:37 | 只看該作者
寫的有雜誌的味道,感謝舔舔兄的發文,又讓小弟學到知識了
3#
a00 發表於 2008-9-29 23:39:26 | 只看該作者
失眠時就靠它了
4#
wsc 發表於 2008-9-30 00:44:22 | 只看該作者
圖片都是哭臉
5#
nsalex77 發表於 2008-9-30 01:02:39 | 只看該作者
VGA的重要性越來越大囉~
要是大家都這樣搞低話
感覺合板將會走入歷史
6#
aaug1232001 發表於 2008-9-30 01:33:24 | 只看該作者
又一學術貼...令人增進不少知識
7#
hct0908 發表於 2008-9-30 20:26:33 | 只看該作者
看XF 長知識 ...
8#
wincat 發表於 2008-9-30 22:42:15 | 只看該作者
长知识了,非常支持F@H分布式运算,在家有空也挂上希望尽自己1点能力的,感谢分享!
9#
TIIDA 發表於 2008-10-1 10:47:59 | 只看該作者
公子的文筆真是精闢
寫的好詳細.............
C語言是好久以前學過了
但也都交給老師了
C語言真的要有邏輯觀念
不然頭腦會打結
10#
 樓主| 深舔公子 發表於 2008-10-1 13:59:16 | 只看該作者
原帖由 TIIDA 於 2008-10-1 10:47 發表
公子的文筆真是精闢
寫的好詳細.............
C語言是好久以前學過了
但也都交給老師了
C語言真的要有邏輯觀念
不然頭腦會打結


董仔來賞文真是令小弟蓬蓽生輝啊!!

還請大大多多鞭策
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則

小黑屋|手機版|無圖浏覽|網站地圖|XFastest  

GMT+8, 2024-12-27 16:21 , Processed in 0.126129 second(s), 64 queries .

專業網站主機規劃 威利 100HUB.COM

© 2001-2018

快速回復 返回頂部 返回列表