本文轉貼自PTT
台灣最大的本土社群網站
分享這篇文章到Facebook、Google+或噗浪!


 作者  turtleknight (turtle)                                       看板  DSLR 
 標題  Re: [問題] 請問修圖&獨顯的關係                                         
 時間  Wed Jan 30 19:14:27 2013                                               
───────────────────────────────────────

顯示卡影不影響修圖,是要看撰寫程式的工程師
有沒有把顯卡的運算資源,放到算圖引擎的程式碼裡面

目前點陣圖的處理,大概就是adobe和apple這兩家公司帶頭
adobe我不太清楚,但apple長期以來為了把圖形核心用來運算,
一直在開發各式各樣的語言,像是CoreImage就是用到GPU來做各式的影像處理
概念大約是程式寫好編譯之後,OS負責決定把適合的工作丟到CPU或GPU裡頭
但Coreimage當初開發,只是為了用來各種濾鏡,也就是他一定要以點陣圖為基底
進去的是點陣圖,出來的也是點陣圖,若是要做浮點運算,coreimage無能為力

nvidia提出的cuda則剛好相反,cuda可以把圖形核心用來作浮點運算
但是因為nvidia只是顯卡製造商,他無法利用CPU的資源,來做某些CPU特別擅長的事情

這件事情在最近有了轉機,

2010年,apple召集顯示卡的製造商AMD、Nvidia和intel,定出了另外一套OpenCL語言
專門用來作GPGPU的異質運算,概念和Coreimage類似,
但這次可以丟圖像,也可丟浮點,而且可用CPU或GPU做演算
kernel寫完之後,編譯完成,OS會告訴這隻程式有多少的device可以用,
這裡的device就是CPU或是GPU的運算核心
然後這些核心以平行的方式運算kernel程式,所以kernel裡面幾乎不需要寫迴圈
這種方法可以說是「一次做很多事情的工作方式」,
而傳統的CPU工作方式大概可以想成「一件一件案順序做下去」

這種工作方式最適合用在圖像處理上,例如說800x600的圖,
我要對每個pixel點做一點事情,例如說,每個點的RGB值都加1
用CPU做,就會變成有480000個工作,大家排隊下去做
而OpenCL就變成,4800000個工作同實作(但這要device的數量夠啦)
好像有點扯遠了...........

來講現有實現對使用者比較有意義,

OpenCL的實作,在Mac上的finalcutpro可以得到很顯著的效果
尤其是final cut pro 10.0.5之後,幾乎在一般配備HD4000的電腦
都可以用real-time editting,以前在premeier還要pre-rendenr的時間
因為OpenCL的加入,讓演算速度整個倍增不知道多少倍

回到你的問題,顯視卡會影響修圖嗎?
這裡只能回答it depends,如果你用apple自家的軟體,
像是aperture,他用的都是coreimage語言撰寫的濾鏡,答案肯定是「會變快」。
(用到OpenCL的版本目前還沒見到)
若是用finalcut剪影片,那肯定是會。
如果你想在mac上用adobe的軟體,adobe支援cuda,osx本身也支援cuda
但不知道osx版的lightroom和photoshop有沒有支援cuda(也許板友可以幫忙)

不過這裡還是有個詭異的問題,
nvidia在6系列之後,就把可程式化的圖形核心從消費級顯卡裡面拿掉
6系列在OpenCL的跑分上,甚至比前一代的5系列產品還要差許多

所以若是要做異質運算,買5系列的顯示卡,或是AMD沒有閹割的7系列顯卡
會快上許多

不過有人說macboook retina裡面那棵660m,是特殊規格的,
並沒有閹割掉演算核心,到底有沒有?實際用起來的確是有變快,
但沒有人可以確定,到底是用什麼方法做到的。

※ 引述《s82237823 ()》之銘言:
: 最近要考慮買MAC
: 在13跟15吋中間比較
: 兩者的差異就是有無獨顯
: 請問獨顯會影響修圖嗎?

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.97.61
※ 編輯: turtleknight    來自: 123.192.97.61        (01/30 19:14)
推 gwofeng:快點推 不然以為我們看不懂                               01/30 19:31
推 bowaveradio:我也是這麼想的                                      01/30 19:34
推 freeasa:寫的很詳細,但是我看的很模糊,所以簡單的來說            01/30 19:50
推 yangyr:哇高手耶,長知識了~                                       01/30 19:50
→ freeasa:apple的顯卡對於修圖有幫助,其他的比較沒關係 <--這樣嗎   01/30 19:50
推 xxxg00w0:文中是不是多了個0啊?XD 寫的很詳細 讚喔!_!              01/30 20:08
推 ahometsai:如果是apple環境下用ADOBE的軟體呢?如LR                01/30 20:16
推 SanzeninNagi:純推Aperture                                       01/30 20:31
推 Epsilon:推。但最詭異的是,在Photoshop裡,要是把OpenGL打開,速   01/30 20:41
→ Epsilon:度反而會變慢:http://tinyurl.com/ahr322e                01/30 20:41
→ tyf99:樓上..可利用GPU做平行計算的是OpenCL,不是OpenGL           01/30 20:54
推 lwecloud:Mythbusters示範何為GPU平行運算http://ppt.cc/9_VR       01/30 21:56
推 attdave:推 長知識了                                             01/30 22:10
推 Dora9:Ap3.3之後變好威啊 可惜雪豹不能灌                          01/30 22:57
推 Epsilon:to tyf: photoshop裡的顯示卡加速是OpenGL。               01/30 23:14
推 icevil:所以我筆電的650M不支援嗎@@?ㄗ                           01/30 23:17
推 Decill:我看到的是Open CL (PhotoShop CS6) http://ppt.cc/wnvH     01/31 00:11
推 Decill:啊其實都有啦Open GL寫在外面 描述也有列出分別影響的項目   01/31 00:15
推 icevil:那不就要買apple才可以唷?那ps裡的openGL是無作用嗎        01/31 02:56
推 MB618:難得在DSLR板可以看到優質好文  給個推                      01/31 08:27
推 rugger5566:專業!!!                                              01/31 08:53
→ tyf99:OpenGL通常只是用在即時render之類的運算,像是貼材質、陰影  01/31 14:44
→ tyf99:OpenCL則是接受指令後,把工作切割分給CPU/GPU去跑           01/31 14:48
→ tyf99:沒有OpenGL,需要自己另外寫一個相同的功能來取代            01/31 14:49
→ tyf99:沒有OpenCL,仍然可以跑,只是會比較慢而已                  01/31 14:49
→ tyf99:兩者雖然都是圖形API,名字也很像,但功能大不同             01/31 14:51
推 DavidCat:專業                                                   01/31 14:52
推 phantomli:好文一定要推 不然以為我們看不懂  XD                   02/01 11:02


----本文使用PCMAN+BBI轉貼----


※ 新版PCMAN開放測試中,新增功能:    



用PCMAN+BBI連回PTT原文