2011-07-15 22 views
2

我試圖在兩個gpus上運行pycuda程序。我已經閱讀了Talonmies的一篇很好的文章,解釋瞭如何使用線程庫來實現,帖子也提到這可以通過mpi4py來實現。讓Pycuda在2 gpus上使用Mpi4py

當我運行pycuda mpi4py,程序給出了錯誤: self.ctx = driver.Device(gpuid).max_context pycuda._driver.logicError:cuDeviceGet失敗:未初始化

也許這是因爲我試圖同時使用兩個gpu設備。有沒有人有一個很簡單的例子,我們如何能得到2 gpus與mpi4py工作?

+0

「同時初始化兩個gpu設備」是什麼意思?使用mpi4py時,多GPU模型非常簡單:通信器中的每個級別都選擇一個獨特的GPU並在該卡上建立上下文。你可以有一個等級決定每個通訊器成員的GPU並廣播,或者只從過程等級中導出GPU ID。你能不能發佈不合法的代碼? – talonmies

+0

+1 - 請請任何人對此有任何建議!? – jtlz2

+0

http://maldun.lima-city.de/introduction_to_python/PyCUDA.html#mpi-and-pycuda-ref - 代碼不成功... – jtlz2

回答

1

對於任何有此機會的人,here是一個可用的mpi4py + pycuda示例。