あきらぼ

テック系ブログ

Tensorflowで「Loaded cuDNN version 8400」からのクラッシュ

Tensorflowでモデルを回そうとしたところEpoch一回目で、以下のメッセージがでて、その後クラッシュしてしまいました。

Epoch 1/10
2022-04-24 22:44:52.714618: I tensorflow/stream_executor/cuda/cuda_dnn.cc:368] Loaded cuDNN version 8400

cuDNNのバージョンミスマッチでしょうか。
cuDNNが v8.4
Tensorflow v2.8.0
Cudaのバージョンがv11.6になります。



Tensorflowのバージョンはpythonで以下のコードで確認することができます。

import tensorflow as tf
print(tf.__version__)

コマンドプロンプト上で以下のコマンドでCudaのバージョンを確認できます。

nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_Mar__8_18:36:24_Pacific_Standard_Time_2022
Cuda compilation tools, release 11.6, V11.6.124
Build cuda_11.6.r11.6/compiler.31057947_0

cuDNNのバージョンはインストールされているディレクトリの
include/cudnn_version.h
のファイルに記載されています。

/**
 * \file: The master cuDNN version file.
 */

#ifndef CUDNN_VERSION_H_
#define CUDNN_VERSION_H_

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 4
#define CUDNN_PATCHLEVEL 0

#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#endif /* CUDNN_VERSION_H */

とりあえず急ぎではないので以下の方法でGPU無効化してTensorflow自体は動くことは確認済みです。

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'

回答はありませんが、同様のエラーの人もいるようですね。
https://forums.developer.nvidia.com/t/use-gpu-for-tensorflow-crashes/208849

追記

やはりcuDNNのバージョンによるものでした。
私の上記環境であれば、cuDNNのv8.2.4 for Cuda 11.4でTensorflowをGPUで動かすことできました。

ちなみにTensorflowの検証済み環境を使用するのが一番無難だとは思います。
www.tensorflow.org