環境:
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 加速