前提
音声AIの学習がしたいと思い、Qiita上の記事( https://qiita.com/seichi25/items/fc6c22042f926baa08e6 )を参考にESPNetの環境構築を行っています。
しかし、当該記事の「cudaがちゃんと動くか確認」にて、print(torch.cuda.is_available())
を行うとFalseとなります。
おそらく、torchがcudaを認識できていない、あるいはcudaがインストールできていないのだと思われますが、どのように解決すべきかわかりません。
実現したいこと
- ESPNetの環境構築を完了させる。
- print(torch.cuda.is_available())にてTrueを出力させる。
- その後、エラーなくESPNetを使用した学習を行う。
発生している問題・エラーメッセージ
当該記事における確認手順は全て行い、全て記事通りの結果となりました。
試したこと
Qiitaの記事「pytorchのtorch.cuda.is_available()がFalseを出す問題」( https://qiita.com/nabenabe0928/items/7962dcf3030889667de4 )にてNVIDIA-driverが動作していないことが原因として考えられるとあったため、Ubuntu上で$ nvidia-smi
で確認したところ、
Failed to initialize NVML: GPU access blocked by the operating system Failed to properly shut down NVML: GPU access blocked by the operating system
というエラーが出ました。OSによってGPUアクセスが防がれているということらしいので、Ubuntuを管理者権限で起動し、もう一度$ nvidia-smi
で確認を行ったが、同じエラーが出ました。
PowerShell上ではしっかりと認識されていました。
このエラーについて、StackOverFlawの記事( https://stackoverflow.com/questions/70011494/why-does-nvidia-smi-return-gpu-access-blocked-by-the-operating-system-in-wsl2 )が見つかったため、解決策をみると、PowerShell上で$ wsl --update
を行い、WindowsOSバージョンを21H2以上にすると良いとありました。21H1止まりだったので22H2にアップデートしました。すると、python上でimport torch
の時点でエラーが発生しました。
Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'torch'
モジュールがないとのことだったので最初のQiita上の記事の4. ESPNetの環境構築をもう一度行い、この問題を解決しようとしました。しかし、何故かアップデートしたはずのWindowsのバージョンが21H1に戻ってしまい、import torch
はうまくいくようになりましたが、print(torch.cuda.is_available())
はFalseとなりました。
Ubuntsuのバージョン(20.04)が悪い可能性も考えられたので、調べて見るとESPNetのGithub( https://github.com/espnet/espnet )にて、ubuntu20/python3.8の場合にはESPNetの1.12.1をインストールする必要がありそうでした。もう一度Windowsのバージョンを22H2にしてから、最初のQiita記事に掲載されている、4. ESPNetの環境構築の一連のコマンドを、ESPNetのバージョン(1.12.1)とCUDAのバージョン($ apt show cuda
にて11.6と確認)を踏まえて以下のように変更し、実行しました。
git clone https://github.com/espnet/espnet cd espnet/tools ./setup_anaconda.sh miniconda espnet 3.8 make TH_VERSION=1.12.1 CUDA_VERSION=11.6 cd miniconda/bin ./conda init cd ../../../ esp_root=`pwd` echo "export ESPNET_ROOT=$esp_root" >> ~/.bashrc mkdir data_root echo "export TTS_DATA_ROOT=${esp_root}/data_root" >> ~/.bashrc source ~/.bashrc conda activate espnet pip install matplotlib pyopenjtalk==0.2.0 gdown espnet_model_zoo cd egs2 echo "espnet is installed."
これを行ったあと、問題が解決しているか確認しましたが、依然としてFalseが出力されています。
補足情報(FW/ツールのバージョンなど)
Windows10 バージョン22H2
Ubuntu バージョン20.04
GPU GTX 1660Ti
ご不明な点がございましたら、お手数ですがコメントまでお知らせください。
何卒、ご教授おねがいします。

回答1件
あなたの回答
tips
プレビュー