我想編寫一些程序,其中一些代碼在cpu中運行,一些在gpu中運行。我想使用opencl.it是可以做到這一點,如果是的話我怎麼能做到這一點?我想使用視覺工作室。我如何在cpu和gpu中的某些部分運行某個程序的某個部分?
回答
可能您可以嘗試使用微軟支持的AMP。
您可以在OpenCL中使用多個設備。使用給定的API獲取設備上的信息,然後使用句柄在每個設備上創建上下文。休息就像一個簡單的OpenCL程序一樣簡單。您也可以啓動一個任務並行內核。更多信息請參閱AMD/nVIDIA OpenCL編程指南。
你絕對可以做到這一點,這是CPU + GPU組合的大型程序。如果您認爲部分代碼可以並行化,例如展開少量循環,或者如果您正在使用斷開連接的數據集,則將這些項目放在GPU上。如果它是連續的並且需要很多同步,並且忙於等待一些循環,那麼將其放入CPU中。
實現這一點的方法很簡單,首先在主機部分編寫算法/邏輯,然後使用OpenCL API函數設置GPU以執行並行代碼,GPU計算單元上運行的函數稱爲內核,所以您需要在OpenCL(C99)語言中編寫內核函數。
在網絡中有很好的指針可以幫助你完成這個任務。
AMD APP SDK 2.7 http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx 你會很多OpenCL的樣品,從簡單的Hello World在一個簡單的方法來實現複雜的算法。
AMD APP探查 這與AMD APP SDK 2.7走來,並幫助您配置文件是什麼,你已經寫
AMD gDEBugger http://developer.amd.com/tools/gDEBugger/Pages/default.aspx
這將幫助你在調試的GPU OpenCL程序,主機代碼調試使用Visual Studio調試器。
英特爾也提供了類似的樣本看這裏: http://software.intel.com/en-us/articles/vcsource-samples/
Nvidia的樣品在這裏: http://developer.download.nvidia.com/compute/cuda/3_0/sdk/website/OpenCL/website/samples.html
- 1. 如何在git中刪除某個文件的某個部分?
- 2. 如何拆分線的某些部分?
- 3. 分裂某些部分
- 4. 如何獲取json的某些部分?
- 5. 如何訪問XML的某個部分?
- 6. 排序樹存儲的某些部分
- 7. 某些關鍵部分
- 8. awesomium web刮某些部分
- 9. MATLAB分析圖像的某些部分
- 10. XSLT分揀文件的某些部分
- 11. 外部.js只運行代碼的某些部分
- 12. 刪除matplotlib中某個圖形的某個部分
- 13. 如何在Android中僅屏蔽某些位圖的某些部分
- 14. 如何排除某些可變部分?
- 15. MVC中網頁的某些部分
- 16. 我在Excel中2個colums但我想導入某些部分以C#程序
- 17. 如何將一個字符串分解去除某些部分
- 18. 如何顯示某一行的部分?
- 19. 如何返回程序的某些部分? java
- 20. 只有在某個特定情況下,我如何才能輸出某個對象的某個部分?
- 21. 我該如何隨機刪除文件行的某個部分?
- 22. 如何按字符串的某個部分進行排序?
- 23. 只分析Java應用程序的某些部分/類
- 24. 如何不匹配行的某些部分的空格在Perl
- 25. 識別某個網站頁面上的某個常見部分
- 26. 從某個頁面上的某個部分獲取文本
- 27. 獲取某個網址的某個部分
- 28. 用正則表達式替換某個詞的某個部分
- 29. 的這個C代碼的某些部分不適合我
- 30. 如何把一個字符串的某些部分到列表