visual-studio - 带有 cmake 的 Cuda
问题描述
我正在尝试使用我在网上找到的 Cuda v8.0 编译现有的 CMake 项目。为此,我使用 CMake GUI 版本。(我目前正在使用 Visual Studio 2017 运行 Windows 10)。“配置”步骤总是给我以下错误消息:
找不到 CMAKE_CUDA_COMPILER。
我安装了 cuda 8.0(连同我从路径中删除的其他 Cuda 版本),CuDNN 也在我的路径中。而且我希望在某些时候生成 Visual Studio 项目文件,然后我可以使用这些文件来编译项目......
什么可能导致该错误?
编辑
根据要求,我在那里上传了 CMakeOutput.log:https ://framabin.org/?c532b10d2a4aef54#NkJZItfUfPwMP6BHCiP5DhQS40duM4AhsKR+bWHN0tE=
解决方案
好的!在@raul-laasner 的帮助下,我想我已经解决了我的问题!
- 第一个确实是我的 Cuda 版本没有被正确识别。而且我在这个阶段根本不确定是否找到了一个。我的环境变量也可能被忽略。我必须将 CMAKE_CUDA_COMPILER 选项指定为“C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/bin/nvcc.exe”。
然后,问题是我使用的 Visual Studio 版本太新。首先,Cuda v8.0 与 Visual Studio 2017 不兼容:Cuda 8.0 with Visual Studio 2017。但即使使用最新版本的 Cuda,我的 Visual Studio 也太新了。含义:NVIDIA 在 Visual Studio 版本方面落后……现在,微软计划在大部分升级中更新 _MSC_VER。因此,我有两个选择:
- 将 Visual Studio 降级到兼容版本。
- 使用更新版本的 Cuda (9.2) 并修改 c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\crt\host_config.h 以更改 _MSC_VER 验证的上限。
通过执行第二个选项,我设法配置和编译项目。我不确定这种“hacky”方式以后会不会出现问题。但至少,我已经更进一步了!
推荐阅读
- c - 将用户输入的值从一个函数传递到另一个 C 时出现问题
- c++ - 在现代 C++ 中使用模板替换函数指针数组
- react-native - Using Redux Reselect and PureComponent - Nothing updates
- c# - 如何在wpf中找到文本框的插入符号位置
- angular - How to change content with
on non-main page? - php-7 - In PHP7 how Replace thes code from preg_replace() to preg_replace_callback()
- r - 基于具有相同名称的数据框中添加列
- ansible - Ansible Shell/Command Module - "msg": "[Errno 2] No such file or directory",
- python - 通过串口发送位串
- python - Training lstm model?