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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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回答

5394閲覧

condaでインストールしたCUDAのバージョンが反映されない?(nvcc -Vと異なる)

tetsutail_study

総合スコア25

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クリップ

投稿2022/05/12 06:47

conda仮想環境に以下のようにしてcudnnとcudaをインストールしました。

conda install cudnn=8.2.1=cuda11.3_0

仮想環境内で認識されるCUDAのバージョンがnvcc -Vコマンドで出力されるバージョンと一致することを期待したのですが、結果は異なるバージョンが表示されていました。

(gg) user@dgx1:~/Projects/M/gangealing$ conda list | grep cu cudatoolkit 11.3.1 h2bc3f7f_2 cudnn 8.2.1 cuda11.3_0 ncurses 6.3 h7f8727e_2 (gg) user@dgx1:~/Projects/M/gangealing$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.243

これは、何かしらの原因でインストールに失敗していることになるのでしょうか?
もしそうだとしたら、仮想環境内で指定したCUDAのバージョンになるような解決方法を教えていただきたいです。

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

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

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

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

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

jbpb0

2022/05/12 07:24 編集

cudaをcondaで入れたこと無いので詳細は分かりませんが、下記を見ると、「cudnn」とは別に「cudatoolkit」もcondaで入れてますね https://yann-leguilly.gitlab.io/post/2019-10-08-tensorflow-and-cuda/ > conda install cudnn=8.2.1=cuda11.3_0 でインストールされるのはcudnnだけで、cuda本体は含まれてないのでは?
jbpb0

2022/05/17 06:07 編集

> 「cudatoolkit」は「cudnn」インストール前の環境に入っていました。 https://anaconda.org/anaconda/cudatoolkit/files から「cudatoolkit-11.3.1-h2bc3f7f_2.tar.bz2」を落として展開して、含まれてるファイルを確認したら、cudaのライブラリ(libcudart.soとか)は入ってますが、「nvcc」は入ってませんでした 「nvcc -V」で実行してる「nvcc」は、condaで入れたのとは別のcudaのではありませんか? 下記を実行して、「nvcc」の場所(パス)がどこか確認してみてください それがcondaの仮想環境下ではないなら、condaで入れたのとは別のでしょうね which -a nvcc
tetsutail_study

2022/05/12 08:28

/opt/cuda/10.1/bin/nvcc このように出てきました。これは、仮想環境のとは違うっぽいですかね?? ↓仮想環境内でも conda install -c conda-forge nvcc_linux-64 でnvccをインストールして、nvcc -Vを実行したところ、以下のようにエラーが出てしまいました。 (gg) t-akatsuka@dgx1:~/Projects/M$ nvcc -V /home/user/.pyenv/versions/anaconda3-5.3.1/envs/gg/bin/nvcc: line 8: /bin/nvcc: No such file or directory ※気になる点として「Version of installed CUDA didn't match package」という文言がnvccインストール時に出てきました。。
jbpb0

2022/05/12 08:53 編集

> /opt/cuda/10.1/bin/nvcc このように出てきました。これは、仮想環境のとは違うっぽいですかね?? anacondaの仮想環境が作られる場所とは全然違うので、別のですよね condaとは別に(aptとかで)cudaを入れてませんか? cuda 10.1のnvccだから、「nvcc -V」で「Cuda compilation tools, release 10.1, V10.1.243」と出るのは、当然ですよね > conda install -c conda-forge nvcc_linux-64 でnvccをインストール そもそも、nvccコマンドは要るのですか? condaでcudatoolkit, cudnnを入れたのは、pythonからcudaを使いたいのですよね? その用途にnvcc要ります?
tetsutail_study

2022/05/12 09:15

> condaでcudatoolkit, cudnnを入れたのは、pythonからcudaを使いたいのですよね? おっしゃる通りで、本来の目的はcudaが必要なコードを動かすことです。 しかし、以下のような経緯から仮想環境内で適用されているCUDA(もしくは正常に適用されているか)を調べたいと考え、nvccを試したいと考えました。 先に示したgithubコードをREADMEにある手順で試そうとしたところ、以下のようなエラーが出ました。 ``` RuntimeError: Error building extension '_splat'da3-5.3.1/envs/gg/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1357, in _jit_compile ``` splat拡張機能というもののビルディングに失敗したとあるのですが、これについてissueで共有者が言及しており、CUDAさえしっかり入っていれば問題ないとのニュアンスでした。 エラーが起きたということは仮想環境内の指定したバージョンcudaが正常に機能していないと考えたため、nvcc -Vコマンドでインストールされたcudaが認識されているか確認しようとしました。 (いくつかの調べた記事で、cudaの確認方法としてnvcc -Vが有効と書かれていたため) nvccでなくても、今仮想環境内でインストールしたcudaは正常に機能しているのかを確認できたら、上記のエラーは他に原因があると考えられ、次に進むことができます。
jbpb0

2022/05/13 13:44

> splat拡張機能というもののビルディングに失敗したとあるのですが、これについてissueで共有者が言及しており、CUDAさえしっかり入っていれば問題ないとのニュアンスでした。 失敗したビルドにcudaのソースからコンパイルする過程が含まれてるのなら、condaで入れたcudatoolkitではビルドできないのではないですかね 上に書いたように、それにはnvccコマンドが含まれてないからです condaで入れるのではなく、(/opt/cuda/10.1にインストールした時と同様に)使いたいバージョン(11.3.1?)のcudaを普通にインストールしたらいいと思うのですが > (いくつかの調べた記事で、cudaの確認方法としてnvcc -Vが有効と書かれていたため) それは、普通にインストールしたcudaの場合で、nvccコマンドが含まれてないcondaで入れたcudatoolkitには当てはまらないと思います
jbpb0

2022/05/18 05:32

> 仮想環境内で認識されるCUDAのバージョン https://github.com/NVIDIA/cuda-python/issues/16 を見ると、pythonが認識してるCUDAのバージョンは、下記を実行したら分かるようです import numba.cuda major, minor = numba.cuda.runtime.get_version() print(str(major) + "." + str(minor))
guest

回答1

0

ベストアンサー

「cudatoolkit」は「cudnn」インストール前の環境に入っていました。

anaconda / packages / cudatoolkit
から「cudatoolkit-11.3.1-h2bc3f7f_2.tar.bz2」を落として展開して、含まれてるファイルを確認したら、cudaのライブラリ(libcudart.soとか)は入ってますが、「nvcc」は入ってませんでした

仮想環境内で認識されるCUDAのバージョンがnvcc -Vコマンドで出力されるバージョンと一致することを期待したのですが、結果は異なるバージョンが表示されていました。

「nvcc -V」で実行してる「nvcc」がcondaで入れたのとは別のcudaの「nvcc」なので、バージョンが異なるのだと思います

下記を実行して、「nvcc」の場所(パス)がどこか確認してみてください
それがcondaの仮想環境下ではないなら、condaで入れたのとは別のでしょうね

sh

1which -a nvcc

投稿2022/05/17 06:06

編集2022/05/17 06:10
jbpb0

総合スコア7651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問