在Ubuntu12.04上构建支持CUDA的openMPI无法找到CUDA.h

在Ubuntu12.04上构建支持CUDA的openMPI无法找到CUDA.h,ubuntu,cuda,mpi,Ubuntu,Cuda,Mpi,我正在Ubuntu 12.04上构建openMPI 1.8.5,安装了CUDA 6.5,并使用默认示例进行了测试。我打算使用以下配置在单个节点上运行它: 戴尔精密T7400 双Xeon X5450 英伟达GT730/特斯拉C1060 发出的配置命令为 $ ./configure --prefix=/usr --with-cuda=/usr/local/cuda 在生成的config.log中,很明显配置脚本无法在/usr/loca/cuda/include中找到cuda.h和cuda_

我正在Ubuntu 12.04上构建openMPI 1.8.5,安装了CUDA 6.5,并使用默认示例进行了测试。我打算使用以下配置在单个节点上运行它:

戴尔精密T7400
双Xeon X5450
英伟达GT730/特斯拉C1060

发出的配置命令为

    $ ./configure --prefix=/usr --with-cuda=/usr/local/cuda
在生成的config.log中,很明显配置脚本无法在/usr/loca/cuda/include中找到cuda.h和cuda_runtime_api.h,它们确实存在

对于cuda.h:

    configure:73774: checking cuda.h usability
    configure:73774: gcc -std=gnu99 -c -O3 -DNDEBUG    conftest.c >&5
    conftest.c:645:18: fatal error: cuda.h: No such file or directory
    compilation terminated.
    configure:73774: $? = 1
    configure: failed program was:
    | /* confdefs.h */
对于cuda_运行时_api.h:

    configure:73857: checking cuda_runtime_api.h presence
    configure:73857: gcc -E   conftest.c
    conftest.c:612:30: fatal error: cuda_runtime_api.h: No such file or directory
    compilation terminated.
    configure:73857: $? = 1
    configure: failed program was:
    | /* confdefs.h */
我试图更改版本特定目录的路径,即/usr/loca/cuda-6.5/cuda,但抛出了相同的错误

我试图继续安装,ompi_信息显示

    mca:mpi:base:param:mpi_built_with_cuda_support:value:false

有没有人有类似的经验可以帮助我?非常感谢

好的,我想我解决了这个问题。conftest.c似乎在/usr/include中寻找cuda.h,而不是假定的/usr/local/cuda/include。一旦我创建了cuda.h和cuda_runtime_api.h的软链接,问题就解决了

我不确定这是不是你的问题来源,没有找到这些头文件,但CUDA意识的MPI。但是,我建议您的硬件配置不是进行此类调查的良好起点。谢谢@Robert。然而,我并没有试图利用GPUDirect让两个gpu同时解决我的问题。我只是想让它们中的任何一个通过openMPI与2个CPU一起工作。我是不是有一个错误的期望?只有当您在一个GPU上运行多个MPI列组并同时使用时,CUDA感知MPI在单个GPU的情况下可能会有一些好处。除此之外,它在单GPU/单节点情况下没有任何好处。鉴于CUDA MPS需要cc3.5或更高的GPU,它肯定不能与C1060配合使用,也可能不能与GT730配合使用,具体取决于您使用的GT730。我认为这个主意不明智。当然,欢迎您尝试任何您想做的事情。如果您只使用cuda执行以下操作会发生什么:
/configure--prefix=/usr--?另外,configure脚本中的
gcc
compile命令似乎没有向编译传递任何include目录,这意味着
cuda.h
文件必须以完整路径包含在
confdefs
中。如果在
失败程序之后显示完整输出可能会有所帮助:
消息。这些是有用的信息,@RobertCrovella。我一直在32核的机器上玩openMPI,它就像魔术一样,让我想到添加单核GPU CUDA也会像微风一样
/configure--prefix=/usr--with cuda
是我的第一次尝试,它给出了相同的输出。这是输出