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

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

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

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

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

PyTorch

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

Python

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

Q&A

解決済

1回答

1882閲覧

pytorchをGPUで動かしたい

wefoiwa

総合スコア12

CUDA

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

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

PyTorch

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

Python

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

0グッド

1クリップ

投稿2023/07/31 00:49

編集2023/07/31 02:09

実現したいこと

  • pytorchをGPUで動かしたい。

前提

初心者です。よろしくお願いします。

導入してあるCUDAは以下の通りです。

nvidia-smi >>> 略〜 CUDA Version: 11.3

以下に示すようにcondaで環境を作っています。

(base)~$ conda create -n name Python=3.8 jupyterlab nodejs (base)~$ conda activate name (name)~$ conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

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

torch.cuda.is_available()でFalseが出ます。
GPUを使いたいため、Trueが出ることを期待してます。

(name)~$ python >>> import torch >>> torch.cuda.is_available() False >>> torch.cuda.current_device() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/anaconda3/envs/name/lib/python3.8/site-packages/torch/cuda/__init__.py", line 482, in current_device _lazy_init() File "/home/anaconda3/envs/name/lib/python3.8/site-packages/torch/cuda/__init__.py", line 211, in _lazy_init raise AssertionError("Torch not compiled with CUDA enabled") AssertionError: Torch not compiled with CUDA enabled

試したこと

cudaのバージョンとの互換性の問題かと思い、最新Stableのpytorch==2.0.1ではなく、公式サイトのprevious versionsページから上記を参考に、cuda11.3用のpytorch==1.12.1などを上記の通り導入しましたが、うまくいきませんでした。また、conda仮想環境を最初から作り直したりしましたがダメでした。pipで入れることも考えていますが、condaとpipを混ぜない方がいいと思っているので、できればcondaで入れたいなと思っています。pipでも問題ないならそれでもいいと思っています。この点ご意見いただけると嬉しいです。
既存の質問や他のサイトを見ても、バージョンを一致させればできました、で終わっていることが多く、何が問題かもわかっていない状態です。

補足情報(FW/ツールのバージョンなど)

conda 23.5.2

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

OSが不明ですが
https://pytorch.org/get-started/previous-versions/#linux-and-windows-4
にあるコマンドの通りにすればよいかと。
質問で実行しているコマンドには-c nvidiaがないので、CPU Only を指定していることになるのでは。

おそらくですがこれでインストールすると、conda側にCUDAのバイナリが入って、OS側のCUDAは使われないと思われます。
nvidia driverのバージョンを気にすればいいはずです。

投稿2023/07/31 02:03

編集2023/07/31 13:53
quickquip

総合スコア11133

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wefoiwa

2023/07/31 02:18

ありがとうございます。 OSはubuntuです。 ご提示いただいたページのv1.12.1の# CUDA 11.3のコード「conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch」をそのまま使っています。 -c nvidiaというのはv1.13.0以降のコマンドでしか主に使われていないようですが、このあたりの知識がなく、この違いがなにか正直わかっておりません。 ご回答の後半部分に関して、nvidia driverというのは、ncidia-smiを実行したときに出てくる、Driver Version: 46x.xx.xxのことでしょうか。これを気にするというのは、具体的にどうしたらいいのでしょうか。
quickquip

2023/07/31 02:39

3つコマンド例があって上に#付きコメントで # CUDA 11.6 conda install (以下略) # CUDA 11.7 conda install (以下略) # CPU Only conda install (以下略) と書いてありますよね。 ここは、CUDA 11.6を入れたい時はこう、CUDA 11.7を入れたい時はこう、CPUだけの時はこう、という3例を載せてますよ、と読まないといけませんよ、そしてCPUだけの時の例を打ってませんか? それだとCPUだけしか使われないのは当然ですよね? という回答でした。
quickquip

2023/07/31 02:41

