Visual Studio中的Cuda并行代码生成

Cuda parallel code generation in Visual Studio

本文关键字:并行 代码生成 Cuda 中的 Studio Visual      更新时间:2023-10-16

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

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

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

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

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

这是一篇很好的博客文章,列举了Windows上的多个并行构建选项,其中一些可能与NVCC一起使用。

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

您可以使用IncrediBuild

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

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

欲了解更多信息,请访问此博客。