OpenCL與CUDA的搏弈

    作爲GPU計算的兩個主要的編程框架,OpenCL和CUDA在開發者社區裏已競爭多年。直到最近,CUDA已經吸引了很多開發者的關注,尤其是在高性能計算領域。但OpenCL軟件現已成熟到讓HPC從業者也開始另眼相看。

    OpenCL和CUDA都是提供數據並行通用模型以及底層訪問硬件,但只有  OpenCL提供了一個開放的、行業標準的框架。正因爲如此,它已經引起了幾乎所有的處理器廠商,包括AMD,英特爾和NVIDIA,以及其他服務於移動和嵌入式計算廠商的支持。因此,用OpenCL開發的應用可以方便地跨越各種GPU和CPU設備。
    2008年12月發佈OpenCL 1.0,雖然只比NVIDIA推出的第一個版本的CUDA晚了1年半,但在普及性上,OpenCL仍舊大幅落後CUDA,尤其是在HPC領域。這主要是由於NVIDIA在這一領域努力推動CUDA 成爲主導GPU開發編程框架的結果。
    AMD一直是OpenCL技術在計算技術最強烈的助推器,但它缺乏在高端GPU計算方面有競爭力的產品。OpenCL的使用迄今爲止,已大多轉移到客戶端計算,尤其是那些越來越多地將GPU硅納入其設計的移動平臺廠商。
    OpenCL對於HPC用戶來說一直保持着不夠成熟的印象,相對CUDA技術,性能低。這也可能是高性能的芯片製造商(英特爾,AMD和NVIDIA)沒有熱烈地支持,至少在他們的高端處理器上。在許多方面,確實是這樣,NVIDIA致力於其最關注自己的CUDA軟件,而英特爾似乎已經解決自身的並行編程框架,主要是Cilk Plus和線程構建模塊。
不過AMD繼續推崇OpenCL,他們在最新的編譯器和庫版本上大大提高性能。事實上,來自於未來集團(位於美國橡樹嶺國家實驗室內)的 Kyle Spafford已經對這兩種技術做了一段時間的基準測試,他認爲OpenCL的性能現在可以與CUDA看齊。 
     Spafford運行橡樹嶺國家實驗室的可擴展異構計算基準套件(SHOC),它已爲CUDA和OpenCL做好了優化。Spafford發現OpenCL在大多數基礎數學內核上,性能已經與CUDA相匹配。他還發現,OpenCL的一些內核的性能,像SGEMM,自2009年以來增加了10倍。CUDA在一個代碼上具有顯着的性能優勢就是快速傅立葉變換(FFT)。spafford 認爲CUDA具有更好的FFT性能是因爲它使用一個快速的內在屬性,而AMD的OpenCL用的速度較慢但更精確的方式。Spafford說,如果執行匹配的話,性能上的差異就會消失。

      別人也在各自獨立的科學應用上得出類似的結論。在Dartmouth的一個研究小組分別用OpenCL和CUDA運行引力波的數值模型,他們發現OpenCL和CUDA之間的相似的性能,他們用的是Tesla GPU和IBM的Cell BE處理器。 
GPU的軟件製造商AccelerEyes已經看到CUDA和OpenCL性能均衡。該公司最近發佈了他們的兩個旗艦軟件產品ArrayFireJacket的OpenCL驅動的beta版本。AccelerEyes已經發現在很多內核代碼上,這兩種技術表現出相似的性能。還有如橡樹嶺國家實驗室,他們發現在CUDA上執行FFT的速度依舊更快,但AMD的OpenCL的編譯器和庫,無論在廣度和性能上都大大提高。 
據AccelerEyes首席執行官約翰Melonakos表示超過一半的客戶用他們的電腦開發GPU加速程序,然後再部署到工作站或GPU集羣上,因此能夠支持非NVIDIA硬件是非常必要的。例如,客戶作爲開發平臺使用的MacBook不能運行CUDA,因爲蘋果有沒有在其最新的筆記本電腦裏選擇NVIDIA GPU。但是AccelerEyes提供AMD的OpenCL庫,可以使用英特爾CPU、AMD的CPU和NVIDIA GPU,沒有硬件不兼容的問題。 
          還有的用戶只是不願意採用供應商特定的軟件棧,如CUDA。“有一類的人絕對要用到GPU計算的,但他們拒絕被供應商綁死。”Melonakos說,“這些人會將OpenCL產品最爲首選。” 
爲了對付這種感知,NVIDIA最近爲第三方開發開放了CUDA編譯器的源代碼。但很明顯,NVIDIA公司不把其所有重要的CUDA數學庫,像CUBLAS和CUFFT,列入開放的列表裏。據Melonakos,大型和成熟的庫集是CUDA的技術計算領域的真正原因。不管開源與否,NVIDIA仍保留控制CUDA軟件技術,這就是爲什麼它仍然認爲作爲一個供應商特定的解決方案。 
          即使是NVIDIA和英特爾都在OpenCL下了賭注,但雙方還是爲各自的硬件提供軟件。在這一點上,這些公司在移動計算開發者提供OpenCL支持。但是,因爲有越來越多的移動和HPC有交叉的用戶,還不明確開發者將如何使用這些技術。 

事實上,如果移動領域在更大範圍裏緊抓OpenCL,並且它成爲標準低層次異構計算解決方案,將有助於加快其在高端領域裏的普及。而一旦OpenCL有一定的普及度,對強健編譯器和庫的需求會迅速增加。正如Melonakos所說:“我不認爲OpenCL是要走了。”


 轉自     http://bbs.gpuworld.net/thread-129-1-1.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章