【机器学习】10.1 在ubuntu上安装lgb gpu(cuda)版本

记录在ubuntu(AutoDL)上安装lightgbm gpu(cuda)版本的方法

1 踩坑过程

刚开始,依照下面博客安装了几次,都没有成功

https://codeleading.com/article/30812601605/

安装很慢,且运行时会报各种错误:

[LightGBM] [Fatal] GPU Tree Learner was not enabled in this build. Please recompile with CMake optio
LightGBMError: No OpenCL device found

原因可能是博客年代比较久远

后来看到这篇博客,于是想到去github clone,然后安装最新的lgb

https://blog.csdn.net/CallMeYunzi/article/details/106363191

2 安装方法

2.1 命令行安装依赖

sudo apt-get install libboost-all-dev  
sudo apt install ocl-icd-opencl-dev

2.2 安装cmake

sudo apt-get install cmake

2.3 更新所有包

使用--fix-missing更新所有包

apt-get update --fix-missing

2.4 检查目录

检查这两个目录是否存在,一会会用到

/usr/local/cuda/lib64/libOpenCL.so.1
/usr/local/cuda/include/

2.5 设置环境变量

export CC=/usr/bin/gcc
export CXX=/usr/bin/g++

2.6 下载并构建

git clone --recursive https://github.com/microsoft/LightGBM
cd LightGBM
# rm -r build  # 如果已经建立了build目录,则需要删除
mkdir build
cd build
cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so.1 -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ ..
make -j$(nproc)

想在python中导入lgb,还要执行下一步

2.7 安装python包

根据github上的lgb官方文档,

https://github.com/microsoft/LightGBM/tree/master/python-package

还需要在LightGBM目录下执行脚本,不然无法在python中使用lgb

sh ./build-python.sh install --cuda

注意不能执行下面的代码,对于安装了cuda的机器,只能执行上面的,不然会保存,具体是为什么还不清楚

sh ./build-python.sh install --gpu

此外,安装过程也可参考官方文档

https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html#id17

除了官方文档,这篇文章说的也比较详细

https://medium.com/@vipulgote4/how-to-build-and-install-lightgbm-for-gpu-acceleration-2b53f0066c02

3 测试代码

安装后,可使用下面代码测试是否安装成功

import lightgbm
import numpy as np

def check_gpu_support():
    data = np.random.rand(50, 2)
    label = np.random.randint(2, size=50)
    print(label)
    train_data = lightgbm.Dataset(data, label=label)
    params = {'num_iterations': 1, 'device': 'cuda'}
    try:
        gbm = lightgbm.train(params, train_set=train_data)
        print("GPU True !!!")
    except Exception as e:
        print("GPU False !!!")


if __name__ == '__main__':
    check_gpu_support()

4 安装后可能出现的问题

  1. 运行时如果报错
LightGBMError: No OpenCL device found

尝试命令行输入

mkdir -p /etc/OpenCL/vendors && echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
  1. 运行时如果报错
LightGBMError: GPU Tree Learner was not enabled in this build. Please recompile with CMake option -DUSE_GPU=1

这个错误是安装了cuda版本,但是lgb的参数中却设置成了{"device": "gpu"},解决办法:应修改为{"device": "cuda"}

  1. 一些其他的问题可以参考这篇文章

https://zhuanlan.zhihu.com/p/668817682

其他的参考

https://github.com/microsoft/LightGBM/issues/4497
https://blog.csdn.net/zwqjoy/article/details/100579892

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LouHerGetUp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值