8-bit optimizer(bitsandbytes)をWindows(非WSL)で動かす
概要
学習の省メモリ化に有効なbitsandbytesの8-bit optimizerですが、Windows用のDLLが提供されていないためそのままでは動きません。
以前の記事に8-bit optimizerをWindows(非WSL)で動かす方法について書きましたが、わかりやすいように記事として独立させました。
手順
仮想環境等を適宜設定しておいてください。
bitsandbytesのインストール
pipでインストールします。Windows対応のための変更スクリプトが0.35.0でしか動かないため、バージョンを指定してインストールします。
(10/28現在。将来的にはbitsandbytesがネイティブでWindowsに対応してくれることを期待します。)
pip install bitsandbytes==0.35.0
Windows用DLLのダウンロードとコピー
こちらのissueを参考に、有志の方がコンパイルされたWindows用DLLファイル、libbitsandbytes_cuda116.dllをこちらのページから落としてきます(CUDA 11.6用ですが、私はCUDA 11.3環境で動きました)。
DLLを仮想環境のbitsandbytesのディレクトリにコピーします。
スクリプトの書き換え
先のissueを参考にbitsandbytesのcuda_setup/main.pyと、cextension.pyを書き換えます(書き換え済みファイルも添付してあります)。
動作確認
Pythonを起動し、import bitsandbytesとしてエラーが出なければOKです。
0.35.0に対応した両ファイルを添付しておきます。それぞれの元ファイルをリネームし、同じ場所に入れてください。
この記事が気に入ったらサポートをしてみませんか?