12

我在 Visual Studio 2012 解决方案中有几个 C++ 项目。这些项目包含大量文件,我使用/MP来加速代码生成。

我想知道是否有办法以类似的方式加速 NVCC。在包含 CUDA 内核的项目中使用 /MP 对编译时间没有任何好处,而且我只能看到一个内核在工作。

所以问题是:如何使用我的多核 PC 来加速 CUDA 编译?

4

2 回答 2

4

从 CUDA 5.5 开始,nvcc没有 MSVC 的 /MP 等效项,因此 .cu 文件的任何构建并行性都需要来自调用 NVCC 的构建工具。

如果您可以使用 GNU Make 构建(例如在 Cygwin 下或在 Linux/Unix/OS X 系统上),您可以使用它的并行构建功能,使用-j选项,这会导致它并行处理多个配方。

这是一篇不错的博客文章,它列举了 Windows 上的多个并行构建选项,其中一些可能适用于 NVCC。

对于支持 MSVC 和 NVCC 的真正分布式/并行构建系统,您可以尝试Incredibuild

于 2013-07-16T13:12:43.290 回答
3

您可以使用IncrediBuild

但是可能会出现这个错误:
致命错误C1041:无法打开程序数据库'...';如果多个 CL.EXE 写入同一个 .PDB 文件,请使用 /FS

为避免这种情况,请设置项目 -> 属性 -> CUDA C/C++ -> 主机 -> 附加编译器选项 -> /FS。

有关更多信息,请阅读此博客

于 2015-12-25T21:05:30.407 回答