我正在研究如何使用GPU來處理流數據。我有兩個選擇,但不能決定走哪條路?OpenCL或CUDA要走哪條路?
我的指標分析如下:
- 易於使用的(好API)
- 社區和文檔
- 性能
- 未來
我會在C代碼和Linux下的C++。
我正在研究如何使用GPU來處理流數據。我有兩個選擇,但不能決定走哪條路?OpenCL或CUDA要走哪條路?
我的指標分析如下:
我會在C代碼和Linux下的C++。
的OpenCL
CUDA
底line - OpenCL是便攜式的,CUDA只是nVidia。然而,作爲一門獨立的語言,CUDA功能更強大,並且擁有許多非常好的工具。
實際上,使用OpenCL還有一個優點,它可以並行處理CPU中的任務。 – systemsfault 2010-04-15 12:11:12
@holydiver,有效點,但你問關於GPU :) – 2010-04-15 12:17:53
@holydiver,在這種精神下,你可以說Windows和MacOS X都沒有光明的未來:> – 2010-04-15 12:46:25
我個人的經驗是:
API:OpenCL的有稍微複雜的API。不過大多數時候你會花時間編寫內核代碼,這裏兩者幾乎完全相同。
社區:CUDA有一個更大的社區,然後OpenCL直到現在,但這可能會即將推出。
文檔:兩者都有很好的文檔記錄。
性能:我們取得了這樣的經驗,即OpenCL驅動程序尚未完全優化。
未來:未來在於OpenCL,因爲它是一個開放標準,不限於供應商或特定硬件!
這個評估是從2010年開始的,所以可能已經過時了。
除非您有明確的理由使用CUDA,否則一路OpenCL。 OpenCL除了在GPU上運行之外,還可以在像Intel i7這樣的多核上運行良好。通過使用OpenCL,您可以運行在從Droid手機到全球最大的超級計算機Blue Waters的IBM Power7計算節點的更廣泛的硬件上,該計算機應該在明年上線。
另請參閱:http://stackoverflow.com/questions/2384930 – 2010-04-16 06:31:16