2015-07-12 68 views
1

我正在尋找技術來加速我的應用程序(C++,測量數據處理)中的計算。 OpenCL似乎是一個很好的解決方案。 但是對於不同的平臺(ATI GPU,Nvida GPU & Intel),有不同的庫和不同的運行時。多平臺OpenCL應用程序

我可以創建一個在NVidea GPU,ATI GPU和Intel中正確處理的實現嗎?或者我需要爲每個平臺創建一個不同的實現?

我可以這樣做:

void ComputeIt(); 

或者我需要創建:

void ComputeItAMD(); 
void ComputeItIntel(); 
void ComputeItNVidea(); 

???

謝謝!

+0

要澄清,你只是試圖編寫將在每個平臺上工作的代碼,或者你是否嘗試使用所有可用的平臺同時? – jprice

+0

我試圖編寫可以在每個平臺上工作的代碼。 –

回答

0

您只需要編寫一次。這就是OpenCL的重點;寫一次,在任何地方運行!

這些庫是供應商實施OpenCL的。例如。如果您有Amd卡,請下載AMD圖書館,Nvidia卡,下載Nvidia的圖書館等...

+0

這是否意味着我已經將所有運行時與我的產品一起發貨,並根據主機功能選擇在運行時使用哪個運行時? –