2011年10月9日 星期日

CUDA Nvida所推廣的GPGPU架構的程式語言

作者: Mojear (得我反思) 看板: Gossiping
標題: Re: [問卦] 有沒有電腦CPU速度都上不去了八卦
時間: Sun Oct  9 02:40:34 2011

※ 引述《dcsazabi (米蟲)》之銘言:
: GPU運算能力確實比CPU強啊
: 有駭客就是在一台裝置上插上約20張的顯卡
: 原本可能需要十幾年的暴力破解,可以在短短數小時內完成
: 聽說那張號稱數十道金鑰的悠遊卡
: 也可以此機器破解幾個key喔^^
研究所剛好都有再碰CUDA

就我知道的寫一些出來,優缺點都寫


CUDA..Nvida所推廣的GPGPU架構的程式語言

主要目的是利用顯示卡的記憶體空間與"浮點運算"能力

意思是說原本將CPU很吃重的工作利用顯示卡的多核心分攤運算

為什麼我說是將CPU吃重的工作分過去而不是說GPU獨立運算呢

是因為GPU的邏輯運算很弱,某些時候還是要靠CPU

那既然都這麼強大為何沒辦法普及

我個人使用的感想原因有幾個

1.程式難以撰寫

看起來似乎簡單的程式其實對於你要思考如何最佳化與開幾個thread下去跑

又你要想像哪些片段的程式適合顯示卡幫你,哪些部分則是留在CPU運算

不是說整個程式都丟下去就可以達到效果,你還要考慮資料搬移的時間

如果你資料搬移的時間大於CPU獨立運算的時間那等於一點效益都沒...

2.商業化不足

由於撰寫的難度太高,又要考慮硬體因素,不像openmp打個一行指令就可以開thread

整體來說無法對一般商業使用者達到友善的目的,例如你玩遊戲或著看個影片

基本上沒辦法考慮到哪些顯示卡的部分可以幫忙分攤運算

而且要考慮硬體不同程式撰寫方式也不同...無法簡易而通用的確是敗筆

你想想如果轉檔轉影片或著3D繪圖都有可以利用顯示卡加速運算的話

我想市場會大很多..現在主要的市場還是在科學運算與天文運算

說真的要那些科學家在去多學一套程式來應付..我想太耗時間

如何友善的可以用一些簡單的方法讓他普及的確是Nvida需要努力的

3.硬體的限制

講是講運算很快很棒,但是還是有一些限制

例如將資料從CPU中搬移到GPU中,在這之間的交換過程的時間需要考慮

而PCI-E的資料傳輸速度也需要考慮(印象中是5G/S)

而在GPU運算結束丟回CPU做結果呈現也要考慮..在中間要考慮的因素太多太多

往往搞的程式撰寫者很頭大

所以當複雜的遊戲 生活等等應用程式比科學運算的程式來的複雜時,CUDA就沒這麼好用

但是如果只是搞運算..CUDA的確很棒,而且最重要的是只能在Nvida顯示卡上應用

所以要商業普及化又多了一項限制,軟體開發者不見得要買你這套...

我辛辛苦苦開發出來的軟體卻只限定在Nvida的顯示卡才能用

以一個軟體商來說當然希望市場通吃,而要為了加速則選邊站或著開發多種版本

對他們來說都算是無謂的負擔...

4.競爭對手(OPENCL)

當AMD選擇將CPU與GPU做再一起,理想是簡單的語言可以讓程式的資料運算

可以在相鄰的CPU GPU中互通有無,而且只要下簡單的指令就可以互相搭配

Nvidia看了其實有點緊張,雖然效能沒這麼快但是撰寫容易且硬體限制較小

所以Nvidia也沒有放棄這一塊,也同樣的投入研究在這個領域


綜觀以上幾點,GPU在運算上是可以幫到CPU不少忙,但是重點就是在效益

如果想要普及一定要可以友善的使用,而不是單純的"這刀子好利可是舉不起來"

如果想要著重於小市場(科學運算 天文運算 物理運算)目前效果是還不錯

我想OPENCL未來會是發展的重點之一

但是就要看各家廠商給不給面子囉..CPU廠商如果去開發這個不是打自己臉

利用GPU分攤CPU的構想真的很棒,但是還有一段路要走

另外附上Nvidia在台灣開放的CUDA技術交流的wiki

http://www.smooth.url.tw/wiki/doku.php

