CMake v3.4.1在Ubuntu16.04上找到了CUDA 7.5而不是CUDA 8.0

CMake v3.4.1在Ubuntu16.04上找到了CUDA 7.5而不是CUDA 8.0,cmake,cuda,gpu,xgboost,Cmake,Cuda,Gpu,Xgboost,我正在尝试安装对XGBoost的GPU支持,但在尝试使用CMake构建它时出现以下错误: CMake Error at /usr/local/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:148 (message): Could NOT find CUDA: Found unsuitable version "7.5", but required is at least "8.0" (found /usr) 我只安装了C

我正在尝试安装对XGBoost的GPU支持,但在尝试使用CMake构建它时出现以下错误:

CMake Error at /usr/local/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find CUDA: Found unsuitable version "7.5", but required is at
least "8.0" (found /usr)
我只安装了CUDA 8.0,.bashrc中的环境变量指定为:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 

如何让CMake检测到正确的CUDA版本

PATH
LD\u LIBRARY\u PATH
对cmake没有影响,因此您尝试的方法将不起作用

如果您查看文档以了解更多信息,则可以提供一个
路径
参数,告诉cmake在非标准位置查找

不幸的是,如果您查看XGBoost的CMakeLists.txt的源代码,您可以看到它调用,但不允许用户提供
路径
选项

if(USE_CUDA)
  find_package(CUDA 8.0 REQUIRED)
  ...
endif()
因此,您只有两个选项:

  • 编辑XGBoost的CMakeLists.txt文件,并将
    path/usr/local/cuda-8.0
    添加到
    find_包
    调用中
  • cuda-8.0
    安装到标准位置(例如:使用
    /usr/local
    作为
    前缀,而不是
    /usr/local/cuda-8.0

我在尝试安装支持GPU的R版本时遇到了类似的问题。问题是我正在从他们的计算机运行命令:

然后运行用于GPU支持的命令:

mkdir build
cd build
cmake .. -DUSE_CUDA=ON -DR_LIB=ON
我可以通过运行以下命令来避免此问题:

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
mkdir build
cd build
cmake .. -DUSE_CUDA=ON -DR_LIB=ON
make install -j

Thx Steve,我试试选项1:)@Nesvold你修好了吗?如何添加cmake文件?
git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
mkdir build
cd build
cmake .. -DUSE_CUDA=ON -DR_LIB=ON
make install -j