编程语言
首页 > 编程语言> > 记录一点关于python的c++拓展的知识点

记录一点关于python的c++拓展的知识点

作者:互联网

python和c++那点事儿

这个博客我觉得写得挺好,从简单例子给我们展示了一般会用到的几种扩展方式,如torch.util.cpp_extension,.pyx,distutils.extension,还有pybind11,直接调用动态库等。
点这里看

学习一下的缘由

其实,我是在复现一篇基于faster rcnn的代码时遇到的问题,由于是基于torch0.3,所以使用了torch,util.cffi来扩展c++,但是这个却在后面的torch版本中被淘汰了,所以我就索性把这个拓展方式改成高版本的torch支持的方式了,顺便补一下这方面的知识,之前一直pull代码按傻瓜教程操作,不明觉厉。

主要改动就是在cffi中只需要给出c++操作或者层的c/cpp源码以及cuda源码,按照cffi.create_extension操作就行,再build一下。改成高版本后,需要在此c/cpp源码中增加pybind11的接口说明,然后最好将c改成cpp,也就是加入extern "C"说明。

另外pyx方式也挺简单,只需要利用cython写一个python和c的脚本引用所需要的c源码就可以,然后就可以利用distuitils包装再利用setuptools来编译就行。

标签:知识点,python,torch,cffi,c++,源码,cpp
来源: https://blog.csdn.net/m0_38043555/article/details/115659925