有興趣的可以參考看看~


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.64.187
→ ll35566:只能推了                                                10/09 02:41
→ ll35566:這篇我至少看懂依些                                      10/09 02:41
推 nvidia:CUDA的市場還蠻大的 比AMD的大                             10/09 02:42
→ ll35566:3F自肥                                                  10/09 02:42
推 mmonkeyboyy:放心AMD不會倒 倒了股東INTEL就出來了                 10/09 02:42
→ mmonkeyboyy:話說CUDA是很強的  但PS3組成的超級電腦更便宜         10/09 02:43
推 wwewcwwwf:謝謝 又輩份了一篇專業文 ptt資料夾txt檔 累積到1.82g    10/09 02:44
推 linjrming:單純只是架構問題,CPU的架構太龐大了,導致處理某些問   10/09 02:44
推 andy70612:是CL還是GL                                            10/09 02:44
→ linjrming:題,會不如架構相對簡單的CPU                           10/09 02:45
→ whogotme:作在一起,看到同樣空間,傳址就好,AMD提的Zero-copy的概念  10/09 02:45
→ nvidia:OPENCL阿 APPLE開啟的                                     10/09 02:45
推 mmonkeyboyy:是C                                                 10/09 02:45
→ wwewcwwwf:ATI和nvidia到底誰的技術比較好啊                       10/09 02:45
→ nvidia:NVIDIA阿 還用問                                          10/09 02:45
→ mmonkeyboyy:ATI啊  還用問?                                      10/09 02:46
→ Mojear:OPENCL是APPLE的構想 但是CPU跟GPU供應商不吃他這套也沒用   10/09 02:46
→ nvidia:這部份很吃撰寫人的演算法能力                             10/09 02:46
→ wwewcwwwf:然怪我11月買5670 最近一直當 我拔掉一個dvd才能開       10/09 02:46
→ Mojear:所以我才說還有一段路要走..只單靠APPLE之類的沒用..        10/09 02:47
→ mmonkeyboyy:主要是看大型運算中心誰要先用吧@_@                   10/09 02:47
→ wwewcwwwf:我電腦還在用core 2 duo 6320 = =                       10/09 02:47
推 linjrming:GPU因為要平行處理很多的小運算,所以架構會偏向很多小   10/09 02:48
→ Mojear:據說歐洲那個會製造黑洞的某運算中心有用CUDA...            10/09 02:48
推 andy70612:感謝回答                                              10/09 02:48
→ mmonkeyboyy:我知道是美國經濟不好 大家cost down PS3就沙出來了    10/09 02:48
→ linjrming:運算元件的集合,這也是拿GPU來做平行處理比較快的原因   10/09 02:48
推 kaoh08:CUDA已經看到有軟體在用了 歐噴CL根本連個影都沒有...       10/09 02:49
→ Mojear:還有拍阿凡達的3D技術也有用到CUDA..                       10/09 02:49
→ wwewcwwwf:以上除了我都是高手 我真有眼不識泰山 來反串....        10/09 02:49
→ mmonkeyboyy:PS3裡的POWER PC 會寫的話可以是珍品啊 XD             10/09 02:49
→ Mojear:OPENCL不是單打獨鬥就可以,所以發展比較慢,但是概念不錯..   10/09 02:50
→ Mojear:所以我才說CPU廠商再打OPENCL的臉...XD                     10/09 02:50
→ mmonkeyboyy:沒什麼反串不反串  只要能說出有道理or新東西          10/09 02:50
→ mmonkeyboyy:大家都歡迎你嘛                                      10/09 02:50
→ mmonkeyboyy:到是我覺得AMD ATI 如果整合更好一點 未來很不錯的     10/09 02:51
推 wwewcwwwf:mm大人真好 我學歷低 都被瞧不起T^T                     10/09 02:51
→ mmonkeyboyy:最少面積距離等問題少很多 速度可以上升               10/09 02:51
推 linjrming:難寫應該是無解,除非能開發出能知道你在想什麼的        10/09 02:51
→ linjrming:compiler                                              10/09 02:52
→ mmonkeyboyy:我學歷也很低  只是個私大生                          10/09 02:52
→ wwewcwwwf:ati 似乎繪圖 autodesk的能力比較好的說                 10/09 02:52
→ Mojear:現在OPENCL只能靠AMD了 因為他有顯示卡的部門...INTEL       10/09 02:52
→ Mojear:應該不會買OPENCL的帳..                                   10/09 02:53
→ mmonkeyboyy:INTEL不是在找NV了 (會怕就好)                        10/09 02:53
→ Mojear:唉呀 畢竟不同公司還是會留一手 你懂得...                  10/09 02:54
推 nvidia:MIT也是私立的 沒什麼阿 XDD                               10/09 02:54
→ mmonkeyboyy:那INTEL花錢買下來就好了                             10/09 02:54
→ nvidia:AMD作的投影片看起來都不錯啊                              10/09 02:54
→ nvidia:FUSION                                                   10/09 02:55
→ mmonkeyboyy:我是台灣的私大生 跟美國差很多哦 XD                  10/09 02:55
推 linjrming:NV很尷尬,INTEL也可以完全不理他自己埋頭做             10/09 02:55
→ nvidia:所以需要有AI的compilerf                                  10/09 02:55
→ mmonkeyboyy:INTEL 花錢買人就好啦 XD                             10/09 02:55
→ nvidia:用嘴巴寫程式                                             10/09 02:56
→ mmonkeyboyy:CUDA我記得 CMU有出一個COMPILER不是嗎?               10/09 02:56
→ mmonkeyboyy:還號稱什麼叭啦叭啦 可以做什麼運算  還賣給某中心     10/09 02:57
推 animos:這樣就不能在跑數據的時候自以為很忙跑去打電動了..顆顆     10/09 03:00
推 captdavince:那我想請問一下相對matlab跟labview直接導進GPU的.     10/09 03:34
→ captdavince:效能會好嗎?                                         10/09 03:34
→ j022015:專業推 0.0 長知識                                       10/09 04:02

沒有留言:

張貼留言

您好.本資料庫並非第一手資料.如果你有對文章作者的詢問,意見與需求,請自行找尋文章作者並提供意見,謝謝.