CMake找不到更新的CUDA包?

时间:2017-10-01 17:16:38

标签: compilation cmake cuda

我安装了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的问题,还是我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

  1. 无论您安装了多少个CUDA工具包,find_package(CUDA)都会在环境变量nvcc中找到其<CUDA root dir>/bin(通常位于$PATH)的工具包。如果nvcc中有多个$PATH,则会收到第一个find_package(CUDA)。在Windows上,安装程序通常会自动添加相关的环境变量,因此找到的版本取决于安装顺序。

  2. 您不应再使用{{1}},因为CMake现在拥有对CUDA的一流支持。

  3. 详情请查看:

答案 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选择了它。