Ubuntu18.04 安装xgboost GPU版配置
Posted 河南骏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu18.04 安装xgboost GPU版配置相关的知识,希望对你有一定的参考价值。
CUDA安装
首先要到英伟达官网下载对应版本cuda工具包,使用GPU需要有cuda。
配置好环境变量
1)在~/.bashrc中添加如下
export PATH = /usr/local/cuda-11.1/bin:$PATH
export LD_LIBRARY_PATH = /usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH
使环境变量生效
source ~/.bashrc
2)配置 /etc/ld.so.conf.d/cuda-11.1.conf
添加如下内容
/usr/local/cuda-11.1/lib64
使库生效
sudo ldconfig
termimal 输入“nvcc --version” 或者“nvcc -V”,显示如下,代表cuda安装成功
安装GPU版的xgboost
安装步骤如下:
- git clone --recursive https://github.com/dmlc/xgboost
- cd xgboost
- mkdir build
- cd build
- cmake .. -DUSE_CUDA=ON -- 会报错 ,另外如果需要支持并行,需要安装NVIDIA NCCL并且把-DUSE_NCCL=ON和-DNCCL_ROOT=... 加上,编译完可以看到当前目录下生成了xgboost二进制文件,
- make -4j
- cd python-package
- python setup.py install # 也可以加上 --use_cuda 或者 --use-nccl
安装cmake时会报错,ubuntu 18.04默认安装的cmake版本是3.10,xgboost 要求cmake version >=3.13。
解决方法是:
- 删除系统中已安装的cmake
sudo apt purge cmake
- 下载cmake 3.13.4的源,也可以是再高点的版本,可以到cmake github 地址选择
wget https://github.com/Kitware/CMake/releases/download/v3.13.4/cmake-3.13.4.tar.gz
- 解压文件
tar zxvf cmake-3.13.4.tar.gz
- 打开文件夹,执行以下命令
cd cmake-3.13.4
sudo ./bootstrap
sudo make
sudo make install
- 验证已安装的版本是否正确
cmake --version
修改cmake/Utils.cmake,把对RTX3090 GPU的支持的算力配置加上(set(flags "35;50;52;60;61;70;75;80;86")):
function(format_gencode_flags flags out)
if(CMAKE_CUDA_COMPILER_VERSION MATCHES "^([0-9]+\\\\.[0-9]+)")
set(CUDA_VERSION "$CMAKE_MATCH_1")
endif()
# Set up architecture flags
if(NOT flags)
if (CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
set(flags "35;50;52;60;61;70;75;80;86")
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
set(flags "35;50;52;60;61;70;75")
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
set(flags "35;50;52;60;61;70")
else()
set(flags "35;50;52;60;61")
endif()
endif()
测试GPU
在xgboost/tests/benchmark下分别执行
python benchmark_tree.py --tree_method gpu_hist
python benchmark_tree.py --tree_method hist
发现gpu版运行7秒,cpu版运行282秒,速度提升非常快了。
在实际代码中,只要添加下面的参数就可以:
Python example
param['gpu_id'] = 0 # 选择设备序号(如果有许多设备,则使用哪个GPU) ,该参数默认为0(CUDA运行时报告的第一个设备)。
param['tree_method'] = 'gpu_hist' # 等效于XGBoost快速直方图算法。快得多,并使用更少的内存。注意:在比Pascal架构更早的GPU上运行可能会非常缓慢。等效于XGBoost快速直方图算法。快得多,并使用更少的内存。注意:在比Pascal架构更早的GPU上运行可能会非常缓慢。
With Scikit-Learn interface
XGBRegressor(tree_method='gpu_hist', gpu_id=0)
以上是关于Ubuntu18.04 安装xgboost GPU版配置的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu 18.04 基于NVIDIA 2080安装TensorFlow-GPU 1.13.1
Ubuntu 18.04 64位安装tensorflow-gpu