Note to Self by notekunst

ただの備忘録です

古いGPU(CUDA CC=3.0)のためのTorchaudioのビルド(Ubuntu 22.04 on MacBookPro 15" Late2013)

以下の組み合わせで、一部の機能が、一応、動くようになりました。

GPU GeForce GT 750M (Compute Capability 3.0)
Display Driver 418.113 (nvidia-smiによると470.129.06)
CUDA 10.2
cuDNN 7.6.5
pytorch 1.9.1
torchvision 0.10.1
torchaudio 0.9.1

torchvision v0.10.1 に続いて、torchaudio v0.9.1 をビルドしました。以下、ビルド作業の記録です。

torchaudio v0.9.1 のビルドの手順

v0.9.1 の README.md にビルドの手順が記載されています。
https://github.com/pytorch/audio/tree/v0.9.1
これを参照して、ビルドを進めます。

ソースコードのダウンロード

適当なディレクトリを作成して、ソースコードをダウンロードします。

git clone --depth 1 --recursive https://github.com/pytorch/audio -b v0.9.1

ビルド

v0.9.1 の README.md (https://github.com/pytorch/audio/tree/v0.9.1) を参照しつつ、ビルドを進めます。念のために pytorch のビルドの設定と同じ設定にしました。

$ export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
$ export USE_CUDA=1 USE_CUDNN=1 TORCH_CUDA_ARCH_LIST="3.0"
$ export MAX_JOBS=2  (任意)
$ BUILD_SOX=1 python setup.py install

"BUILD_SOX=1" を忘れないようにします。
これで、ビルド、インストールが完了しました。

テスト

torchaudio のソースコードの audio/test/ には、テスト用のスクリプトがあります。torchaudio の以下の記事には、テスト方法の説明があります。
https://github.com/pytorch/audio/tree/v0.9.1/test/torchaudio_unittest
以下のコマンドにより、複数のテストが順番に行われます。

$ pytest audio/test

試してみたところ、こんな結果になりました。
= 1098 failed, 2977 passed, 1657 skipped, 4 xfailed, 171 warnings in 2416.05s (0:40:16) =

以下のファイルは、ファイル名とタイムスタンプとから、先ほどのテストの失敗の記録と思われます。
audio/.pytest_cache/v/cache/lastfailed
ファイルの中を見てみると、MockedLoadTestのエラーとMockedSaveTestのエラーがほとんどでした。これらのエラーは、計算自体には影響ないと思います。気になるエラーは、autograd_cuda_test.pyのエラーです。

テストを行って結果を見てみます。

pytest audio/test/torchaudio_unittest/transforms/autograd_cuda_test.py

"CUDA out of memory"のエラーが発生していました(これは、仕方ないです・・・)

いろいろな計算で遊ぶには、十分な気もします。