LoginSignup
7
4

Google Colab + LightGBM (GPU) で遭遇したエラーと解決策

Last updated at Posted at 2024-04-13

概要

  • LightGBMの4.0.0のメジャーアップデートからGPU (CUDA)で実行できるようになった
  • しかし、Google Colaboratory環境から実行しようとすると、学習段階で以下のエラーが出て詰んだ
LightGBMError: No OpenCL device found

いろいろ調べた結果、以下のコマンドを一発打てば解決した。

!mkdir -p /etc/OpenCL/vendors && echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd

以下で詳細について述べる。

環境

2024.04.14時点でのGolab環境で回している

  • LightGBMのバージョン: 4.1.0

今回の問題と直接関係あるかはわからないが、他には

  • polars==0.20.05
  • pandas==2.2.0
  • numpy==1.26

のバージョンを使っている。

Golab環境ではCPUに加えてランタイムからV100, A100, T4などのGPUを選ぶことができる。
Pro, Pro+などに課金することでより良いGPUを長い時間使うことができる。
自分の場合はPro+を使っている。

どんなエラーが出たか

ランタイムから適当なGPU選択してlightGBMをimportする。
gpuを使うためにパラメータの設定を

  • "device": "gpu"

と指定しいざ学習を回そうと思ったら最初に書いたエラーに遭遇した。
必要な設定は全部できてそうだけどなぜ?

原因と解決策

エラーメッセージの通り、OpenCLの設定がうまくできておらず、GPUを正常に認識できていないのが問題のようだ。

調べたところ、似たようなエラーに対処している記事が複数あった。

↑LightGBMをアンインストールしてビルドし直している。

↑Dockerfileを書いて環境構築

どっちもめんどくさそうだなーと思っていたところ、以下の公式リポジトリのissueを見つけた。

↑最初に貼ったコマンドを一行実行すれば良いと書いてあったので、それで解決。

一応実行した後にnotebookを起動し直す必要があったものの、面倒なビルドや環境構築などは特にやらずに済んだ。

まとめ

  • 結局公式のissueが一番役にたった
  • こういう環境構築的な部分って思わぬところで詰まりがち。。
  • とりあえず実行できるようになってよかった
7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4