【问题标题】:MPI+CUDA mixed programming - Driver errorMPI+CUDA 混合编程 - 驱动程序错误
【发布时间】:2014-01-08 19:53:00
【问题描述】:

我正在使用 MPI+CUDA 混合模式为 GPU 集群编程以进行矩阵乘法。当我通过 MPI 和 CUDA 将乘法运算卸载到 GPU 时,它会在运行时给出错误消息:

致命:插入 nvidia 时出错 (/lib/modules/3.2.0-23-generic-pae/kernel/drivers/video/nvidia.ko):没有这样的设备

MPI 用于传输数据块,然后在接收到数据后,调用通用 C 函数来触发 CUDA 内核。 测试设置有 3 台机器,每台机器都有一个 GPU。 我测试了一个仅限 CUDA 的本地版本。我没有收到任何错误消息,但算法的答案是错误的(即使是小的简单算法)。

这个错误的原因是什么? 请注意,这仅在我尝试将 MPI 与 CUDA 一起使用时。仅 CUDA 版本运行良好。提前致谢。

【问题讨论】:

  • 看起来最常见的错误原因是设备已经由 nouveau 驱动程序控制。但它不应该与 MPI 相关......
  • MPI 通常意味着访问集群中的其他机器,除了启动作业的机器。如果这些其他机器有配置问题,则可能会出现此问题或许多其他消息中的任何一个。我认为这个问题根本不足以提出任何合理的建议,但也许其他人会有建议。例如,了解实际的 MPI 启动命令、正在访问的节点数量以及此错误消息是来自本地还是从 MPI 报告回来将是有益的。
  • 另外,什么是机器配置(GPU/节点数),如果在 MPI 机器文件中仅指定本地机器,是否会出现问题。在我看来,这是一个模糊的问题。
  • 如果太含糊,我很抱歉,因为我仍在测试我对混合模式编程的了解非常有限。我已根据您要求的信息更新了问题。
  • 能否成功运行非CUDA MPI代码?通常的开发顺序可能是先让代码在没有 MPI 的情况下正常运行。然后添加 MPI,但在本地计算机上启动单个等级。完成后,添加远程机器。

标签: cuda mpi nvidia


【解决方案1】:

这些错误是由于 Nouveau 控制的是 GPU,而不是 NVIDIA 驱动程序造成的。因此,在安装 NVIDIA 驱动和 CUDA 工具包之前,应该将 nouveau 列入黑名单。

sudo nano /etc/modprobe.d/blacklist.conf

在文件末尾插入nouveau

如果已经安装了 NVIDIA 驱动,则重新安装 NVIDIA 驱动。

【讨论】:

    猜你喜欢
    • 2016-01-12
    • 2012-10-20
    • 2020-05-24
    • 1970-01-01
    • 2012-06-07
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    相关资源
    最近更新 更多