3.Pyblind11 Pytorch C++/CUDA 混合编程
BACKGROUND:由于 Python 运行效率不如 C++,所以我们希望通过 C++ 生成高效运算库(.so, .lib);通过结构适配让 Python 能够调用 C++库,从而提升运行效率。
[1] 参考博客 Python 调用 C++:原生态、Boost Python 两种方式调用,此方法相对繁琐,开发效率相对低效,不做进一步调研,有兴趣可以了解下。
[1]. REQUIRES: Pyblind11官方 tutorial、Github 源码
[2]. SAMPLE1: Pybind Tutorial Sample。
[3]. SAMPLE2: 分离 include、src、sample、python-lib 文件,从而可以用Vscode Debug D C++ 和 Python 代码,提升效率。
[1] REQUIRE: libtorch(GPU Version)、CUDA、Pybind11(build from source)。
[2] SAMPLE3: 写了一版简单 GPU(CPU) NMS,其中用到 libtorch、pybind,同时支持 Debug。