linux - 如何在 Linux Debian 中使用 Cuda-Aware MPI 安装 Open MPI

标签 linux cuda mpi openmpi

我正在我的 Linux Debian 上安装带有 CUDA v7.5 的 Open MPI v1.8.8。 我已经测试了 CUDA 并且它可以工作,测试了 OpenMPI 并且它也可以工作。但是当我尝试将它们组合成一个程序时,我遇到了一个错误:找不到 cuda.h 文件。这是我的场景:

我的程序源代码包括这些.h文件

include "cuda.h" include "mpi.h"

我运行命令: mpicc <filePath> -o test And error appear: cuda.h: 没有那个文件或目录 #include "cuda.h"`

omp_info 给我:mca:mpi:base:param:mpi_built_with_cuda_support:value:false

我已经用谷歌搜索了,我遵循了一些我发现的方法: ./configure --with-cuda ./configure --with-cuda=/usr/local/cuda-7.5 (来源链接:http://mirror.its.dal.ca/openmpi/faq/?category=buildcuda) 在那之后,我重新制作所有,重新制作安装 Open Mpi。我运行:mpicc 或 mpirun,编译器给我错误:mpirun error mca: base: component find: unable to open /usr/local/lib/openmpi/mca_mpool_sm

我设置了软链接(soft link):ln -s /usr/local/cuda/include /usr/include (在链接中描述:Building CUDA-aware openMPI on Ubuntu 12.04 cannot find cuda.h)。 但它不能解决我的问题。

有人安装成功吗?请帮助我或分享您的经验。 谢谢。

最佳答案

我认为您将安装问题与不正确的编译器选项混淆了。在使用 mpi 包装的主机编译器编译和链接主机代码时,有必要明确指定 CUDA 的包含路径、库路径和库。

类似于:

mpicc -I/usr/local/cuda-7.5/include -L/usr/local/cuda-7.5/lib -o test <filePath> -lcuda

将是构建调用 cuda 驱动程序 API 的简单 MPI 程序的正常方法。您需要为使用运行时 API 的设备代码和主机代码添加 nvcc 编译。

在您的 MPI 风格中明显缺乏 CUDA 支持是一个单独的问题,您可能应该在另一个论坛(例如您使用的 MPI 风格的用户邮件列表)中讨论这个问题。

关于linux - 如何在 Linux Debian 中使用 Cuda-Aware MPI 安装 Open MPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32856863/

相关文章:

linux - 如何从初始 PID 命名空间以外的 PID 命名空间和初始 PID 命名空间调用 reboot()?

regex - 使用 sed 向后删除特定空格

c - MPI_Scatter() 错误

java - hibernate 搜索 Massindexer 错误

c - 如何让gcc编译器知道某个文件在哪里

tensorflow - 使用旧版本的 CUDA 和 cuDNN 安装 GPU 版本的 Tensorflow

linux - CUDA_ERROR_INVALID_DEVICE 在 MATLAB 中使用 gpuDevice()

cuda - 为什么基于 GPU 的算法执行速度更快

python - 如何在mpi4py中设置进程数

fortran - MPI 状态 FORTRAN