看板 Python 關於我們 聯絡資訊
環境: 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特別處裡吧? 以上 還請各位大大指教>.< -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.230.27 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1516088514.A.11B.html
uranusjr: ctypes 和 CFFI 都只能針對 C 喔, C++ 雖然理論上可以但 01/16 16:36
uranusjr: 會處理 name mangling 到瘋掉; 看你的狀況或許可以考慮 01/16 16:37
uranusjr: Boost-Python 01/16 16:37
johnjohnlin: 樓上說的 ctypes 問題,用 extern "C" 包可以解決 01/16 21:46
johnjohnlin: 至於 numpy,C API 的文件很少,要查一陣子 01/16 21:46
johnjohnlin: 光是 linker, header 要用哪些就很難找了 01/16 21:47
uranusjr: 如果是已有的 C++ lib 這樣做就會需要維護兩份 API 定義 01/16 23:33
uranusjr: (extern C 一個, ctypes 那邊一個) 會稍微麻煩, 如果可 01/16 23:33
uranusjr: 以這樣做的話 CFFI 只要一份定義維護起來會方便一點 01/16 23:34
hardman1110: 感謝各位解惑 我會嘗試看看cffi 希望直接吃numpy最好 01/17 17:25
peiga: Pytorch tensor 很像 numpy 而且支持 cuda 加速 01/19 21:50