質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

PytorchがCUDAを正しく認識しない(Path・バージョン確認済み)

TDL
TDL

総合スコア1

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0グッド

0クリップ

1314閲覧

投稿2022/11/21 09:09

編集2022/11/21 13:12

前提

anaconda上でPytorchの環境構築を行いたいです。
以前誤ってCUDA11.8でインストールしてしまったため11.7を入れなおすことに挑みましたが、GPUが認識されません。また、Pathは11.7に通っており、11.8は削除済みにかかわらず、11.8が認識されているようです。

環境

  • Windows11
  • anaconda
  • Pytorch 1.13
  • CUDA 11.7

実現したいこと

PytorchにGPUを認識させる

発生している問題・エラーメッセージ

nvidia-smi

追記

こちらは対応の最新バージョンを示すもので、CUDAはv11.7がインストールされているようです。

Mon Nov 21 17:49:45 2022 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 522.06 Driver Version: 522.06 CUDA Version: 11.8 | |-------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA GeForce ... WDDM | 00000000:01:00.0 Off | N/A | | N/A 38C P0 13W / N/A | 0MiB / 4096MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+

path

# システム PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp; C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\NVIDIA Corporation\Nsight Compute 2022.2.1\;C:\Users\UN\AppData\Local\Microsoft\WindowsApps;;C:\Users\UN\AppData\Local\Programs\Microsoft VS Code\bin # ユーザー %USERPROFILE%\AppData\Local\Microsoft\WindowsApps; C:\Users\UN\AppData\Local\Programs\Microsoft VS Code\bin; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\libnvvp;

CUDA

C:\Users\UN>nvcc -V >> nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Wed_Jun__8_16:59:34_Pacific_Daylight_Time_2022 Cuda compilation tools, release 11.7, V11.7.99 Build cuda_11.7.r11.7/compiler.31442593_0

CUDNN

C:\Users\UN>where cudnn64_8.dll >>:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin\cudnn64_8.dll

試したこと

  1. v11.8との共存に挑戦

こちらを行った
→Pytorchに認識させること以外は成功した。
2. v11.8の削除に挑戦
上記のPathを全て手入力で11.7に変更(つまり、11.8の際に登録したPathを全て11.7で上書きした)
→CUDNN以降認識しない;何故?

エラー原因の候補

  • CUDA:多分違う。(が何故v11.8が認識されている?;やっぱり違うかもしれない)
  • cuDNN:多分これ(そもそもDLした後何をどこにどうやって移すかが分かっていない可能性があるため;ここではzipを解凍して中のcudnn-windows-x86_64-8.6.0.163_cuda11-archiveの中身のbinなどを全てC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7の中に上書きで移した。)
  • path : 通っているし多分違う
  • pytorch:そもそもこいつに合わせてやっているから違う

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

Sobasenbei

2022/11/21 11:08

再起動しても変わりませんか? また、ユーザ環境変数でなくシステム環境変数の方のcudaのpathは合ってますか
TDL

2022/11/21 11:25

再起動は複数回確認しました。 Pathについても、同様です
Sobasenbei

2022/11/21 12:25

自分の見てみたら cudnn64_8.dll でした
Sobasenbei

2022/11/21 12:25

バージョンで最後の数字は変わると思われます
TDL

2022/11/21 12:59

確認したところ同様に下記が返ってきました。 するとanaconda固有の問題なのでしょうか...? :\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin\cudnn64_8.dll
matukeso

2022/11/21 13:51 編集

anacondaのPyTorchは自分用のcudnnをlib/site-packages/torch/libに持っているので、ほかのマイナーバージョンのcudnnがパスに通っているとまずいのでは。
Sobasenbei

2022/11/21 13:23

それはちゃんと通っている証拠ですね pytorchのホームページに書いてるインストール方法はやってみましたか? pytorch-cuda が必要らしいですが
ujimushi_sradjp

2022/11/21 13:35

Windowsは使っていないので想像ですがAnacondaって自前で用意したcudnnとかインストールしてそちらを使うんじゃなかったかと思います。 一度Anacondaのパッケージ等が保存されているフォルダ内を確認してみては?
jbpb0

2022/11/21 22:53 編集

