让 Pycuda 在 2 gpus 上使用 Mpi4py [关闭]
Posted
技术标签:
【中文标题】让 Pycuda 在 2 gpus 上使用 Mpi4py [关闭]【英文标题】:Getting Pycuda to work with Mpi4py on 2 gpus [closed] 【发布时间】:2011-10-06 10:50:55 【问题描述】:我正在尝试跨两个 gpus 运行 pycuda 程序。我读过 Talonmies 的一篇很棒的文章,解释了你如何使用线程库来做这件事,文章还提到 mpi4py 可以做到这一点。
当我用 pycuda 运行 mpi4py 时,程序给出了错误: self.ctx = driver.Device(gpuid).max_context pycuda._driver.logicError: cuDeviceGet failed: not initialized
这可能是因为我试图同时初始化两个 gpu 设备。有没有人有一个非常简短的例子来说明我们如何让 2 gpus 与 mpi4py 一起工作?
【问题讨论】:
“同时初始化两个gpu设备”是什么意思?使用 mpi4py,多 GPU 模型非常简单:让通信器中的每个等级选择一个唯一的 GPU 并在该卡上建立一个上下文。您可以让一个等级确定通信器的每个成员的 GPU 并广播,或者只从进程等级中获取 GPU ID。你能发布失败的代码吗? +1 - 请问有人对此有什么建议吗!? maldun.lima-city.de/introduction_to_python/… - 除了代码不成功... 【参考方案1】:对于遇到这个问题的任何人,here 是一个有效的 mpi4py+pycuda 示例。
【讨论】:
以上是关于让 Pycuda 在 2 gpus 上使用 Mpi4py [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
PyCUDA:GPUArray.get() 返回不可访问的数组
在 Numpy 数组上使用 Pycuda 的 GPU 数组乘法
在 LSTM 网络的输入上使用 Masking 时,Keras(TensorFlow 后端)多 GPU 模型(4gpus)失败