如何使用GPU跑普通的Python程式?

時間 2021-07-02 02:11:24

1樓:

只要在你的函式上加個numba decorator,可以自動幫你把python裡的函式JIT編譯自動auto vectorization到GPU上面。

@vectorize

(['int64(int64, int64)'

],target

='cuda'

)def

add_ufunc_gpu(x

,y):returnx+

y然後直接跑x=

np.arange

(1000)y

=xz=

add_ufunc_gpu(x

,y)即可。只要你注意三個大前提:

parameter 和 return value的type寫對;

numba正確import進來,cuda正確安裝;

compiling target選擇「cuda」。

2樓:帶蘿蔔

題注說的普通的Python程式有多普通?

如果是常規的陣列運算的話,可以直接把python程式裡面的陣列替換成深度學習框架裡面的tensor就可以了,像這樣:

使用Pytorch實現Kmeans聚類 - 帶蘿蔔的文章 - 知乎 https://

zhuanlan /p/65331686

3樓:你您

簡單得把numpy換成cupy就能跑gpu了。前提是裝好cuda和cupy。直接調cuda的話還有pycuda。

不過感覺沒有cupy簡單。cupy的API和numpy的API基本上一一對應

4樓:

gpu只能處理簡單重複的工作。大量資料處理工作可以交給gpu,少量的資料其優點反而不及轉儲到gpu的損耗。

nvidia有cuda架構提供了直接操作gpu的可能性。可以看一下pycuda~

pytorch如何使用多塊gpu

東方碩 自己寫的多卡訓練框架,可多機多卡,供參考 artintel2017 torch multi gpu原答案 最近剛花幾天時間搞了下torch.distributed,寫了個demo測試一下,發現確實如官方文件所說,比DataParallel快,而且是快很多。4卡用DataParallel,2....

使用matlab裡的gpu計算8000階以上的矩陣乘法,gather時會報錯?

應該是由於計算時間過長。解釋可以看這裡 簡單說就是你的 GPU 需要負責渲染你的顯示和進行 CUDA 任務時,當 CUDA 任務執行超過乙個時限,為了不宕機所以會自動終斷計算。你可以考慮把操作分開來,比如分塊矩陣乘法,或者修改 TDR 引數。windows 的話,你可以通過下邊登錄檔鍵值控制 修改完...

蛋白質的MD模擬在超算上和GPU上跑,效率有多大差別呢?

破風 GPU作用是協同處理,CPU是主處理器,協調處理器和主處理器缺少一樣都會大大降低效能,打個比方,CPU就像大學生,可以同時算加減乘除,協處理器像是小學生,只能在同一時間進行單一操作,比只能算加或者乘。大學生 CPU 可以通過分配的方法,把乙個問題中涉及的大量加減乘除拆開分配給小學生 GPU或者...