基本过程

今天实验室师兄在服务器运行深度学习训练时候得到报错CUDA initialization: Unexpected error from cudaGetDeviceCount()疑似Cuda与NVIDIA显卡驱动沟通中出现了问题,使用nvidia-smi指令时提示Failed to initialize NVML: Driver/library version mismatch,经过沟通了解到,重启与重新配置Cuda环境均未能解决上述问题。

根据社区类似问题的帖子下工程师的指引,使用nvidia-bug-report.sh输出了报错的基本日志,得到如下关键信息

Oct 21 06:40:46 ubuntu-C621-WD12-IPMI kernel: [676742.295632] NVRM: API mismatch: the client has the version 535.113.01, but

Oct 21 06:40:46 ubuntu-C621-WD12-IPMI kernel: [676742.295632] NVRM: this kernel module has the version 525.105.17. Please

Oct 21 06:40:46 ubuntu-C621-WD12-IPMI kernel: [676742.295632] NVRM: make sure that this kernel module and all NVIDIA driver

Oct 21 06:40:46 ubuntu-C621-WD12-IPMI kernel: [676742.295632] NVRM: components have the same version.

定位基本问题为Cuda版本可能有自动更新,因此跟进/var/log/apt/history.log中,找到关于NVIDIA相关的信息

Install: nvidia-profiler:amd64 (10.1.243-3, automatic), nvidia-cuda-toolkit:amd64 (10.1.243-3), nvidia-visual-profiler:amd64 (10.1.243-3, automatic), nvidia-cuda-dev:amd64 (10.1.243-3, automatic), nvidia-cuda-doc:amd64 (10.1.243-3, automatic), nvidia-cuda-gdb:amd64 (10.1.243-3, automatic)

Upgrade: libnvidia-compute-535:amd64 (535.113.01-0ubuntu0.20.04.1, 535.113.01-0ubuntu0.20.04.3)

因此基本可以断定这次出错是由cuda-toolkit更新连带引起的

解决方案

先尝试通过将libnvidia-compute-535版本降到525版本,发现小版本号依然对不上(之前运维没有及时更新),所以考虑将kernel版本升级到535版本

首先运行sudo apt purge nvidia* libnvidia*准备重新安装,然后运行sudo apt install nvidia-driver-535,再次运行nvidia-smi,问题得解。

思考

在生产环境中应当尽可能避免做敏感升级和安装行为,在安装前最好检查一下要求的工具链,提前做好准备工作

