opencl的前景如何?

最近剛接觸opencl,初步學習,不太了解,求大神們解惑


超算領域,OpenCL和CUDA各有千秋,二者都有用。

二者編程模型也很接近,學了其中一個,另一個基本看看很快就能上手。

在移動領域, 目前來看,一句話:OpenCL前景不明朗,不容樂觀。

答主是從事移動端OpenCL研究和開發的。大方向看,目前主流的晶元廠商都已推出支持OpenCL的晶元。到2015年,各大品牌的手機平板幾乎全都能支持OpenCL(Google親兒子們除外,他們的硬體都完全支持OpenCL,可惜軟體和驅動被Google因為私利所閹割)。 也就是說,未來幾年, 移動端的GPU通用計算必然是一個熱點,成為被廣泛使用的技術,推動移動計算進入一個全新時代。

但是必須看到,GPU移動計算的框架是否採用OpenCL,很難預料。這裡面最大的阻力來自Google,Google為了阻止系統的碎片化,在Android系統框架內不但不支持OpenCL,甚至在親兒子里還刪除了晶元製造商提供的OpenCL驅動,換句話說,目前大家在各手機晶元對OpenCL的支持,都來自手機製造商和晶元製造商的個體行為,並沒有受到Google的支持;另一方面, Google在強推RenderScript,儘管RenderScript飽受詬病。

Nvidia在2014年推出了Tegra K1, 支持CUDA通用計算。然而, 僅有這一款晶元支持CUDA,也很難影響整個Android陣營的格局。

因此,未來1-2年是移動GPU通用計算最關鍵的一段時間,至於朝哪個方向發展,有兩個關鍵點:一看Google態度如何轉變;二看各家半導體廠商能否達成共識,推出一個革命性的API顛覆現有的GPU通用計算的格局。不過不管移動計算領域如何風雲變幻,有一點是肯定的,移動GPU通用計算的前景應該不會差。至於花落誰家,最終哪個編程框架或API能取勝,暫時還無法預料。

------------------------

2015-07-27 更新

近期Google積极參与Vulkan的規範的制定過程中去,可能是Android平台上GPU通用計算的一次機會。據說Google將自己提出的框架併入了Vulkan中去。 下一步就看Vulkan的具體制定實施能否按照各大廠商原先預期那樣, 並且能否順利取代OpenGL、OpenCL成為新一代的圖形和計算標準。 儘管這一切仍然充滿了變數, 但畢竟讓人看到了一絲新的希望, 一絲在OpenCL和CUDA上都不曾看到過的希望。

------------------------

2016-03 繼續更新

Vulkan標準在2016年2月16日正式發布。貼一張答主3/16日參加在 Khronos在舊金山舉辦的Vulkan session時隨手拍的照片。

Google在NDK的官方文檔加入對Vulkan的說明:https://developer.android.com/ndk/guides/graphics/index.html,見下圖.

因此Google對於Vulkan的支持已經是板上釘釘的事情。這無疑對於想要在Android上面使用GPU加速的開發者來說是重大利好消息。

目前來看, 各大軟硬體廠商均已聲明對Vulkan的支持(除了Apple)。Vulkan取代OpenGL和OpenCL成為未來的主流GPU圖形和計算API毫無懸念。但是在Vulkan 1.0中,對compute的支持仍然處於比較初級的階段。可以預見未來的版本中, Vulkan將會引入更多OpenCL的feature。與此同時, OpenCL的演進仍將繼續。作為較為底層的compute API, OpenCL的位置短期來看仍無法被徹底取代,尤其是作為GPU compute的底層研發(硬體特性,compiler,driver, system等層面的開發,對於OpenCL、Vulkan或者其他API來說沒有本質區別)或者測試的API,仍將發揮巨大作用。只是在開發者進行應用開發的時候, OpenCL的使用將大大降低,開發者必然會逐漸將應用向Vulkan轉進。

長遠看,OpenCL的主要feature會被逐漸引入Vulkan,當Vulkan的compute特性最終完善之後,OpenCL肯定是要退出歷史舞台的。不過這一過程需要多久,最終能走到哪一步,還很難講。在Khronos內部,對於是否需要繼續加強Vulkan compute,以及應當怎樣演進;OpenCL 2.1(或3.0)中新加入的feature是否需要引入Vulkan,目前仍然存在分歧。從現在來看, Vulkan標準組被graphics rendering的人所把持(這部分人有的不大關心是否有compute,有的低估了compute的重要性),compute的勢力較弱, 因而Vulkan compute想要繼續演進,面臨的壓力巨大,任何新的關於compute提案想要進入標準將面臨比較大的挑戰。眾多的不確定因素,將對Vulkan compute以及OpenCL的發展產生重大影響。

讓我們拭目以待。同時,我們也應當慶幸,在OpenGL把持歷史舞台近30年之後,我們終於能有幸看到一次王者更替的歷史瞬間,近距離的觀看發生在身邊的巨頭之間的博弈,親眼見證一個劃時代的變革。當然,這個過程中相應的也會催生無數的機遇,看誰能趕上機遇乘風破浪 :)


OpenCL,當初被khronos給予厚望,但最終並沒能成為事實上的工業標準。其主要原因是各主流廠商並沒能給予很好的支持,提供豐富的優化演算法庫。相反NV的CUDA目前在機器學習領域非常火,這也與其孜孜不倦的更新演算法庫密不可分。

目前khronos正在力推Vulkan,這是一個集合了OpenGL和OpenCL的新協議。因此,可以預見將來OpenCL的使用會越來越窄,甚至最終被Vulkan取代。


簡單說,不樂觀,但別無他選,更多是跟CUDA互為備份,防止被坑。很多公司還在用,比如Baidu,GE等。還是CUDA和OpenCL都學吧,你用用就有感覺哪個比較好了。

CUDA和OpenCL有什麼區別?


我認為還好吧,畢竟誕生時間還比較短暫,未來幾年應該會有比較大的發展的。全球最大的那幾家晶元製造商也都在支持opencl的發展。另外,智能手機,還有車載系統等等,也是可以運行opencl程序的,或許opencl可以在手機這樣的平台上有比較大的發展吧。


我個人覺得opencl應該是因為大型應用獲得生命力的。倒並不是民用娛樂推動的。所以移動端超算像是個坑,移動端應該要輕裝上陣。


nv好歹有個地方下載安裝包,使用手冊,示例代碼,

而用opencl,肯定是考慮a卡了,然而上哪裡找相關支持?


opencl目前被谷歌拋棄了,安卓已經不支持。

蘋果自己玩metal。

英偉達玩CUDA。

微軟玩DX12。

在高性能計算領域,也就Intel和AMD支持opencl。


opencl以後若是用於數據中心或者金融領域也有很大的空間


推薦閱讀:

高通和英偉達,誰能成為汽車處理器的贏家?
Imagination Technologies 的行業地位如何,有哪些領先技術優勢?
為什麼顯卡不裝驅動也能使用?
是不是GPU和DSP進行邏輯判斷要比CPU慢?
如何看待「全球首起英偉達、AMD 粉絲暴力血案:一言不合11刀捅死對方」?

TAG:OpenCL | 顯卡 | 圖形處理器GPU | ATI | Vulkan |