我安装了CUDA版本7.5和8.0,但cmake似乎只能找到7.5版本。运行此代码:
find_package(CUDA 8.0 REQUIRED)
给出了这个错误:
CMake Error at P:/Program Files/CMake/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find CUDA: Found unsuitable version "7.5", but required is at
least "8.0" (found C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5)
即使v8.0与v7.5位于同一目录中。这是cmake的问题,还是我在这里做错了什么?
答案 0 :(得分:2)
无论您安装了多少个CUDA工具包,find_package(CUDA)
都会在环境变量nvcc
中找到其<CUDA root dir>/bin
(通常位于$PATH
)的工具包。如果nvcc
中有多个$PATH
,则会收到第一个find_package(CUDA)
。在Windows上,安装程序通常会自动添加相关的环境变量,因此找到的版本取决于安装顺序。
您不应再使用{{1}},因为CMake现在拥有对CUDA的一流支持。
详情请查看:
答案 1 :(得分:0)
通过从CMake命令行设置CUDA_TOOLKIT_ROOT_DIR
标志,您可以显式地向CMake提供CUDA路径:
cmake -DCUDA_TOOLKIT_ROOT_DIR=<path-to-cuda-8.0>
。
CUDA版本检测由CMake的findCUDA
功能完成:
https://cmake.org/cmake/help/v3.0/module/FindCUDA.html
由于某种原因,findCUDA
搜索无法找到您安装的CUDA 8.0。
可能是CUDA_BIN_PATH
设置为7.5,因此CMake选择了它。