有人幸运地尝试使用 Google Colab 上的笔记本安装对 lightgbm 的 GPU 支持吗?
非常简单:运行即可
!pip install lightgbm --install-option=--gpu
或
pip install lightgbm --install-option=--gpu --install-option="--opencl-include-dir=/usr/local/cuda/include/" --install-option="--opencl-library=/usr/local/cuda/lib64/libOpenCL.so"
记得在笔记本中启用 GPU 支持,并在 lightgbm 设置中添加
'device':'gpu'
。并且不要忘记先卸载不支持gpu版本的lightgbm版本。
确保您正确遵循安装步骤
!git clone --recursive https://github.com/Microsoft/LightGBM
%cd LightGBM
!mkdir build
%cd build
!cmake ../../LightGBM
!make -j4
此后您必须执行 LightGBM 文件夹中的安装文件
%cd LightGBM/python-package
!python3 setup.py install --gpu
一旦完成,一切就都准备好了。 ps:确保你已经安装了cmake,如果不是的话
!pip install cmake
大部分内容都遵循此处提供的文档,并进行了两个小调整以使其在 Google Colab 上运行。
由于实例在使用 12 小时后会更新,因此我将其发布在笔记本的开头,以使用 lightgbm 重新安装 GPU 支持:
!apt-get -qq install --no-install-recommends nvidia-375
!apt-get -qq install --no-install-recommends nvidia-opencl-icd-375 nvidia-opencl-dev opencl-headers
!apt-get -qq install --no-install-recommends git cmake build-essential libboost-dev libboost-system-dev libboost-filesystem-dev
!pip3 install -qq lightgbm --install-option=--gpu
更新了
lightgbm>=4.0.0
的答案(于2023年7月发布)
lightgbm
(LightGBM 的 Python 包),已包含 GPU 支持。只要您使用的是可用的 Windows 或 Linux 系统(如撰写本文时在 Google Colab 上),则不需要额外的重新安装或手动编译。
在您的 Colab 笔记本中,选择
Edit -> Notebook Settings
,然后选择 T4 GPU
(或任何其他可用的 NVIDIA GPU)。
在笔记本单元中运行以下命令,告诉 LightGBM 使用 NVIDIA OpenCL 可安装客户端驱动程序 (ICD)。有关其含义的更多详细信息,请参阅 OpenCL 文档 (link)。
!mkdir -p /etc/OpenCL/vendors && echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
然后通过传递
lightgbm
来使用具有 GPU 支持的 "device": "gpu
,例如如下所示:
import lightgbm as lgb
from sklearn.datasets import make_regression
X, y = make_regression(n_samples=10_000)
dtrain = lgb.Dataset(X, label=y)
bst = lgb.train(
params={
"objective": "regression",
"device": "gpu",
"verbose": 1
},
train_set=dtrain,
num_boost_round=5
)
您将在日志中看到类似以下内容,确认 GPU 正在用于训练。
[LightGBM] [Info] This is the GPU trainer!!
[LightGBM] [Info] Total Bins 25500
[LightGBM] [Info] Number of data points in the train set: 10000, number of used features: 100
[LightGBM] [Info] Using GPU Device: Tesla T4, Vendor: NVIDIA Corporation
[LightGBM] [Info] Compiling OpenCL Kernel with 256 bins...
[LightGBM] [Info] GPU programs have been built
[LightGBM] [Info] Size of histogram bin entry: 8
[LightGBM] [Info] 100 dense feature groups (0.95 MB) transferred to GPU in 0.001878 secs. 0 sparse feature groups
[LightGBM] [Info] Start training from score 1.025020
注意:从 LightGBM v4.0.0 开始,还有第二种方法可以使用 NVIDIA GPU 的 GPU 加速。通过运行以下命令重新编译
lightgbm
并支持 CUDA:
!pip install \
--force-reinstall \
--no-binary lightgbm \
--config-settings=cmake.define.USE_CUDA=ON \
lightgbm
重新启动Notebook运行时后,您可以通过参数传递
{"device": "cuda"}
来使用CUDA版本,如下所示:
import lightgbm as lgb
from sklearn.datasets import make_regression
X, y = make_regression(n_samples=10_000)
dtrain = lgb.Dataset(X, label=y)
bst = lgb.train(
params={
"objective": "regression",
"device": "cuda",
"verbose": 1
},
train_set=dtrain,
num_boost_round=5
)