1

几天前,我尝试编译并制作 CUDA Toolkit 5.0 示例以验证安装。但是,在制作过程中,制作 simpleMPI 样本时出错。在不详细说明的情况下,我假设我需要将 Open MPI 安装到我的主机上。我已经下载了当时的最新版本,例如 openmpi-1.6.2。然后根据我运行的Open MPI FAQ page

    ./configure --prefix=/usr/local
    make all install

但不幸的是,在 make 命令期间出现了错误。我决定深入并弄清楚,Mac OS X 有一个内置的 Open MPI 包。我为 Mac OS X 用户找到了另一个常见问题解答页面,并尝试以这种方式在 /opt/openmpi 文件夹中安装 Open MPI

    ./configure --prefix=/opt/openmpi 2>&1 | tee config.out
    shell$ make -j 4 2>&1 | tee make.out`

又没有运气了。使失败。在那一刻,我明白我可以跳过 simpleMPI 示例,我就这样做了!

再一次,在不详细说明的情况下,我决定从不必要的文件中清理我的系统,并做了愚蠢的事情make unistall而不是make clean.

现在,nvcc编译器似乎坏了,我需要重新安装或修复内置的 Open MPI 包。

问题是我怎样才能做到这一点?我也有 TimeMachine 备份。

PS此处描述了 simpleMPI CUDA 示例的问题。如何制作 simpleMPI 示例构建已经有一个明确的答案。

更新 [2012 年 11 月 3 日 22:09 UTC]

成功安装 MPICH2 后没有运气。添加到 PATH 的正确值:

    vim ~/.bash_profile
    export MPI_DIR=/usr/local/Cellar/mpich2/1.5/
    export PATH=$MPI_DIR/bin:/usr/local/cuda/bin:/Developer/NVIDIA/CUDA-5.0/bin:$PATH
    export LD_LIBRARY_PATH=$MPI_DIR/lib:$LD_LIBRARY_PATH
    export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH
    export EDITOR=vim

通过终端调用运行 NSight nsight。这很重要,因为我试图将 NSight 锁定到 Docks 中。但是从 Dock NSight 运行时找不到 GPU 设备。所以每次我使用终端。

我尝试创建新的 CUDA Runtime C/C++ 项目并简单地运行它。但是 NSight make 每次都以同样的方式失败。这里是:

    nvcc -G -g -O0   "src/Simple CUDA RT Proj.o" "../src/Simple CUDA RT Proj.cu"
    i686-apple-darwin11-llvm-g++-4.2: src/Simple CUDA RT Proj.o: No such file or directory
    make: *** [src/Simple CUDA RT Proj.o] Error 1

每个项目都缺少相同的问题主要 .o 文件。

更新 [2012 年 11 月 4 日 10:36 UTC]

我已经通过brew安装了 Fortran 编译器。并尝试使用前缀 urs/local 构建 OMPI(根据 OSX FAQ 实体)。一两个小时后,make 失败并出现错误:

    sh: usr/local/cuda/bin/echo: No such file or directory
    make[2]: *** [util/hostfile/orte_hosts.7] Error 127
    make[2]: *** Waiting for unfinished jobs....
    make[1]: *** [all-recursive] Error 1
    make: *** [all-recursive] Error 1

更新 [2012 年 11 月 5 日 13:40 UTC]

尝试使用以下参数构建 open-mpi-v1.9:

   ./configure --enable-shared --enable-sharedlibs=osx-gcc --enable-fast=all --prefix=/usr/local --with-cuda=/usr/local/cuda --with-cudalib=/usr/local/cuda/lib

现在 make 失败并出现类似错误:

   sh: usr/local/cuda/bin/mv: No such file or directory

看起来 make-script 尝试访问 cuda/bin 目录中的顶级二进制文件并且 make 失败。似乎 make-script 错误地将相对快速的系统范围调用转换为使用 cuda bin 目录的绝对路径mvecho这是不正确的配置选项还是 Open MPI 错误?

或者,也许 Open MPI 不是主要问题?也许我应该寻找别的东西?我的主要煤炭正在运行 CUDA 代码!

4

1 回答 1

0

原来问题是由文件路径中的空格引起的,类似于这个问题中的情况。

于 2012-11-07T12:01:51.253 回答