2017-08-10 187 views
0

我想在GPU上並行化一個python循環,但我不想使用pyCUDA,因爲我需要自己做很多事情。我正在尋找OpenACC之類的東西,就像C++中的python一樣來實現簡單的並行化,但似乎沒有這樣的事情。所以我想在C++中使用OpenACC,然後系統調用一個pthon腳本,如下面的代碼所示。這會工作嗎?還是有沒有簡單的選擇,而不使用pyCUDA?我可以使用OpenACC來系統調用python函數嗎?

void foo(float*parameters){ 

%%system call python function with parameters as input 

} 

#pragma acc parallel loop 
for (int i=0; i<n; ++i) { 
    foo(parameters[i]); 
    //call on the device 
} 

回答

1

不,這不行。您無法從設備執行主機系統調用。

對於OpenACC設備代碼,只能調用具有OpenACC「例程」指令或CUDA「設備」例程的例程。

相關問題