MMVCローカル学習用の環境構築覚え書き
Colab上で実行できる作りだけど、家にあるPCのGPU使った方が切断されなくていいよね、という理由で環境構築しました。忘れないようにメモっておきます。
前提
MMVCのバージョンはv1.3.2.9
GPUはGeforce 4070Ti
やったこと
公式のGithubページにwikiがありますが、その通りにやるとうまくいかないところがいくつかあります。
躓きポイント - fine_modelが原因で読み込みに失敗する①
wikiでは"「G_180000.pth」「D_180000.pth」をダウンロード"と案内されていますが、Google DriveではなくGit LFSで管理するように変わっています。
MMVC_Trainer/notebook以下を参考にして
apt install git-lfs
git clone --depth=1 --no-single-branch https://github.com/isletennos/MMVC_Trainer/
cd MMVC_Trainer
git lfs pull
を実行して対応バージョンのfine_modelを取得したのちMMVC_Trainer/fine_model以下に配置しましょう。
躓きポイント - fine_modelが原因で読み込みに失敗する②
上記の通りやれば問題ないですが、v1.3用のfine_modelはv1.3.x.xブランチではなくmainブランチにあるものが正しいので、v1.3.x.xブランチにチェックアウトしてそこにあるものを使うとうまく動かない罠があります。
躓きポイント - CPU training is not allowed
こちらの記事が参考になります。おそらく原因は「WSL固有のCUDAライブラリである”/USR/LIB/WSL/LIB/LIBCUDA.SO.1"が本家CUDA側のライブラリ"/USR/LOCAL/CUDA/LIB64/LIBCUDA.SO"とリンクしていない」ことだと思うので、記載されている通りのコマンドを試してみてください。
躓きポイント - RuntimeError: nvrtc: error: invalid value for --gpu-architecture (-arch)
原因が全然わからなくてかなり時間食ったところ。Githubのwikiには「RTX4090ではcu118でないとpytorchが動かない」との情報があったので、試しにcuda11.8を使うように指定したら解決。以下が実行時の状態(学習させてみてる最中にコマンドをたたいているのでGPUのメモリは結構使ってる状態で表示されています)。
root@hogeco:~# nvidia-smi
Tue Oct 24 02:27:09 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.06 Driver Version: 545.84 CUDA Version: 12.3 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 4070 Ti On | 00000000:01:00.0 On | N/A |
| 0% 60C P2 73W / 285W | 7078MiB / 12282MiB | 76% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
root@hogeco:~# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0
nvcc -Vはcuda compiler driverのバージョンを表示するもので、nvidia-smiはあくまでドライバのバージョンの最大の対応バージョンを表示しているだけらしいです。
Githubのwikiに従ってsudo apt install cuda -yでインストールした場合、このバージョンが古くなっている可能性があるのでちゃんと確認しましょう。バージョンを指定する方法は以下が参考になります。
インストール後、「CPU training is not allowedの対処」で挙げたページに書かれている通りにnvccへのパスを通してubuntuを再起動してやるとコマンドが叩けるようになります。
あとはrequirements_wsl2.txtの指定をcu118にするために変更します。
(略)
-f https://download.pytorch.org/whl/cu118/torch_stable.html
torch==2.0.1+cu118
torchvision==0.15.2+cu118
torchaudio==2.0.2+cu118
(略)
残タスク
2023-10-24 02:40:22.847697: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-10-24 02:40:24.155828: I tensorflow/core/util/port.cc:110] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.
学習は進むけどワーニングが出るので原因を調べる。
v1.5系の学習もやりたいのでv1.3系の学習が終わったら取り組む。
自分の声を収録して実際のボイチェンモデルを作る(今はずんだもんの声をきりたんの声に変換する学習することで動作の確認をしている)。