我可以调用用c ++用丘比特代码编写的cuda代码吗?

时间:2019-08-16 03:21:07

标签: python c++ cupy

如果我有一个简单的3D点采样形式

s = [[x1, y1, z1], [x2, y2, z2],[x3, y3, z3],[x4, y4, z4],.....]

在Cupy中实现的体素函数中,我可以从C ++代码中调用该函数吗?我们有C ++代码调用tensorflow图并在车中执行。我可以将cupy代码编译为c ++二进制文件并从c ++代码中调用它吗?

1 个答案:

答案 0 :(得分:2)

我对CuPy不熟悉,但是请看一下Python C API(https://docs.python.org/3/c-api/)。 这使您可以在C和C ++中运行Python函数。

这里有一个示例,在 pythonfile.py 中运行名为 functionname 的函数(未经测试,但应该没问题)。

PyObject* pyModuleStr = PyString_FromString((char*)"pythonfile");
PyObject* pyModule = PyImport_Import(pyModuleStr);
PyObject* pyFunction = PyObject_GetAttrString(pyModule,(char*)"functionname");
PyObject_CallObject(pyFunction);

还可以提取函数的返回值,并添加参数。

希望这会有所帮助!

8)

EDIT : 这是一个可能有用的StackOverflow帖子(Calling a python method from C/C++, and extracting its return value)。