记一次服务器Cuda驱动崩溃修复过程的更多相关文章

  1. 关于CUDA,cuDNN,TF,CUDA驱动版本兼容问题

    实际工作当中,经常维护好几个项目的代码,不同项目依赖的TF版本不一致问题.网上找了好多资料,但是每次遇到的问题都不一样,每次都要去查(就是是一样的问题,解决办法也可能会不一样)每次踩坑无数,今天痛定思 ...

  2. 记一次服务器路由跟踪 (2019-01-23 TODO)

    记一次服务器路由跟踪 有用户反馈网站 无法访问. 现象如下: ping 没有反馈,确认了可以 ping 通其它的网站. tracert 跟踪到服务器商的内部就没的反应了. 同样一家的服务器商,另外一台 ...

  3. 记:第一次更新服务器CUDA和GPU驱动

    因有需求需要改动centos7中的CUDA(更新到10)和GUP 的driver(更新到410)的版本. 事先需要查看原版本的信息,使用nvidia-smi可以查看driver的版本信息(最新的也显示 ...

  4. 记一次血淋淋的MySQL崩溃修复案例

    摘要:今天给大家带来一篇MySQL数据库崩溃的修复案例 本文分享自华为云社区<记一次MySQL崩溃修复案例,再也不用删库跑路了>,作者: 冰 河. 问题描述 研究MySQL源代码,调试并压 ...

  5. centos7.0安装cuda驱动

    00.CUDA简介 CUDA和GPU的并行处理能力来加速深度学习和其他计算密集型应用程序 01.CPU+GPU协同架构 02.部署环境 [docker@lab-250 ~]$ cat /etc/*re ...

  6. 记一次服务器迁移后的nginx启动问题

    背景 服务器A准备下线,故直接将上面的所有应用/资料打包迁移到服务器B.包括搭建的nginx,迁移到B服务器后,楼主偷懒,就想着直接./nginx启动,过程遇到如下问题. ./nginx ./ngin ...

  7. 记一次服务器迁移SVN客户端更换IP

    服务器迁移,SVN服务端IP由原10.58.8.231更换至10.58.1.230   TortoiseSVN更换ip地址操作如下: 打开svn项目的根目录,右键如图操作: 修改ip地址为10.58. ...

  8. 记一次服务器迁移 TFS客户端ip更换

    服务器迁移,TFS服务端IP由原10.58.8.231更换至10.58.1.230 TFS客户端更换ip操作比较复杂,请谨慎操作,避免脱库的风险!!! 打开注册表,运行->regedit 找到H ...

  9. 一个Bug 差点让服务器的文件系统崩溃

    昨天,公司的美国客户发邮件给我,说我的软件出问题了,我查来查去,发现居然是服务器上一个目录无法删除,一删除就报 cannot read from the source file or disk. 如果 ...

  10. 记一次收集APP native崩溃信息

    最近在学习 极客时间Android开发高手课 老师推荐了Breakpad开源库来采集native 的crash1.为什么要使用Google Breakpad? 我们在开发过程中,Android JNI ...

随机推荐

  1. 3D降噪_时域降噪待补充

    视频去噪方法按照处理域的不同可分为空间域.频域.小波域.时域.时-空域去噪等,但是不同域之间的去噪方法会发生重叠现象,或者一种去噪方法会或涉及多个处理域.例如,在时域或时-空域去噪方法中也可使用频域的 ...

  2. Cilium系列-4-Cilium本地路由

    系列文章 Cilium 系列文章 前言 在前文中我们提到, cilium install 默认安装后, Cilium 功能启用和禁用情况如下: datapath mode: tunnel: 因为兼容性 ...

  3. MySQL的索引详解

    在MySQL中,常见的索引类型有以下几种: B-Tree索引: B-Tree(Balanced Tree)索引是MySQL中最常见的索引类型.它基于B-Tree数据结构,适用于等值查询.范围查询和排序 ...

  4. 2022-1-10 控件学习1 TextBlock、Lable、TextBox

    TextBlock LineBreak:在指定位置手动换行和<br/>类似 TextTrimming: CharacterEllipsis没有足够空间时显示...,WordEllpsis以 ...

  5. Mysql高级3-索引的结构和分类

    一.索引概述 1.1 索引的介绍 索引index:是帮助 Mysql 高效获取数据 的 有序的数据结构,在数据之外,数据库系统维护着的满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据 ...

  6. @ControllerAdvice 注解使用及原理探究

    最近在新项目的开发过程中,遇到了个问题,需要将一些异常的业务流程返回给前端,需要提供给前端不同的响应码,前端再在次基础上做提示语言的国际化适配.这些异常流程涉及业务层和控制层的各个地方,如果每个地方都 ...

  7. 让nodejs开启服务更简单--express篇

    上一篇文章说到,nodejs获取客户端请求需要我们自己去处理请求参数.请求方式等,而在express框架内部集成了很多好用的方法,我们不需要从0开始编写各种处理逻辑,这样可以极大提高我们的开发效率~ ...

  8. nginx反向代理常用基本配置

    http反向代理 http { ...     server {     listen 80;         location / {         proxy_pass http://192.1 ...

  9. Json 基于类 Newtonsoft.Json.Linq.JToken 的应用简介【C# 基础】

    〇.前言 在日常开发中,对于 Json 的使用还是比较频繁的,特别是 Json 对象和字符串或者实体对象之间的转换. 虽然几乎天天用,但是总是感觉没那么明了,今天结合微软的 Newtonsoft.Js ...

  10. nflsoj 5926 素数环

    题目非常简单,只需要判断相邻两个数的和是不是素数,素数的判断参考数论 不过要注意的一点是题目说的是一个环,所以首尾两个数的和也要是素数 我在输出的时候加上了 is_prime(path[n-1]+1) ...