我可以使用OpenACC来系统调用python函数吗?

问题描述:

我想在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 
} 

不,这不行。您无法从设备执行主机系统调用。

对于OpenACC设备代码,只能调用具有OpenACC“例程”指令或CUDA“设备”例程的例程。