PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 電腦硬體討論群組 > 效能極限
帳戶
密碼
 

  回應
 
主題工具
須藤京一
Major Member
 

加入日期: Dec 2004
文章: 176
顯示卡的C語言開發轉譯好工具-簡介CUDA技術






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


顯示卡的C語言



能夠支援CUDA技術的顯示晶片核心編號,還有更多只是小弟沒有收錄在同一張圖片內,詳情可以請各位上CUDA ZONE專區網站:http://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甚至還為了這個技術舉辦一場解碼大賽呢。
     
      
舊 2008-09-29, 09:44 PM #1
回應時引用此文章
須藤京一離線中  
yymow
Advance Member
 

加入日期: Jan 2008
文章: 424
真是專業...
牛丸各有得做,灑尿蝦就歸我做
推~哈哈哈
 
__________________
舊 2008-09-30, 12:27 AM #2
回應時引用此文章
yymow離線中  
anoem
Major Member
 

加入日期: Mar 2005
文章: 246
感謝詳細的說明.讓我更加瞭解新用途.
先收下慢慢品味
舊 2008-10-06, 08:55 PM #3
回應時引用此文章
anoem離線中  
NEAL
Golden Member
 
NEAL的大頭照
 

加入日期: Jun 2002
您的住址: Taiwan
文章: 2,668
太棒了,大推

我最近也在看這塊,因為研究需要

請問樓主那八張Instruction CD要怎麼取得呢?

謝謝您
__________________
工作主力機:
AMD Ryzen7 8700G
ASRock Deskmini X600
Crucial DDR5-5600 SODIMM 8GBx2
Samsung 970 EVO Plus 1TB
Thermalright AXP-90 black
Acer XV272U KV
ASUS ROG Gladius II Origin
GANSS HS75T x Glorious Panda

LG 32LM6200 32吋液晶電視電源模組維修經驗分享
舊 2008-10-11, 04:16 PM #4
回應時引用此文章
NEAL離線中  
linjunan
Elite Member
 

加入日期: Jul 2001
文章: 4,704
nvidia 此舉贏得掌聲,只是不曉得最後是誰贏得歷史;ATI、Intel 不會這樣就算了。若未來有人為了run什麼非3d、非game軟體而挑顯示卡,這倒蠻好玩的。
舊 2008-10-11, 04:52 PM #5
回應時引用此文章
linjunan離線中  
PCVCD
Regular Member
 

加入日期: Apr 2007
文章: 55
看到胡文美教授...


之前有去聽演講
舊 2008-10-16, 12:02 PM #6
回應時引用此文章
PCVCD離線中  
kenchen1226
*停權中*
 
kenchen1226的大頭照
 

加入日期: Nov 2005
文章: 621
所以 ATI 就不能用囉...
本來還想研究一下 CUDA
看看有沒有 demo 的開發工具 , SDK 抓來玩玩
大四專題寫過 DirectX 5 (好幾年前了)
不過只摸到2D 部分,精彩的3D 還沒玩
因為要建模組,不知如何建模組...
以前2D, 隨便幾張圖就可以了

好久沒碰 DirectX 了 ..
舊 2008-10-16, 06:34 PM #7
回應時引用此文章
kenchen1226離線中  
pls2
*停權中*
 

加入日期: Jul 2008
您的住址: 火星基地
文章: 488
不推, 只支援高階顯卡
舊 2008-10-18, 12:51 AM #8
回應時引用此文章
pls2離線中  
四百
Major Member
 

加入日期: Nov 2002
文章: 183
推一個 不過我是ATI的卡 只能在旁邊納涼
舊 2008-10-18, 02:44 AM #9
回應時引用此文章
四百離線中  
wyuz
Major Member
 
wyuz的大頭照
 

加入日期: Oct 2006
文章: 217
引用:
作者pls2
不推, 只支援高階顯卡


不會阿,8系列以上的已經幾乎全部支援了
http://www.nvidia.com.tw/object/cud...roducts_tw.html
如果你對"高階"的定義是非內建那我就沒辦法了
舊 2008-10-18, 09:09 AM #10
回應時引用此文章
wyuz離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是02:41 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。