c++ - 从命令行编译 CUDA 代码

标签 c++ cuda gpgpu

我正在尝试使用以下语法从命令行编译 CUDA 代码:

nvcc -c MyFile.cu -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin"

我安装了 CUDA Toolkit 5.5 版以及 Visual C++ 2010 Express。我没有完整版本的 Visual Studio。

我收到以下错误消息:

nvcc : fatal error : nvcc cannot find a supported version of Microsoft Visual Studio. Only the versions 2008, 2010, and 2012 are supported

我已经看到人们使用 CUDA Toolkit 5.0 进行 VC2010 Express 编译的先例,例如在此线程中

https://devtalk.nvidia.com/default/topic/535527/?comment=3762165

因此,我无法理解仅仅因为它是 CUDA 5.5 而不是 5.0,会有什么关键区别。是 VC Express 还是 VC Professional 会有什么区别吗?为什么这对于编译来说很重要? Pro 和 Express 真的使用非常不同的编译器吗?

最佳答案

我还不能发表评论,而且我不知道这是否是正确的答案,因为我没有 2010 Express。因此,为了提供帮助,我将尝试给出答案。

我可以为您提供我的编译行的开头,它与您的略有不同:

set CUDAFE_FLAGS=--sdk_dir "C:\Program Files (x86)\Windows Kits\8.0\"
"C:\_work\API\CUDA\bin\nvcc.exe" --use-local-env --cl-version 2012 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64"        --keep-dir x64\Prod -maxrregcount=0  --machine 64 

从此,我希望您将路径更改为您的路径,并将 cl 版本也更改为

"C:\_work\API\CUDA\bin\nvcc.exe" --use-local-env --cl-version 2010 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe" --machine 32

请注意,我也尝试将其更改为 32 位。我认为这就是您正在运行的内容。

干杯

关于c++ - 从命令行编译 CUDA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21103243/

相关文章:

将简单的 C 代码转换为 CUDA 代码

CUDA 3D数组分配和复制

cuda - GPU 上的分支预测

c - CUDA 上的 block 间屏障

c++ - 如何为模板化运算符指定模板参数

c++ - bullet 3d 中的滚动摩擦表现不像演示

c++ - 函数如何在递归后执行 Action ?

c++ - 如何在构造函数中初始化对空 STL 容器的引用?

three.js - 如何在 THREE.js 中为可旋转的毛茸茸的球制作动画?

GPU 中的 C# 位图 GetPixel()、SetPixel()