accelerateは、GitHubで公開されている、GPUを効率的かつ簡易な設定で使うためのライブラリ。
ソフトウェアについて
概要
- マルチ GPU、fp16/bf16切り替えを簡単に行うことができる。
- ローカルマシンとAWSどちらを使うか
- マルチGPUか単一GPUか。
- fp16かbf16か。 etc
- CPUだけを使いたい人はこの設定を変更する。特に、VRAM不足につきメインメモリを使いたい場合
- アプリの速度が異常に遅い人(なぜか、CPU単独で動いている)はこの設定を見直すこと
保存場所
venv環境下の場合、下記に保存されている。
venv\Lib\site-packages\accelerate
accelerate config:環境設定
この設定は、accelerateのインストール以降、いつでも何回でも行える。
venv仮想環境をアクティベートする。
venv環境に従って有効化する。
なお、グローバル環境を使う場合、この行程は省略する。
設定を開始する
accelerate config
設定する
config設定で、質問に対して順番に答えていく。
各々のPC環境にもよるが、多くのユーザーは以下の回答になる。
This machine (Enterキー)
No distributed training (Enterキー)
NO (NOと入力してEnterキー)
NO (NOと入力してEnterキー)
NO (NOと入力してEnterキー)
all (allと入力してEnterキー)
fp16 (数字キー1で選択してEnterキー)
詳細は以下の通り。
■どのマシンで動かすか。
In which compute enviroment are you runnning?
Please select achoice using the arrow or number keys, and selecting with enter
* This machine
Which type of machine are you using?
Please select a choice using the arrow or number keys, and selecting with enter
* No distributed training
ここまでは一番上の選択肢をそのまま選ぶのでエンターを押すだけでいい。
■CPU単独を使うか、GPUを使うか
■mixed precisionはどれを使うか。
Do you want to run your training on CPU only (even if a GPU is available)? [yes/NO]:NO
Do you wish to optimize your script with torch dynamo? [yes/NO]:NO
Dou you want to use DeepSpeed? [yes/NO]:NO
What GPU(s) (by id) should be used for training on this machine as a comma-seperated list? [all]:all
これらの質問には、それぞれ該当する答えを入力してエンターを押す。つまり、順番に「NO」「NO」「NO」「all」で答える。
Dou you wish to use FP16 or BF16 (mixed precision)?
Please select a choice using the arrow or number keys, and selecting with enter
no
*fp16
bf16
注意:ここで選択する際に、矢印キーで選択しようとするとプログラムが落ちる不具合があるので、数字キーで選択する。それぞれ0,1,2が該当するので、1を押せば「fp16」にカーソルが合うのでエンター。「fp166」みたいに表示されてるかもしれないが気にしない。
【参考】各アプリでのacceralate config設定の要否
最新の情報は、公式ページや当wikiの解説ページを参照のこと。
Stable Diffusion web UI
- 最新版を導入する設定になっており、インストール及びconfig設定は自動で行われる。
2023/8/23 Ver.1.5.1時点
sd-scripts
Ver.0.15.0を導入する設定になっており、
設定は自分で行う必要がある。(acceralate config)
2023/8/23 Ver.0.6.5時点
accelerate launch
- これは、Pythonプログラムを実行するためのコマンド。
- 例えば、Stable Diffusion web UIやsd-scripts起動の際に使用する。