2012-07-02 36 views

回答

0

可能您可以嘗試使用微軟支持的AMP

0

您可以在OpenCL中使用多個設備。使用給定的API獲取設備上的信息,然後使用句柄在每個設備上創建上下文。休息就像一個簡單的OpenCL程序一樣簡單。您也可以啓動一個任務並行內核。更多信息請參閱AMD/nVIDIA OpenCL編程指南。

0

你絕對可以做到這一點,這是CPU + GPU組合的大型程序。如果您認爲部分代碼可以並行化,例如展開少量循環,或者如果您正在使用斷開連接的數據集,則將這些項目放在GPU上。如果它是連續的並且需要很多同步,並且忙於等待一些循環,那麼將其放入CPU中。

實現這一點的方法很簡單,首先在主機部分編寫算法/邏輯,然後使用OpenCL API函數設置GPU以執行並行代碼,GPU計算單元上運行的函數稱爲內核,所以您需要在OpenCL(C99)語言中編寫內核函數。

在網絡中有很好的指針可以幫助你完成這個任務。

  1. AMD APP SDK 2.7 http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx 你會很多OpenCL的樣品,從簡單的Hello World在一個簡單的方法來實現複雜的算法。

  2. AMD APP探查 這與AMD APP SDK 2.7走來,並幫助您配置文件是什麼,你已經寫

  3. 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