【问题标题】:CMake v3.4.1 finds CUDA 7.5 instead of CUDA 8.0 on Ubuntu 16.04CMake v3.4.1 在 Ubuntu 16.04 上找到 CUDA 7.5 而不是 CUDA 8.0
【发布时间】:2018-04-30 14:21:11
【问题描述】:

我正在尝试为 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 版本?

【问题讨论】:

    标签: cmake cuda gpu xgboost


    【解决方案1】:

    PATHLD_LIBRARY_PATH对cmake没有影响,所以你试过的都行不通。

    如果您查看 find_package 的文档,可以提供一个 PATHS 参数来告诉 cmake 查找非标准位置

    不幸的是,如果您查看 XGBoost 的 CMakeLists.txt 的源代码,您会发现它调用了find_package(CUDA ...),但不允许用户提供PATHS 选项

    if(USE_CUDA)
      find_package(CUDA 8.0 REQUIRED)
      ...
    endif()
    

    因此,您有两个选择:

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

    【讨论】:

    • 谢谢史蒂夫,我试试选项 1 :)
    • @Nesvold 你解决了吗?如何添加那个 cmake 文件?
    【解决方案2】:

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

    git clone --recursive https://github.com/dmlc/xgboost
    cd xgboost
    git submodule init
    git submodule update
    cd R-package
    R CMD INSTALL .
    

    然后运行用于 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 2017-11-27
      • 2017-06-02
      • 1970-01-01
      • 2017-10-25
      • 2017-09-05
      相关资源
      最近更新 更多