Ubuntu20.04编译GPU支持的XGBoost R包出现CMake包含错误如何解决
问题根因
你遇到的报错是因为通过install.packages("xgboost")安装的R包是CRAN提供的预编译版本,目录仅保留运行所需的必要文件,完整编译依赖(特别是报错中提到的cmake/目录下的所有配置脚本)都被裁剪了,仅单独下载单个CMakeLists.txt无法补全所有缺失的依赖文件。
修复步骤
- 第一步:卸载现有不完整的xgboost包,打开R终端执行:
remove.packages("xgboost") - 第二步:拉取xgboost官方完整源码,执行git命令时必须加
--recursive参数拉取所有关联子模块,避免依赖文件缺失。 - 第三步:进入源码根目录,创建build文件夹并进入:
cd xgboost mkdir build && cd build
- 第四步:执行带GPU支持的cmake配置命令:
cmake .. -DUSE_CUDA=ON -DR_LIB=ON
如果你的CUDA安装在非默认路径,可额外添加参数-DCMAKE_CUDA_COMPILER=你的CUDA路径/bin/nvcc指定编译器位置。 - 第五步:执行编译安装命令:
make install -j$(nproc)
命令执行完成后,带GPU支持的xgboost R包会自动安装到你的系统R库路径中。
验证安装
打开R终端执行如下命令,若输出包含cuda则说明GPU支持编译成功:
library(xgboost) xgb.available.devices()
内容的提问来源于stack exchange,提问作者RicMenP
相关产品推荐
相关产品推荐

