将 nvidia 驱动程序从 384.90 升级到 384.111 后出现 CUDA/cuDNN 错误

Posted

技术标签:

【中文标题】将 nvidia 驱动程序从 384.90 升级到 384.111 后出现 CUDA/cuDNN 错误【英文标题】:CUDA/cuDNN error after upgrading nvidia drivers from 384.90 to 384.111 【发布时间】:2018-06-19 17:28:02 【问题描述】:

今天早上,我使用标准更新程序(使用更新管理器)更新了 Mint 18.3 Sylvia(基于 Ubuntu xenial 16.04)上的 nvidia 驱动程序,运行 tensorflow 1.4.1 时出现此错误:

2018-01-10 13:48:39.161422: E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2018-01-10 13:48:39.161456: E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2018-01-10 13:48:39.161466: F tensorflow/core/kernels/conv_ops.cc:667] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms) 

我正在使用 cuda 8.0 和 cudnn 7.0

为什么以及如何解决它?

【问题讨论】:

这是一个编程问题(“帮助,apt-get update 破坏了我的 linux!”)? 嗯,CUDA 和 tensorflow 通常用于编程,而不是阅读电子邮件。我在运行我正在处理的项目时遇到了这个异常,我认为在这里分享解决方案是个好主意。有几个关于 cuda/cudnn 安装问题的问题。 【参考方案1】:

调查了一段时间后,我注意到 /usr/lib/nvidia-384 文件夹中有两个断开的链接,仍然指向 384.90 文件。

所以我只是像这样更新了两个链接:

ln -sf libnvidia-ptxjitcompiler.so.384.111 libnvidia-ptxjitcompiler.so.1
ln -sf libnvidia-wfb.so.384.111 libnvidia-wfb.so.1

现在它可以完美运行了。

顺便说一句,我遇到的另一个类似问题是,当我从主要驱动程序版本升级到另一个版本时,例如从 372 升级到 384,忘记更新脚本中的 LD_LIBRARY_PATH。

【讨论】:

以上是关于将 nvidia 驱动程序从 384.90 升级到 384.111 后出现 CUDA/cuDNN 错误的主要内容,如果未能解决你的问题,请参考以下文章

无法升级 NVidia 软件包

Ubuntu用户怎样安装Nvidia最新显卡驱动

NVIDIA DOCA 将如何在中国绘制技术发展全景图

NVIDIA 安装程序无法继续,此NVIDIA驱动程序与此Windows版本不兼容

如何安装nvidia显卡驱动啊?

如何使用 DKMS 将 NVIDIA .run 驱动程序重新打包到 .deb 中