<link rel="stylesheet" href="/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css"><div class="htmledit_views" id="content_views"><p><strong>问题</strong>:运行程序时报错 InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version,描述了显卡驱动与CUDA版本不匹配的问题。</p>
目的:解决版本不匹配的问题。
参考:/weixin_36474809/article/details/87804903
目录
一、当前版本查看
1.1 查看CUDA驱动版本
1.2 查看base environment中CUDA运行版本
1.3 查看当前虚拟环境中CUDA版本
二、安装对应
2.1 安装
2.2 检验
name: GeForce GTX 1080 major: 6 minor: 1 memoryClockRate(GHz): 1.835pciBusID: 0000:83:00.0totalMemory: 7.92GiB freeMemory: 1.96GiB-02-20 20:17:15.278289: I tensorflow/core/common_runtime/gpu/:1511] Adding visible gpu devices: 0, 1, 2, 3Traceback (most recent call last):File "config.py", line 214, in <module>args.func(args)File "config.py", line 147, in traindnnlib.submission.submit.submit_run(submit_config, **train_config)File "/home/xxr/NVlabs_noise2noise/dnnlib/submission/submit.py", line 296, in submit_runrun_wrapper(submit_config)File "/home/xxr/NVlabs_noise2noise/dnnlib/submission/submit.py", line 249, in run_wrapperutil.call_func_by_name(func_name=submit_config.run_func_name, submit_config=submit_config, **submit_config.run_func_kwargs)File "/home/xxr/NVlabs_noise2noise/dnnlib/util.py", line 232, in call_func_by_name return func_obj(*args, **kwargs)File "/home/xxr/NVlabs_noise2noise/train.py", line 76, in traintfutil.init_tf(config.tf_config)File "/home/xxr/NVlabs_noise2noise/dnnlib/tflib/tfutil.py", line 77, in init_tfcreate_session(config_dict, force_as_default=True)File "/home/xxr/NVlabs_noise2noise/dnnlib/tflib/tfutil.py", line 100, in create_sessionsession = tf.Session(config=config)File "/home/jcx/.conda/envs/n2n/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1551, in __init__super(Session, self).__init__(target, graph, config=config)File "/home/jcx/.conda/envs/n2n/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 676, in __init__self._session = tf_session.TF_NewSessionRef(self._graph._c_graph, opts)tensorflow.python.framework.errors_impl.InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version
一、当前版本查看
1.1 查看CUDA驱动版本
驱动版本即为cuda driver version
输入nvidia-smi,看到我们服务器上的为:
NVIDIA-SMI 375.26 Driver Version: 375.26
输入cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 375.26 Thu Dec 8 18:36:43 PST
GCC version: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
1.2 查看base environment中CUDA运行版本
运行版本即为cuda runtime version,是在python中安装的cudatoolkit和cudnn程序包的版本
(n2n) jcx@smart-dsp:~/Desktop/xxr/NVlabs_noise2noise$ cat /usr/local/cuda/version.txtCUDA Version 8.0.61(n2n) jcx@smart-dsp:~/Desktop/xxr/NVlabs_noise2noise$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2#define CUDNN_MAJOR6#define CUDNN_MINOR0#define CUDNN_PATCHLEVEL 21--#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL) #include "driver_types.h"
从该图来看,基础环境之中对应关系是没有问题的。
1.3 查看当前虚拟环境中CUDA版本
输入pip list即可看到相应的CUDA,但是在此指令之中,没有看到相应的CUDA版本,可能当前版本中CUDA未安装。
或者输入conda list,看到我们的版本为:我们版本为当前最新版本CUDA,因此需要更新驱动到最新版本。
cudatoolkit 9.2 0
cudnn 7.3.1 cuda9.2_0
二、安装对应
2.1 安装
我们看出是CUDA版本过于新,驱动版本不够新,因此我们安装旧版本的CUDA运行版本,
安装cuda:conda install cudatoolkit=8.0 -c https://mirrors.tuna./anaconda/pkgs/free/linux-64/
Downloading and Extracting Packagescudatoolkit-8.0| 322.4 MB | ####################################################################### | 100%Preparing transaction: doneVerifying transaction: doneExecuting transaction: done
安装cudnn:conda install cudnn=7.0.5 -c https://mirrors.tuna./anaconda/pkgs/main/linux-64/
Preparing transaction: doneVerifying transaction: doneExecuting transaction: done
2.2 检验
输入conda list,看到相应的版本变回与驱动对应的版本
cudatoolkit 8.0 3 https://mirrors.tuna./anaconda/pkgs/free
cudnn 7.0.5 cuda8.0_0 https://mirrors.tuna./anaconda/pkgs/ma
2.3 tensorflow版本安装
一般情况下,版本变动也需要重新安装tensorflow。以免程序报错。
conda install tensorflow-gpu
</div>