LoginSignup
5
2

SberSwap(ai-forever/ghost)をWSL2-Ubuntuで動かしてみた

Last updated at Posted at 2023-06-10

ai-forever/ghostをWSL2のUbuntuで動かした際の備忘録です。
GoogleColabでの例は見つかるのですが、ローカル環境で動作させたものはなく苦戦しました。
色々試したのですが、最終的にはアップロードされているGoogleColabの環境をローカル環境で再現することで動作しました。
この記事が誰かのお役に立てればと思います。

実行環境

  • Windows 10 Pro
  • WSL2 Ubuntu 20.04 LTS
  • Python 3.10.12
  • NVIDIA GeForce RTX 3070 (GPU Memory: 8.0GB)

CUDA 周りのインストール

下記をインストールします。

  • CUDA Toolkit 11.8
  • cuDNN v8.9.2 for CUDA 11.x
  • NCCL 2.12.5, for CUDA 11.8

CUDA Toolkit 11.8

CUDA Toolkit 11.8 Downloads を参考にして以下のコマンドを実行

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

cuDNN v8.9.2 for CUDA 11.x

cuDNN Installation Guide を参考にインストールを行います。今回は Tarファイルを利用した方法を使用しました。

  1. cuDNN Download の Local Installer for Linux x86_64 (Tar) よりダウンロード、ワーキングディレクトリに配置

  2. 下記を実行

    tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
    sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
    sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
    sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
    

NCCL 2.12.5, for CUDA 11.8

NCCL は後でインストールする mx-net が必要とするモジュールです。NCCL installation Guide の Ubuntu 部分を参考にインストールを行います。

  1. NCCL Legacy Download Page の Local installer for Ubuntu 20.04 よりダウンロード、ワーキングディレクトリに配置
  2. 下記を実行
sudo dpkg -i nccl-repo-<version>.deb
<指示に従ってローカルキーをインストール
sudo apt update
sudo apt install libnccl2 libnccl-dev

Python モジュールのインストール

下記をインストール

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install mxnet-cu112
pip install onnxruntime-gpu==1.12
pip install Cython
pip install insightface==0.2.1
pip install kornia==0.5.4
pip install dill

ffmpeg インストール

動画のディープフェイク作成時に ffmpeg を使用するのでインストール

sudo apt install ffmpeg

エラー対応

実行環境は整ったのですが、私の環境ではいくつかエラーが発生したのでその対応を記載します。強引な修正ではありますが動作します。

AttributeError: module 'numpy' has no attribute 'bool'. Did you mean: 'bool_'?

mxnet/numpy/utils.py の「bool_」の記述は残しつつ「bool」に関する記述をすべて削除

こんな感じimage.png

This ORT build has ['TensorrtExecutionProvider', 'CUDAExecutionProvider', 'CPUExecutionProvider'] enabled. Since ORT 1.9 ...

onnxruntime/capi/onnxruntime_inference_collection.py の _create_inference_session 関数に下記を追加

providers = ['CUDAExecutionProvider', 'CPUExecutionProvider']

こんな感じimage.png

動作確認

python3 inference.pyを実行して動作確認します。
各引数にはデフォルト値が適用され、ghost/examples/results に result.mp4 が生成されます。
Warning が大量発生しますがご容赦ください。

~/ghost$ python3 inference.py
/home/****/.pyenv/versions/ghost/lib/python3.10/site-packages/kornia/augmentation/augmentation.py:1830: DeprecationWarning: GaussianBlur is no longer maintained and will be removed from the future versions. Please use RandomGaussianBlur instead.
︙
  if spsp is not None and isinstance(source_array, spsp.csr.csr_matrix):
/home/****/.pyenv/versions/ghost/lib/python3.10/site-packages/mxnet/ndarray/utils.py:141: DeprecationWarning: Please use `csr_matrix` from the `scipy.sparse` namespace, the `scipy.sparse.csr` namespace is deprecated.
  if spsp is not None and isinstance(source_array, spsp.csr.csr_matrix):
100%|█████████████████████████████████████████████████████████████████████████████████| 289/289 [00:07<00:00, 39.55it/s]Video saved with path examples/results/result.mp4
Total time:  14.406058311462402

私の環境では14秒ほどで終了しました。

参考文献

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2