前提・実現したいこと
ubuntu20.04
NVIDIA GeForce RTX 3060
cuda10.1
cudnn 7.6
tensorflow 2.3
tensorflow-gpu 2.3を使用しています
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
こちらを実行しますと下記のエラーが発生してしまいます。
tensorflow2.2にしますとエラーは消えますができれば2.3のままでやりたいと考えています。
申し訳ございませんがご教示いただけないでしょうか。
宜しくおねがい致します。
発生している問題・エラーメッセージ
RuntimeError: CUDA runtime implicit initialization on GPU:0 failed. Status: device kernel image is invalid
###追記
2021-12-07 22:06:15.238294: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0 2021-12-07 22:06:16.727416: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set 2021-12-07 22:06:16.727936: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1 2021-12-07 22:06:16.737630: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-12-07 22:06:16.737796: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: pciBusID: 0000:01:00.0 name: NVIDIA GeForce RTX 3060 computeCapability: 8.6 coreClock: 1.837GHz coreCount: 28 deviceMemorySize: 11.77GiB deviceMemoryBandwidth: 335.32GiB/s 2021-12-07 22:06:16.737829: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0 2021-12-07 22:06:16.739607: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.11 2021-12-07 22:06:16.739646: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.11 2021-12-07 22:06:16.740312: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10 2021-12-07 22:06:16.740497: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10 2021-12-07 22:06:16.742090: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10 2021-12-07 22:06:16.742534: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.11 2021-12-07 22:06:16.742649: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.8 2021-12-07 22:06:16.742757: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-12-07 22:06:16.742942: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-12-07 22:06:16.743070: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0 2021-12-07 22:06:16.743518: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set 2021-12-07 22:06:16.743582: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-12-07 22:06:16.743704: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: pciBusID: 0000:01:00.0 name: NVIDIA GeForce RTX 3060 computeCapability: 8.6 coreClock: 1.837GHz coreCount: 28 deviceMemorySize: 11.77GiB deviceMemoryBandwidth: 335.32GiB/s 2021-12-07 22:06:16.743738: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0 2021-12-07 22:06:16.743758: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.11 2021-12-07 22:06:16.743788: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.11 2021-12-07 22:06:16.743821: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10 2021-12-07 22:06:16.743839: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10 2021-12-07 22:06:16.743855: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10 2021-12-07 22:06:16.743871: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.11 2021-12-07 22:06:16.743887: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.8 2021-12-07 22:06:16.743928: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-12-07 22:06:16.744099: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-12-07 22:06:16.744195: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0 2021-12-07 22:06:16.744251: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0 2021-12-07 22:06:17.045351: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1261] Device interconnect StreamExecutor with strength 1 edge matrix: 2021-12-07 22:06:17.045377: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1267] 0 2021-12-07 22:06:17.045398: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1280] 0: N 2021-12-07 22:06:17.045575: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-12-07 22:06:17.045762: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-12-07 22:06:17.045945: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2021-12-07 22:06:17.046078: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10669 MB memory) -> physical GPU (device: 0, name: NVIDIA GeForce RTX 3060, pci bus id: 0000:01:00.0, compute capability: 8.6)
###pip3 list(keras,tensorflow,pytorch関係)
Package Version ---------------------------- --------------------- keras 2.7.0 Keras-Applications 1.0.8 Keras-Preprocessing 1.1.2 keras-resnet 0.2.0 tensorboard 2.7.0 tensorboard-data-server 0.6.1 tensorboard-plugin-wit 1.8.0 tensorboardX 2.4 tensorflow 2.4.0 tensorflow-addons 0.13.0 tensorflow-estimator 2.4.0 tensorflow-gpu 2.4.0 tensorflow-io-gcs-filesystem 0.22.0 torch 1.7.1 torchaudio 0.7.2 torchvision 0.8.2
> NVIDIA GeForce RTX 3060
cuda10.1
cudnn 7.6
RTX 3060は
https://www.nvidia.com/ja-jp/geforce/graphics-cards/30-series/rtx-3060-3060ti/
によるとAmpereアーキテクチャなので、
https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html
によるとCUDA 10は対応してません
正式に対応してない組み合わせなので、どんな不具合が発生してもおかしくありません
> tensorflow2.2にしますとエラーは消えます
そのエラーが出てないだけで、気が付いてないところで不具合が発生してるかもしれません
https://www.tensorflow.org/install/source?hl=ja
の「テスト済みのビルド構成」の表の内容も考慮すると、下記のどちらかの組み合わせで使うことをお勧めします
・tensorflow-2.4.* + CUDA 11.0 + cuDNN 8.0
・tensorflow-2.5.0以上 + CUDA 11.2 + cuDNN 8.1
> tensorflow 2.3
tensorflow-gpu 2.3
上記は、どちらかだけ入れるものです
https://teratail.com/questions/371576
の質問のエラーは、両方入ってる状態で発生し、tensorflow-gpuしか入ってない状態にしたら直りました
ご返信ありがとうございます。
tensorflow-2.4.0 + CUDA 11.0 + cuDNN 8.0に変更し、エラーはなくなったように見えますがうまく起動ができていません。追記で追加させてもらいましたがエラーのようなものはありますでしょうか。
申し訳ございませんがよろしくお願い致します。
pip list
で表示される中で、「tensorflow」が付く行を全部教えてください
もしAnaconda使ってるなら
conda list
で
ご返信ありがとうございます。
質問の方で、「pip3 list(keras,tensorflow,pytorch関係)」で追加させてもらいました。
こちらでよろしいでしょうか。
よろしお願いいたします。
> tensorflow 2.4.0
> tensorflow-gpu 2.4.0
まだ、両方入れてるのですね
https://www.tensorflow.org/install/pip?hl=ja
https://www.tensorflow.org/install/gpu?hl=ja
に書かれてるように、TF 1ではCPU版とGPU版が分かれてましたが、 TF 2ではCPU版とGPU版の区別が無くなったので、「-gpu」が付いてない方をインストールしても、GPUが使えたら使ってくれます
また、
https://pypi.org/project/tensorflow/#files
https://pypi.org/project/tensorflow-gpu/#files
で、「-gpu」の有無以外は同じファイル名のファイルサイズを比べたら全く同じですよね
そのことからも分かるように、両者は同じもので、名前が違うだけです
それを両方入れてるのだから、質問者さんのパソコンには、実際は同じものを2重にインストールしてることになります
実際は同じものなので、多くのファイルは上書きされてるのですが、pipやpythonは違うものがそれぞれ入ってると認識します
(pip listで別に表示されるので)
そのことが、現在発生してる不具合の原因かどうかは分かりませんが、上記は正常な状態では無いので、解消して片方だけインストールされてる状態にした方がいいと思います
たぶん下記のようにしたら、「-gpu」が付いてない方だけがインストールされた状態になると思います
(それぞれでインストール→アンインストールをしてキレイに消してから、最後に使いたいのをインストールする)
pip install --upgrade --no-deps --force-reinstall tensorflow-gpu==2.4.0
pip uninstall tensorflow-gpu -y
pip install --upgrade --no-deps --force-reinstall tensorflow==2.4.0
pip uninstall tensorflow -y
pip install tensorflow==2.4.0
「-gpu」が付いてる方だけがインストールされた状態にしたければ、上記の最後の行を下記に変えてください
(上に書いたように、どちらを入れても実質同じことになるはずですが)
pip install tensorflow-gpu==2.4.0
> うまく起動ができていません。追記で追加させてもらいましたがエラーのようなものはありますでしょうか。
「追記」の部分は、問題有りそうなものは見当たりません
うまく起動できないとは、具体的にどうなるのでしょうか?
https://www.dan-myblog.com/post/52/#3
の「確認方法その1」の例の「...device_type: "GPU"...」みたいなのが表示されない、ということでしょうか?
その場合、上記Webページの「確認方法その2」をやったら、どうなりますでしょうか?
AmpereアーキテクチャGPUとCUDA 10の組み合わせだと、「...device_type: "GPU"...」みたいなのが表示されるまでにかなり時間がかかることがあるようです
https://teratail.com/questions/312270
もし、CUDA 10を残したままCUDA 11をインストールしたならば、残ってるCUDA 10が何か悪さをしてるかもしれないので、CUDA 10を完全に削除してから、パソコンを再起動してみてください
CUDA 10を既に削除してあっても、もしCUDA 11インストール後にパソコンを再起動してなければ、再起動してみてください
ご返信ありがとうございます。
確認方法1
incarnation: 15421913540179935170
physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 3060, pci bus id: 0000:01:00.0, compute capability: 8.6"
確認方法2
406] Created TensorFlow device (/device:GPU:0 with 10485 MB memory) -> physical GPU (device: 0, name: NVIDIA GeForce RTX 3060, pci bus id: 0000:01:00.0, compute capability: 8.6)
True
上記のように、gpuは問題なく認識しているように思えます。
>うまく起動できないとは、具体的にどうなるのでしょうか
エラーが起きず強制終了してしまうという現象なんですが
以前までは、gtx1650を使用していまして、cudaのout of memoryというエラーが発生していました。
その際、下記のようなコードを入れると動くような状態となっていました。
os.environ['CUDA_LAUNCH_BLOCKING'] = "1"
os.environ['TF_FORCE_GPU_ALLOW_GROWTH']='true'
torch.rand(1).cuda()from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
ですが、今回はそれもうまくいっていない状態です。
こちらのサイトをみてprint(os.getenv('TF_FORCE_GPU_ALLOW_GROWTH'))を試したとことtrue
if CUDA:
model.cuda()
こちらもTrueでした。
申し訳ございませんがどのようにすればよいかご教示いただけないでしょうか。
よろしくお願い致します。
https://www.tensorflow.org/tutorials/keras/classification?hl=ja
や
https://www.tensorflow.org/tutorials/images/cnn?hl=ja
の「Download notebook」からjupyterのノートブックをパソコンにダウンロードして、それをそのまま全部実行してみてください
それでもダメでしょうか?
ご返信ありがとうございます。
「classification.ipynb」こちらを実行しましたが最後の9という予測まではたどり着きました。
> 「classification.ipynb」こちらを実行しましたが最後の9という予測まではたどり着きました。
それでしたら、
> エラーが起きず強制終了してしまう
は、質問者さんが動かそうとしてるモデル(コード)に依存する現象なので、モデル(コード)の情報が開示されないと他人には何が起きてるか分からないし、この質問の当初の内容からかなりずれてるので、そのエラーに付いては別の質問にしてください
承知しました。
また、ご親切に対応していただきありがとうございました。
回答2件
あなたの回答
tips
プレビュー