Mac OS X 10.6附帶OpenCL,但如果將重寫爲使用OpenCL,有多少應用程序可以獲得更好的性能?什麼樣的應用程序應該重寫爲使用OpenCL?什麼樣的應用程序應該重寫爲使用OpenCL?
回答
我的公司正在使用OpenCL進行科學計算。雖然我不是使用它的開發團隊的一員,但我可以告訴你他們正在使用它做的一些事情:圖像的大規模數據處理,想象重建以及以前編寫的科學代碼的大規模並行化。
基本上,OpenCL是相當先進的。除非你想/不得不處理它,否則最好留給那些需要它的人。我並不是想阻止你,但它是一個專爲利基市場設計的利基產品。你可以更好地爲潛在的就業目的研究其他編程領域。
OpenCL不是一個神奇的「增加性能」按鈕。有幾個先決條件需要滿足才能獲得性能提升,第一個是適當的硬件(一個Tesla GPU可以幫助)。對於可以從中受益的軟件,它是任何執行大量並行計算的軟件。這排除了大多數「日常」軟件,並且留下圖形處理應用程序(渲染器,圖像處理程序),操作可能並行的大型數據處理應用程序以及科學應用程序。
通常,如果您編寫的應用程序可以從OpenCL中獲益,您就會知道您已經從中受益;)。
首先,您不能使用OpenCL「重寫」整個應用程序。您仍然需要GUI的「正常」語言等。
使用OpenCL,您可以加速非常大的數據並行問題。大多數問題不屬於這一類。
最有前途的候選人是圖形/視頻和聲音處理。但是,需要對大量數據進行相同操作的每個問題都是合適的。
我想大多數需要更多CPU能力的正常應用程序最好使用Grand Central Dispatcher,它也用於QuickTime X.從這裏給出的答案中,我得到OpenCL對於一組受限制的應用程序OpenCL非常具體是向前邁出的一步,因爲它允許使用基於C的編程語言,可以在不同的平臺上使用它。 – kiamlaluno 2009-12-18 03:49:53
GCD基本上只是一個非常複雜的線程池實現。 通過自己管理線程可以做得更好。 – 2009-12-18 16:57:03
- 1. 我應該使用什麼樣的應用程序服務器?
- 2. 爲什麼我應該在Silverlight應用程序中使用MVVM?
- 3. 學習Java EE ...我應該寫什麼樣的測試應用程序
- 4. 我應該爲OpenCL for Java使用什麼API
- 5. 我應該使用什麼樣的dbms?
- 6. 什麼樣的搜索應該使用
- 7. 什麼時候應該在WPF應用程序中使用PixelFormats.Pbgra32?
- 8. 我應該使用什麼應用程序框架?
- 9. 爲什麼我應該在我的xpages應用程序中使用主題?
- 10. 什麼樣的工作典型應用該類超支的由OpenCL的
- 11. 爲什麼getBean()方法應該在Spring應用程序
- 12. OAuth:爲什麼我應該在Facebook上創建應用程序?
- 13. 設計不當的應用程序:我們應該重寫嗎?
- 14. 什麼是Django「應用程序」應該是什麼意思?
- 15. 什麼時候應該將Runloop應用於我的程序,爲什麼?
- 16. 「使應用程序可編寫腳本」意味着什麼,我們應該在什麼時候使用它?
- 17. 我應該爲這種情況使用什麼樣的模式?
- 18. 什麼樣的應用程序可用作專用應用程序服務器?
- 19. 爲什麼我應該在這個程序中使用fflush(stdin)?
- 20. 我應該爲移動網絡應用程序使用什麼文檔類型?
- 21. 什麼時候應該使用JSON序列化,爲什麼?
- 22. 什麼EVENT LISTENER應該用於我的Android應用程序
- 23. 我應該使用什麼樣的工具在linux上爲諾基亞手機開發J2ME應用程序?
- 24. 我應該在DroneDeploy應用程序中使用哪些樣式?
- 25. 什麼時候應該在Android應用程序中使用片段?爲什麼要使用碎片?
- 26. 交易應用程序使用什麼樣的前端/ gui?
- 27. 我應該在Ruby on Rails中重寫我的Codeigniter/PHP應用程序嗎?爲什麼?
- 28. 我應該使用什麼鍵爲HashMap?
- 29. (爲什麼)我應該使用混淆?
- 30. 爲什麼我應該使用@properties?
正常的GeForce/Radeon顯卡和專業陣容之間的OpenCL支持沒有區別。 – 2009-12-18 03:17:48