我可以使用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“设备”例程的例程。