こんにちは
グラフィックボードをRTX3060 12Gに切り替えたので、
GPUをフル活用するため、
以下のサイトを参考に、lightgbm for GPUのインストールに取り組みました。
基本的には以下の手順ですが、それぞれ初めてなので、
意味も分からず進めました。
環境:
OS: Windows 11
CPU: Corei7-10700
GPU: RTX 3060 12G
Python:: Version 3.8.8
NVIDAのツールキットはインストール済。
Step1: Visual Studio Code 2019のインストール
MSストアからダウンロードしてインストールしました。
インストールの際は「C++ によるディスクトップ開発」にチェックを入れてインストールします。
忘れた場合、後でVisuall Studio Installerの「変更」ボタンをクリックし、次の画面で選択できます。
Step2: cmakeのインストール
以下のサイトから、cmake-3.25.0-rc4-windows-x86_64.msiをダウンロードし、
ダブルクリックでインストールしました。最初のダウンロードではファイルが壊れていたらしく、上手くインストールできませんでしたが、再度ダウンロードして実行したところインストール完了しました。
Step3: Boostのインストール
以下のサイトからboost_1_80_0-msvc-14.2-64.exeをダウンロードします。
boost_1_80_0-msvc-14.2-64.exeをダブルクリックで実行すると、
自動的にC:¥Localにboost_1_80_0フォルダが作成されその中にファイルが展開されます。
インストール完了したら、Finishをクリックして終了。
※最初、以下のサイトを参照しインストールしましたが、インストール先のフォルダをどこにすべきか分からず、Cドライブ直下に置いて失敗しました。とりあえずフォルダごと削除しました。C:¥Local直下にインストールすればOKだったのかもしれません。
Step4: LightGBM GPU版をビルドし再インストール
GitHubからビルドしました、以下のコマンドです。anacondaプロンプトから実行しました。
>git clone --recursive https://github.com/microsoft/LightGBM
>cd LightGBM mkdir build
>cd build
>cmake -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:/local/boost_1_80_0 -DBOOST_LIBRARYDIR=C:/local/boost_1_80_0/lib64-msvc-14.2 ..
>cmake --build . --target ALL_BUILD --config Release
その後、powershell等で以下を実行
# python-packageに移動(以下ではbuildフォルダに居ることを想定。LightGBMフォルダの直下にあります)
cd ../python-package
# インストール
python setup.py install --precompile
Pythonと表示されました。
その後、既存のlightgbmをアンインストールし、再インストールしたところ、
GPUが動作するようになりました。
再インストールは普通に以下のコマンドです。
>pip install lightgbm
早速、LightGBMへ以下のパラメータを追加して実行時間を計測してみました。
max_binを300などに設定するとエラーとなります。maxは255のようです。
'device_type':'gpu',
'gpu_device_id':0,
'gpu_platform_id':0
'min_data_in_bin':1,
'max_bin':255
GPU使用率が0%~29%、CUDA使用率が0~40%で推移します。GPUが利用されているようです。CPUは常に100%になります。処理時間は5分16秒でした。
次に、GPUを使わず、CPUを100%使って実行すると3分43秒と、CPUの方が早い結果となりました。
この場合、GPU、CUDAの使用率はずっと0%でした。
ちょっとショックですが、
以下のサイトに「lightGBMはあまりGPUの利用率が高くないため、高価で高性能なGPUを利用しても処理速度の向上には寄与しないと考えれられます。コア数の少ないCPUを利用している場合は、GPU利用の恩恵があるかもしれません。」とあります。
今のCPUは16コアなので、CPUのみの方が良いのかもしれません。
https://qiita.com/mcakiyama/items/1c1fa21dd82d8a955b4a