我正在尝试开始使用CUDA和Windows 7 SP 1上的64位编译器。最终,我希望编译可与Matlab(R2014a)一起使用的mex文件。我有一台较旧的计算机,该计算机已成功配置为使用较旧版本的CUDA和VS C ++ Express来执行此操作,但似乎无法使其与较新的软件包一起使用。

我已经安装了CUDA 6.0和Visual Studio C ++ 2012 Express,网络阅读建议它们可以一起使用。我不确定是否还需要Microsoft SDK,这对于获得64位编译器是必不可少的。如今,这些似乎已包含在VS中。

我在'C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ bin \ x86_amd64'中创建了一个vcvars64.bat。我还制作了整个目录的副本,重命名为“ C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ bin \ amd64”。这些步骤以前是旧版本所必需的-不确定是否仍然需要。

但是,当我尝试编译时,出现以下错误:


  nvcc:警告:“ compute_10”和“ sm_10”体系结构是
  不推荐使用,并且可能在将来的版本中删除。 nvcc:致命
  错误:nvcc找不到支持的Microsoft Visual版本
  工作室。仅支持2008、2010和2012版本
  发现编译错误:正在终止。


我正在编译如下:

nvcc --cuda myfile.cu-输出文件myfile.cpp

之后,我将在Matlab中调用mex来构建mex文件。但是我无法走过第一步。有人知道nvcc如何确定在哪里寻找编译器,以及如何使它识别受支持的编译器吗?请注意,“ C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ bin \ amd64 \ cl.exe”位于系统路径上。

最佳答案

尝试从命令行同时运行vcvars64.bat和matlab。这使得Matlab和nvcc知道正确的VS环境变量。

关于c++ - 在CUDA 6和VS 2012 Express中使用nvcc,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24085823/

10-10 20:53