> ご回答の後半部分に関して、nvidia driverというのは、ncidia-smiを実行したときに出てくる、Driver Version: 46x.xx.xxのことでしょうか。これを気にするというのは、具体的にどうしたらいいのでしょうか。 トラブルが起きた時に気にしないといけないのは「OSに入っているCUDAのバージョン」ではなくて「OSに入っているnividia-driverのバージョン」です。という意味で、それ以上でもそれ以下でもないです。 「nvidia-smi はインストールされているDriver Versionのバージョンを出すとは限らない」ので実際は nvidia-smi で出てくるバージョンを見てはいけません。 dpkg -l | grep nvidia-driver でインストールされているパッケージを見る modinfo nvidia|grep version: でカーネルモジュールから調べる cat /proc/driver/nvidia/version してみる とかいろいろあります。 CUDAは入ったっぽいのにうまくいかない、みたいな時に質問にこの情報を載せて欲しいのですが、現状では気にしなくていいと思います。
wefoiwa

2023/07/31 07:20

> CUDA 11.6を入れたい時はこう、CUDA 11.7を入れたい時はこう CUDA platformを使うためのcudatoolkitだと思っていたので、CUDA 11.6を入れ"た"時はこう、CUDA 11.7を入れ"た"時はこうだと思っていました。よって、私の環境のCUDA11.3の場合は、pytorchのv1.12.1が最新なのだと思っていました。 > CPUだけの時の例を打ってませんか? 確認しましたが、最初に実行している「conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch」はGPU用のコードです。cpuonlyは含みません。 > nvidia driverのバージョンを気にすればいいはすです。 > CUDAは入ったっぽいのにうまくいかない、みたいな時に質問にこの情報を載せて欲しいのですが、現状では気にしなくていいと思います。 cat /proc/driver/nvidia/versionを実行したところ、Version: 46x.xx.xxと出てきました。CUDAは入っていると思います。気にすることが解決策とはならないので、気にした上で何を行ったらいいのかご教示いただけないでしょうか、という意味のコメントでした。 quickquip様のご意見を受けて、試しに「conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia」を実行してみましたが、依然としてtorch.cuda.is_available()=Falseとなっています。 試しに「pip3 install torch torchvision torchaudio」を実行したところ、Trueが返ってくるようになりましたが、condaとpipを混ぜるとあまり良くないと思いますので、condaで解決できる方法があれば、ご教示いただけますと幸いです。
quickquip

2023/07/31 13:54 編集

失礼しました。自分でもどう読み間違えたか分からないのですが、pytorch 1.12以前(1.13未満)はおっしゃるとおり、システムとは別のcudaが入ってくるということはないはずです。それだけ追記しましたので、この回答は捨て置いてください。 追記: 1.12でもcudaのバイナリ付きでpytorchが配布されているようです。このコメントが間違いだったようです。
quickquip

2023/07/31 13:55 編集

とりあえずCUDA 11.3が入っているUbuntu 20.04 LTSで $ conda create -n name Python=3.8 $ conda activate name $ conda install "pytorch==1.12.1" "torchvision==0.13.1" "torchaudio==0.12.1" "cudatoolkit=11.3" -c pytorch で特に問題はなかったです。 conda list した時、pytorchのバージョンが pytorch 1.12.1 py3.8_cuda11.3_cudnn8.3.2_0 pytorch になっていました。 このバージョン表記からするとCUDA入りでインストールされているかもしれません。(一つ前のコメントが嘘だったことになります。すみません)
wefoiwa

2023/08/01 12:11

返信が遅くなりすみません。 ご丁寧にありがとうございます。 CUDAとの関係が難しいですね。。。散々お時間取らせてしまいましたが、まだ混乱している状態なので、少し落ち着いて調べてみます。。。 ありがとうございました。 (とりあえずpipで導入したもので実験し始めて、condaでの環境構築が解決したら、移行することにしようと思います。)
jbpb0

2023/08/01 21:52 編集

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は使われないはずです https://pytorch.org/get-started/previous-versions/ の「CUDA...」のコマンドを実行してインストールする場合も同様のはず 質問者さんが、condaでインストールしたらダメで、pipでインストールしたら大丈夫なのは、謎ですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.41%

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

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

質問する

関連した質問