Visual Studio中的Cuda并行代码生成
Cuda parallel code generation in Visual Studio
我在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。
欲了解更多信息,请访问此博客。
相关文章:
- LLVM |如何实现逻辑非操作的 IR 代码生成
- C++基于输入参数的动态代码生成
- C++使用代码生成错误
- C++代码生成核心文件,就像 gdb >> gcore 一样
- 卤化物:X86汇编代码生成
- 如何将 MATLAB 图像处理库内置函数转换为 MATLAB 编码器代码生成不支持的 C++?
- 为什么我的代码为同一代码生成不同的值
- 我应该担心动态代码生成与用C++编写的其他模块不匹配吗?
- 企业架构师 - 单独的代码生成标头和实现
- C++ 代码生成和模板专用化
- IBM Rhapsody c++ 代码生成 - 为什么总是在状态图周围放置一个活动状态
- 如何从 c++ 代码生成 arm64-v8a 64 位共享对象?
- 在语法文件上运行C 的ANTL4解析器显示错误33:缺少代码生成模板非局部trrefheader
- 使用LLVM在代码生成期间,更喜欢LLVM :: StringMap或STD :: MAP
- 如何根据模板参数制作代码生成
- R-使用RCPP时如何并行C 代码
- 如何在C++中使用以下代码生成秒表/倒计时
- 为什么 C++ 和 Python 中的相同代码生成不同的输出?
- 获取 llvm::MCJIT 代码生成后的函数大小
- Visual Studio中的Cuda并行代码生成