环境:
OS:win10 ubuntu16
Version: python 3.5 up
Lib: CUDA
问题描述:
需要用CUDA来加速,查了一下python call c++的方法主要有以下5种:
1. Extending Python with C or C++
2. SWIG 3. ctypes 4. Cython 5. cffi
为了可携性与实现难易度,打算选ctype
(不知道有没有错....感觉只需要加载.dll or .so很方便)
问题:
1. 要如何从python 喂numpy array给c++档案并且一样回传numpy array呢?
2. 有用到CUDA应该不需要在python code特别处里吧?
以上 还请各位大大指教>.<
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2018-01-16 16:36:00ctypes 和 CFFI 都只能针对 C 喔, C++ 虽然理论上可以但会处理 name mangling 到疯掉; 看你的状况或许可以考虑Boost-Python
楼上说的 ctypes 问题,用 extern "C" 包可以解决至于 numpy,C API 的文件很少,要查一阵子光是 linker, header 要用哪些就很难找了
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2018-01-16 23:33:00如果是已有的 C++ lib 这样做就会需要维护两份 API 定义(extern C 一个, ctypes 那边一个) 会稍微麻烦, 如果可以这样做的话 CFFI 只要一份定义维护起来会方便一点
感谢各位解惑 我会尝试看看cffi 希望直接吃numpy最好
作者:
peiga (宝蓝海孩)
2018-01-19 21:50:00Pytorch tensor 很像 numpy 而且支持 cuda 加速