2

我在带有 NVIDIA 3100m 的 Core i5 上运行 Windows 7 Pro x64,它与 CUDA 兼容。

我试过安装 NVIDIA 的 32 位和 64 位 CUDA 工具包,不幸的是,我无法编译任何东西;nvcc 说“找不到受支持的 cl 版本。仅支持 MSVC 8.0 和 MSVC 9.0”。

我通过 Windows 7 SDK 安装了 x86 和 x86-64 编译器(两个拱门的编译器版本为 15.00.30729.01)。两个编译器都运行正常;我已经使用它们构建并测试了 C 和 C++ 代码。我尝试从为 32 位和 64 位编译设置的命令 shell 运行 nvcc,并使用 nvcc 的 -ccbin 命令行选项将其指向 Visual C++ 安装目录。

处理此设置的正确方法是什么?有什么方法可以让 nvcc 更详细地了解正在发生的事情吗?-v 标志并不是很有帮助。理想情况下,可以通过某种方式使其显示所发现的内容与预期的内容。如果我安装 Visual C++ Express 会更好吗?还是只有商业版本的 VC++ 支持与 CUDA 一起使用?

4

4 回答 4

7

包括这一行

编译器-bindir = C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin

C:\CUDA\bin64\nvcc.profile

于 2010-11-11T16:57:06.863 回答
4

使用 CUDA v6.0,仍然需要旧版本的 Visual Studio(我使用的是 2010),但其他解决方案对我不起作用。

要完成这项工作,请将以下内容添加到您的 nvcc.profile(C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v6.0/bin/nvcc.profile):

CUDA_NVCC_FLAGS += --compiler-bindir = "-IE:/PROGRA~2/MICROS~2.0/VC/bin"

我还安装了 VS 2013,我需要这个参数来防止 nvcc 找到更新(遗憾的是不兼容)版本的 cl.exe

于 2014-06-12T22:51:31.503 回答
2

看起来您没有安装 Visual Studio 2005 或 2008,但您的编译器版本号表明它是 MSVC 9.0。让一切正常工作的最简单方法是安装 Visual Studiso,我相信 Express 可以工作。

此外,您可能想在Nvidia 论坛上查看此主题

于 2010-05-05T21:22:08.113 回答
1

我试图让 CUDA 6.5 与 VS 2010 express 一起工作。卸载 VS 2010 express、安装 Windows SDK 7.1 并重新安装 VS 2010 express、将 Windows SDK 7.1 设置为工具集等后,没有任何效果。最后对我有用的是将以下内容添加到 CUDA_NVCC_FLAGS:

--cl-version 2010

您可能还需要添加:

--machine 32

我首先在命令行中尝试了适当的标志。

这个链接很有帮助

于 2014-12-22T11:11:14.813 回答