背景
DreamBooth https://dreambooth.github.io/, DreamFusion https://dreamfusion3d.github.io/ 動かしたいよぉ...
(しかし G 社のネーミングセンスは相変わらずよくないですね...)
- RTX 3090(24GB)
- Tesla P100(16GB)
- RX6800(ROCm. 16GB)
で pytorch 実装のを試しました.
DreamBooth
3090 でも動かず.
こちらの huggingface diffusers 版は 16 GB 版で Tesla P100, 3090(CUDA 11.8) で動作しました.
(最近(2022/10/10 頃) CUDA 11.8 対応した)
ROCm はそのままでは 16 GB 版スクリプトでもメモリ不足.
https://github.com/huggingface/diffusers/issues/684 を参考にメモリ削減版の fork を使えば 408x408 で動作
(メモリに余裕あるなら DeepSpeed を使う 8 GB で動作すると思われる)
T.B.W.
DreamFusion
こちらは 3090, P100 動作.
3090 は 100W(!) に powerlimit して 1s/it(150,000 steps だとおよそ 4 時間).
P100 は 125W に powerlimit + コアクロック落として, デフォルト設定で 1.95s/it(150,000 steps だとおおよそ 8 時間). ただ生成されるのはどうも 3090 で生成したのより劣る感がある(RT コアがないから NeRF の計算が荒いため?)
RX6800 でも少し修正して処理自体は進むが, 結果がおかしい(収束しない). どこか CUDA 特有のコードパスがあるやもしれません.