我在Linux Debian上安装带有CUDA v7.5的Open MPI v1.8.8。
我已经测试了CUDA,并且可以工作,还测试了OpenMPI,它也可以工作。 但是,当我尝试将它们组合成一个程序时,遇到一个错误:找不到cuda.h文件。 这是我的情况:
我的程序源代码包括这些.h文件
include"cuda.h"
include"mpi.h"
我运行命令:
mpicc -o test
And error appear: cuda.h:没有这样的文件或目录
#include" cuda.h"`
omp_info给我:mca:mpi:base:param:mpi_built_with_cuda_support:value:false
我已经用google搜索过,并且遵循了一些发现的方法:
./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
我设置了软链接:ln -s /usr/local/cuda/include /usr/include(在链接中描述:在Ubuntu 12.04上构建支持CUDA的openMPI找不到cuda.h)。
但这无法解决我的问题。
有人成功安装了吗? 请帮助我或分享您的经验。
谢谢。
我认为您将安装问题与错误的编译器选项混为一谈。 在使用mpi包装的主机编译器编译和链接主机代码时,有必要明确指定CUDA的包含路径,库路径和库。
就像是:
mpicc -I/usr/local/cuda-7.5/include -L/usr/local/cuda-7.5/lib -o test -lcuda
将是构建简单的MPI程序(调用cuda驱动程序API)的正常方法。 您将需要为使用运行时API的设备代码和主机代码添加nvcc编译。
MPI风格中明显缺乏CUDA支持是一个单独的问题,您可能应该在另一个论坛中讨论(例如,您使用的MPI风格的用户邮件列表)。
你让我开心。 现在,我可以通过mpicc / mpirun编译并运行我的Cuda感知MPI代码。 再次感谢。