irisuinwl’s diary

サークル不思議(略)入巣次元の、数学や技術的なことを書きます。

stable diffusionをwsl2でやるメモ

こんにちは。

stable diffusion+streamlitを動かしてみました。

Repository:

github.com

※このリポジトリは実験的に作ったもので、これをそのままデプロイしても何が起きるか分かりません。

wsl2でcuda使う準備

  • ここらへんを見る

docs.microsoft.com

  • 動作確認
docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
  • wslでpytorchが動作することの確認
poetry run python3 -c "import torch; print(torch.cuda.is_available()); print(torch.rand(2, 2).to('cuda:0'))"

実行

詳しくはREADME.mdとDockerfileを読んで

github.com

結果

次やりたいこと

  • 16bit, 32bitの切り替え
  • GKE Autopilot+GPU+SpotVMへのデプロイ(コストをみたい)
  • 強いグラボが欲しい(はい)

トラブルシューティング

以下のエラーがでる

github.com

21H2にする

  • cudaのバージョン違い

no kernelとなる。 - CUDAを11.6にして、使うイメージを合わせる。

developer.nvidia.com

pytorch cudnn116でインストールする。

poetryを使っているので1.2.0にしてtorch+cudnnをインストールする。

poetryでインストールする上で参考にしたのは以下:

scrapbox.io

github.com

  • CUDA OOMになる

自分のVRAMが8GiBしかないので、OOMになる。

ググると最適化verかfloat16にするといいらしいので、float16にして対応。