3回は環境を爆破させた。
余計なことはやらないに限る。
cudaを入れる
11.8を入れる
正解
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-keyring_1.0-1_all.deb sudo dpkg -i cuda-keyring_1.0-1_all.deb sudo apt-get update sudo apt-get install cuda-11-8
間違い
https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=18.04&target_type=deb_network
このままやるとcudaが勝手に最新版にされるので注意。
sudo apt-get -y install cudaは実施してはいけない。
https://note.com/srvhat09/n/ndfc828a5cf21
パスを通す
export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
先ほどのnoteに書いてある通りに実施する。
この辺をやらないと、nvccが通らない。
そして、プロンプトのエラーの通りsudo apt install nvidia-cuda-toolkitをすると環境がぶっ壊れる罠。
https://cocoinit23.com/cuda-nvcc-command-not-found/
tinycudannでcannot find lcudaとかになるときはパス周りがうまくいっていない可能性がある。
パスを反映させて確認する
source ~/.bashrc nvcc -V
さらにパスを追加する
これは必要かわからんし、もうちょっとちゃんとした書き方はある。
export PATH="/usr/local/cuda/bin:$PATH" export PATH="~/.local/bin:$PATH" export LIBRARY_PATH="/usr/local/cuda/lib64/stubs:$LIBRARY_PATH"
pipを入れる
sudo apt install python3-pip
stable zero 123をcloneして指示に従う
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 pip install ninja pip install -r requirements.txt
これより前にpytorchとか入れておくともうわけわからんことになるので腕に自信がないなら空っぽの状態から始めた方がいいいい。
学習済みデータをDL
wget -P load/zero123/ https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt
設定を変えて実行
とりあえず最初はこれでやった方がいい。
メモリ(GPUじゃない方も)を馬鹿食いするので、失敗したときに何が原因かわからなくなる。(この設定でも一時的に32Gをほぼ食い尽くす)
しかも、途中でエラーになるとwsl2を閉じてもメモリが解放されないのでpowerShellで下記コマンドを打つ必要がある。
wsl.exe --shutdown
objの出力
python3 launch.py --config "outputs/zero123-sai/[64, 128, 256]_name.png@20240321-210619/configs/parsed.yaml" --export --gpu 0 resume="outputs/zero123-sai/[64, 128, 256]_name.png@20240321-210619/ckpts/last.ckpt" system.exporter_type=mesh-exporter system.exporter.context_type=cuda
上記の設定だとほぼ使い物にはならないが。
https://note.com/npaka/n/ndd4da6c942db
感想
設定をある程度チューニングしたいところだが、超ハイスペックPCじゃないと3Dモデルのベースにすらできない感じするな。