[問題] Numpy串接外部dll
各位大大好
最近因為有需要做大量的矩陣運算
且需要使用大量的迴圈
所以numpy會非常的慢
也因此選擇使用c++寫一個外部的dll然後導入python
但是
在過程中發現使用64bits與32bits的DLL在速度上有非常大的差異
32bits大概比64bits的DLL快5倍
但原本python的開發環境是64bits
有點不想要換成32bits
而且這本身感覺就有點奇怪
不知道是不是我哪裡弄錯了呢?
希望各位大大救救我(跪
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.50.59
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1539535220.A.3D5.html
推
10/15 07:57,
6年前
, 1F
10/15 07:57, 1F
是沒有錯 numpy本來就用c加速
但是我的情形是需要做大量的單一矩陣對單一矩陣的運算
所以會用到很多迴圈而且沒有辦法vectorize
所以才會想說用外部dll來加速
※ 編輯: swampni (180.176.50.59), 10/15/2018 11:56:38
推
10/15 15:12,
6年前
, 2F
10/15 15:12, 2F
→
10/15 15:14,
6年前
, 3F
10/15 15:14, 3F
我要算的東西有點像是一張rgb圖
然後我要算每一個PIXEL對另外一個PIXEL的關係
但這個關係的函式很複雜
沒有辦法利用vectorize的方式一次大量算
所以才會想說能不能用外部DLL的方式來加速
實作上也是證明可以
那關於我的問題我後來發現好像是我32bits跟64bits編譯用的編譯器不同的關係
32bits用g++
64bits用cl
後來用cl編了一次32bits的也是很慢
但是最糟糕的就是我怎樣都沒辦法用g++編出64bits的DLL
載了好幾個不同版本的mingw64都不行
所以雖然在這裡問好像怪怪的
但有大大可以指點一下要怎麼用g++編譯出64bits的DLL嗎?
另外用cl跟g++在執行速度上會有如此巨大的差異又可能是甚麼原因呢?
也謝謝上面兩位願意給我意見^ ^
※ 編輯: swampni (180.176.50.59), 10/16/2018 00:30:31
→
10/16 13:35,
6年前
, 4F
10/16 13:35, 4F
→
10/16 13:37,
6年前
, 5F
10/16 13:37, 5F
推
10/22 21:36,
6年前
, 6F
10/22 21:36, 6F
Python 近期熱門文章
PTT數位生活區 即時熱門文章
6
25