背景
1、在有Nvidia-GPU的情况下模型使用cuda加速计算,但是很有多模型的GPU和CPU版本安装方式不同,如何安装lgb\cat\xgb.
2、为了让代码有普适性,如何自适应环境当中的设备进行CPU或者GPU的调整?
解决方案
问题一:
- 安装 GPU 版本的 LightGBM
LightGBM 默认不会安装 GPU 支持版,需要手动编译以启用 GPU。以下是在 Linux 和 Windows 上编译 GPU 版本 LightGBM 的方法:
Linux (Ubuntu 20.04/18.04) 上安装 GPU 版本 LightGBM:
安装依赖:
sudo apt-get update
sudo apt-get install -y cmake gcc g++ libboost-dev libboost-system-dev libboost-filesystem-dev
克隆 LightGBM 仓库:
git clone --recursive https://github.com/microsoft/LightGBM
cd LightGBM
编译 LightGBM(启用 GPU 支持):
mkdir build
cd build
cmake -DUSE_GPU=1 ..
make -j4
针对catboost和xgboost,直接支持GPU安装。
2. 安装 GPU 版本的 CatBoost
CatBoost 安装相对简单,默认支持 GPU 加速。
在 Linux 或 Windows 上安装 GPU 版本 CatBoost:
直接通过 pip 安装最新版本的 CatBoost,它会自动检测 GPU 并启用 GPU 加速(如果 CUDA 安装正确):
pip install catboost
验证 GPU 支持:
from catboost import CatBoostRegressor
model = CatBoostRegressor(task_type="GPU")
print(model.get_param("task_type"))
如果 task_type=“GPU”,说明 GPU 正常启用。
注意:确保已经安装了 CUDA Toolkit,并且你的系统支持 NVIDIA GPU。
- 安装 GPU 版本的 XGBoost
XGBoost 支持通过 pip 安装 GPU 版本,前提是你已经正确安装了 CUDA。
在 Linux 或 Windows 上安装 GPU 版本 XGBoost:
直接通过 pip 安装 GPU 版本 XGBoost:
pip install xgboost --user
验证 GPU 支持:
import xgboost as xgb
print(xgb.rabit.get_num_procs()