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. 什麼樣的搜索應該使用
- 6. 我應該使用什麼樣的dbms?
- 7. 我應該寫什麼樣的測試?
- 8. 要使用sudo功能,我應該在我的應用程序中寫什麼?
- 9. 雲應用程序是什麼樣的?
- 10. 我應該使用什麼應用程序框架?
- 11. 什麼時候應該在WPF應用程序中使用PixelFormats.Pbgra32?
- 12. 我應該爲我的Facebook應用程序使用什麼類型的授權
- 13. 爲什麼我應該在我的xpages應用程序中使用主題?
- 14. 什麼是Django「應用程序」應該是什麼意思?
- 15. OAuth:爲什麼我應該在Facebook上創建應用程序?
- 16. 爲什麼getBean()方法應該在Spring應用程序
- 17. 重新使用openCL程序
- 18. 設計不當的應用程序:我們應該重寫嗎?
- 19. 什麼樣的工作典型應用該類超支的由OpenCL的
- 20. 當應用程序禁用推送時,iOS應用程序應該做什麼?
- 21. 什麼時候應該將Runloop應用於我的程序,爲什麼?
- 22. 「使應用程序可編寫腳本」意味着什麼,我們應該在什麼時候使用它?
- 23. 什麼IAP類型應該用於雜誌應用程序就像Zinio一樣?
- 24. 我應該爲這個UI使用什麼樣的控件?
- 25. 我應該爲這種情況使用什麼樣的模式?
- 26. 我應該爲這樣的JavaScript按鈕使用什麼標籤?
- 27. 爲什麼我應該在這個程序中使用fflush(stdin)?
- 28. 重寫IOS應用程序
- 29. 什麼樣的安全性應該使用Android和IOS創建像facebook一樣的應用程序
- 30. 爲商務應用程序快速存儲會話我應該使用什麼?
正常的GeForce/Radeon顯卡和專業陣容之間的OpenCL支持沒有區別。 – 2009-12-18 03:17:48