https://discuss.pytorch.org/t/install-pytorch-for-cuda-11-3-with-pip/152299/2 のptrblckさんの最初のコメントに 「The pip wheels and conda binaries ship with their own CUDA runtime as well as cuDNN, NCCL etc. and won’t be using the system CUDA toolkit.」 と書かれてるので、 https://pytorch.org/get-started/locally/ で「CUDA...(どれか)」を選択したら表示されるインストールコマンドを実行して、pipかcondaでインストールした場合は、pytorchを普通に実行する際にOSにインストールされてるcudaは使われないはずです (pythonがanacondaかどうかとは無関係に) その場合にOSで行うのは、 https://www.nvidia.co.jp/Download/index.aspx?lang=jp から使ってるgpuに合うドライバを落としてインストールするだけです OSに別途cudaをインストールする必要はありません OSに別途cudaがインストールされてる場合でも、そのcudaのバージョンやPathの設定は、pytorchがgpuを認識するかどうかには関係しないはずです > PytorchにGPUを認識させる 現状では、下記を実行したらFalseになるのでしょうか? print(torch.cuda.is_available()) なお、どんな場合にOSに別途cudaをインストールしないといけないのかは、 https://discuss.pytorch.org/t/install-pytorch-for-cuda-11-3-with-pip/152299/5 のptrblckさんの二番目のコメントに書かれてます 「The system-wide installed CUDA toolkit will be used if you are building PyTorch from source or a custom CUDA extenstion.」 「building PyTorch from source」をやる人はあまりいないと思うので、あるとしたら「custom CUDA extenstion」ですかね その場合は、pytorchのインストール時に選択したのと同じバージョンのcudaを別途OSにインストールして、それが使われるようにPathの設定をする必要があると思います 参考 https://torch.classcat.com/2018/05/22/pytorch-tutorial-advanced-cpp-extension/
TDL

2022/11/21 23:56

jbpb0様 ありがとうございます。 ``` print(torch.cuda.is_available()) >False ``` になります。 ujimushi_sradjp様 つまり、cudnnをcondaに移す必要がある認識でしょうか? ご両名の見解をまとめると - そもそもCUDAはインストール不要で、余計にPathを通したからトラブルが生じている - cudnnは必要がある? 上記からの打ち手として - Pathを削除/変更 - cudnnの確認 の認識でよろしいでしょうか?
matukeso

2022/11/22 00:08

cudaのpathが通っているのは関係ないが、cudnnをcudaのフォルダに置いたのが間違い というのが私の推測です。 cudaのpathからの排除でも同じ効果が出るでしょうけど。
jbpb0

2022/11/22 01:41 編集

> cudnnをcondaに移す必要がある そんなことしたらダメです condaが管理してるanacondaのディレクトリパスには、必要ならばcondaやpipがファイルを置いてくれます それ以外のファイルを置くのは、よっぽどな理由(そうしないとバグで動かないとか)がない限り、やらない方がいいです (pythonの詳細を良く理解してる人なら、やってもいいですが) 前のコメントでも紹介しましたが、 https://discuss.pytorch.org/t/install-pytorch-for-cuda-11-3-with-pip/152299/2 のptrblckさんの最初のコメントに 「The pip wheels and conda binaries ship with their own CUDA runtime as well as cuDNN, NCCL etc. and won’t be using the system CUDA toolkit.」 と書かれてるので、pytorchのインストール時に、cudaやcudnn等の必要なものも一緒にanaconda環境下にインストールされてるはずです > Windows11 anacondaは、直接windows上で動かしてるのですよね? wslを使ってるのではなく
jbpb0

2022/11/24 04:44 編集

質問のnvidia-smiの実行結果と、 https://global.discourse-cdn.com/nvidia/original/3X/c/9/c98e104c12454ffeb9a162c6b0c1b669cd734919.png を見比べてみてください 結果の下半分の「Processes:」のところは、pythonからgpuを使ってない状態でも、上記画像のように「explorer.exe」とか、いくつかは動いてるものです 結果の上半分も、下記が変な気がします ・Fanや、PwrのCapが「N/A」 ・Memory-Usageの左が「0MiB」 (pythonが使ってなくても、それ以外の何かが多少は使うだろう) インストールしたドライバは、使ってるgpuの機種に合うやつですよね? また、使ってるgpuの機種は、cuda 11に対応したものですよね? https://docs.nvidia.com/deeplearning/cudnn/support-matrix/ 【追記】 現状でインストールされてるcuda 11.7を使って、 https://symfoware.blog.fc2.com/blog-entry-2395.html の「vector_add.cu」のコンパイルと実行はできますでしょうか? もし正常に実行できないなら、おそらく、インストールしたドライバがちゃんと機能してないのでしょう

回答1

0

自己解決

今回の事例ではドライバーを独自で導入し、パスを通したことが問題だったようです。

解決方法

  1. パスの削除
  2. ドライバを確認してtorchにない場合は再導入:公式のコマンドを使用した
  3. 解決。

投稿2022/11/26 08:29

TDL

総合スコア1

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。