2012-04-14 331 views
1

有人可能會告訴一般GPU並行計算工具箱使用的GPU共享內存。例如,我可以明確地使用它來同步MP單元。GPU的共享內存如何在Matlab中使用?

順便說一句。我有一個GTX 580,它有1.5GB內存,每個MultiProcessor有32個內核(每個MP有16個內核)和64Kb共享(L1)內存。

感謝

回答

1

我不知道Matlab的答案,但如果你願意在Python中工作,那麼PyCUDA是你的朋友。您直接在CUDA-C中開發內核代碼,用Python中的長字符串編寫。然後PyCUDA允許你編譯這些,設置設備變量,將數據發送到設備或從設備發送數據,然後通過啓動配置來執行你的內核來控制線程/塊等。爲了使用共享成員,你只需要使用關鍵字shared來聲明變量在你的CUDA-C代碼中作爲Python字符串。

我寫了一些圖像處理代碼,其中is linked here。您可以將其解壓縮並查看將CUDA-C源代碼模塊編寫爲Python字符串的方式。使用NumPy和SciPy,Python的其他用戶體驗與Matlab非常相似 - 只是更好。如果你不是在Matlab中完成這個項目,請考慮將其切換到PyCUDA。

+0

此外,我只是認爲這是一個有用的一邊,太大了評論。由於我沒有回答你的Matlab問題,我完全理解你是否希望進行投票或接受這個答案。 – ely 2012-04-14 03:18:11

+0

我第一次閱讀一些Python代碼......讓人印象深刻,它是多麼容易閱讀。因爲我有空閒時間,所以我會試一試。謝謝 – Maiss 2012-04-14 04:50:04

1

Maiss,

我想幫腔的M碼的GPU - 我發現外套是訪問GPU一個有用的選擇。 Jacket默認使用共享內存來完成任務,如果你想自己控制事情,Jacket會使用SDK。如果你有現金支持,我個人推薦一些Tesla GPU,因爲它們的長期可靠性(特別是對於長時間運行的科學應用)。

+0

感謝Vish,明年我可能會拿到一個。只需要首先說服我的主管! – Maiss 2012-04-17 03:46:15

+1

是的,GTX顯卡非常適合遊戲;)我自己有一個。但是,當我用長期運行的科學計算應用程序燒燬GTX後,我瞭解到特斯拉的優點。再次,我的個人經驗 - 其他人可能會有不同的意見。 – Vish 2012-04-17 12:34:15