CUDA 11.5的bandwidth_test示例使用Visual Studio 2019编译失败
CUDA 11.5编译bandwidthTest示例报错解决方案
核心原因说明
deviceQuery示例为纯C++实现,仅调用CUDA运行时API,无需nvcc编译CUDA核函数,因此可正常编译运行。bandwidthTest包含.cu源码,需要调用nvcc编译,因此会触发工具链相关错误。
解决方案
- 优先处理目录权限问题:将整个
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.5目录复制到当前用户的可读写目录(例如C:\Users\用户名\Documents)后重新打开工程编译,避免系统级目录无写入权限导致编译临时文件生成失败,这是无额外报错直接返回码1的最常见诱因。 - 裁剪CUDA目标架构:打开工程属性→配置属性→CUDA C/C++→设备,将「代码生成」配置项中与当前显卡算力不匹配的架构移除,仅保留对应算力的配置(例如RTX 30系显卡仅保留
compute_86,sm_86),避免旧架构编译兼容性问题。 - 校验工具链兼容性:确认当前工程使用的MSVC工具集为v142(VS2019配套工具集),CUDA 11.5不支持VS2022的v143工具集,若工具集版本不匹配可在工程属性→常规→平台工具集中切换为v142。
- 查看详细报错信息:打开VS菜单→工具→选项→项目和解决方案→生成并运行,将「MSBuild项目生成输出详细程度」调整为「详细」,重新编译后即可在输出窗口查看nvcc返回的具体错误信息,方便定位特殊问题。
内容的提问来源于stack exchange,提问作者Dusko Murtovski
相关产品推荐
相关产品推荐

