在制作 CUDA 5.0 示例时遇到 Open MPI 相关问题 (Mac OS X ML)

Posted

技术标签:

【中文标题】在制作 CUDA 5.0 示例时遇到 Open MPI 相关问题 (Mac OS X ML)【英文标题】:Having Open MPI related issues while making CUDA 5.0 samples (Mac OS X ML) 【发布时间】:2012-10-20 20:53:54 【问题描述】:

当我尝试制作 CUDA 5.0 样本时,会出现错误:

Makefile:79: * MPI 未找到,未构建 simpleMPI.. 停止。

我已尝试下载并构建最新版本的 Open MPI,参考 Open MPI "FAQ / Platforms / OS X / 6。如何不使用 OS X 捆绑的 Open MPI ?”页面并没有解决错误。

make -j 4 2>&1 | tee make.out
[ lots of output ]
make[2]: *** [mpi/man/man3/MPI_Comm_disconnect.3] Error 127
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

我现在真的很困惑,我不知道该怎么办。

【问题讨论】:

如果使用单个进程在 simpleMPI 目录中运行 make 会发生什么? 对于 CUDA 5 示例构建,如果您不关心 simpleMPI 示例而只想构建其余示例,请尝试使用 make -k @talonmies cd /Developer/NVIDIA/CUDA-5.0/samples/0_Simple/simpleMPI/ make Makefile:79: *** MPI not found, not building simpleMPI.. Stop. @RobertCrovella,好的,我现在就试试 我不熟悉为 mac 构建 openMPI,但是 make clean 命令可用的情况并不少见,它应该删除由 make 命令构建的任何文件。 make uninstall 通常只会在成功的 make 和 make install 之后使用。由于您从未成功制作过 openMPI,因此我假设您没有进行 make 安装。 make clean,然后删除源树(甚至只是删除源树,因为可能所有构建的对象都在该树下。) 【参考方案1】:

正如 cmets 中提到的,simpleMPI 示例可以通过使用 make -k 有效地绕过,或者完全删除 simpleMPI 子目录,或者重命名该目录中的 Makefile。但是,如果希望在 mac 上实际安装 MPI 版本以便能够构建 simpleMPI 示例,这些说明应该会有所帮助:

这里的问题是您没有安装 MPI 编译器。您需要为 Mac OSX 安装 MPICC 编译器。这些说明将使用 MPICH2 版本的 MPI,一般可用here

Direct link to MPICH2 1.4 download

您可以关注these instructions 为 Mac OSX 构建和配置 MPICH2。在配置步骤中,还要添加--disable-f77和--disable-fc:

./configure --enable-shared --enable-sharedlibs=osx-gcc --enable-fast=all --prefix=/usr/local/mpich2-optimized --disable-f77 --disable-fc

然后按照指南说明进行制作,然后进行安装

现在创建指向 MPICC 的符号链接,以便您轻松构建 CUDA MPI

sudo ln -s /usr/local/mpich2-optimized/mpicxx /usr/bin/mpicxx 
sudo ln -s /usr/local/mpich2-optimized/mpic++ /usr/bin/mpic++

另外,另一种选择是添加

/usr/local/mpich2-optimized/bin 

到你的路。

现在在制作 simpleMPI 时,它会正确构建。

【讨论】:

【参考方案2】:

或者只是使用MacPorts 安装。命令是

sudo port install mpich

这也将使将来更容易更新,因为它们托管的是最新版本。

【讨论】:

【参考方案3】:

或者只是使用Homebrew 安装。命令是

brew install mpich2

通过 homebrew 安装 mpich 后,我可以编译所有 CUDA 示例。

【讨论】:

谢谢大家!由于某些原因,我的 CUDA 开发暂时冻结了!

以上是关于在制作 CUDA 5.0 示例时遇到 Open MPI 相关问题 (Mac OS X ML)的主要内容,如果未能解决你的问题,请参考以下文章

CUDA-capability和CUDA版本:兼容?

由于多个重新定义错误,CUDA 样本无法编译

在 Windows 7 中使用 Open MPI 和 CUDA

我正在尝试运行 CUDA 示例,但我在 Ubuntu 16.04 LTS 上遇到了 openGL (libGLEW.a) 问题

如何使用 ffmpeg overlay_cuda 过滤器制作 SBS 视频?

安装 cuda 8.0 后运行 CUDA 示例失败