我正在Core i5上运行Windows 7 Pro x64,NVIDIA 3100m与CUDA兼容。
我已经尝试从NVIDIA安装32位和64位CUDA工具包,不幸的是从任何一个我不能编译任何东西; nvcc说“找不到支持的cl版本,只支持MSVC 8.0和MSVC 9.0”。
我有通过Windows 7 SDK(两个拱门编译器版本15.00.30729.01)安装的x86和x86-64编译器。 两个编译器都正常运行; 我已经使用它们构build并testing了C和C ++代码。 我已经尝试从设置为32位和64位编译的命令行运行nvcc,并使用-ccbin命令行选项将nvcc指向Visual C ++安装目录。
什么是正确的方式来处理这个设置? 有什么办法可以使nvcc更加详细地说明发生了什么事情? -v标志不是很有帮助。 理想情况下,可以通过某种方式显示它正在查找的内容与期望的内容。 如果我安装Visual C ++ Express,会更好吗? 或者只是VC ++的商业版本支持与CUDA一起使用?
它看起来像你没有安装Visual Studio 2005或2008,但你的编译器版本号表示它是MSVC 9.0。 让所有的工作最简单的方法是安装Visual Studiso,我相信Express将会工作。
另外,你可能想在Nvidia论坛上看看这个话题
包括这一行
compiler-bindir = C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ VC \ bin
在
C:\ CUDA \ bin64适用\ nvcc.profile
使用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的新版本(可悲的不兼容)
我试图让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
我在命令行中首先尝试了适当的标志。
这个链接是非常有帮助的