modprobe:致命:在目录/ lib / modules /中找不到模块nvidia-uvm

时间:2016-08-18 17:48:22

标签: python tensorflow gpu nvidia

在成功安装和测试使用GPU支持编译的Tensorflow后,我最近遇到了一个问题。

重启机器后,当我尝试运行Tensorflow程序时收到以下错误消息:

...
('Extracting', 'MNIST_data/t10k-labels-idx1-ubyte.gz')  
modprobe: FATAL: Module nvidia-uvm not found in directory /lib/modules/4.4.0-34-generic
E tensorflow/stream_executor/cuda/cuda_driver.cc:491] failed call to cuInit: CUDA_ERROR_UNKNOWN
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:140] kernel driver does not appear to be running on this host (caffe-desktop): /proc/driver/nvidia/version does not exist
I tensorflow/core/common_runtime/gpu/gpu_init.cc:92] No GPU devices available on machine.
(0, 114710.45)
(1, 95368.891)
...
(98, 56776.922)
(99, 57289.672)

Screencapture of error

代码:https://github.com/llSourcell/autoencoder_demo

问题:为什么重新启动Ubuntu 16.04机器会破坏Tensorflow?

2 个答案:

答案 0 :(得分:4)

我实际上解决了自己的问题,并想分享对我有用的解决方案。

神奇的Google搜索是: “modprobe:致命:在目录/ lib / modules /中找不到模块nvidia-uvm”

这导致我在askubuntu上得到以下答案: https://askubuntu.com/a/496146

该答案的作者 Sneetsher 在解释方面做得非常好,如果链接不是404,我会从那里开始。

悬崖笔记

诊断:我怀疑Ubuntu在重新启动时可能已经安装了内核更新。

解决方案:重新安装NVIDIA驱动程序修复了错误。

问题:无法在运行X服务器的情况下安装NVIDIA驱动程序

修复NVIDIA驱动程序的两种不同方法

1)键盘和显示器:

解释askubuntu答案:

  

1)切换到纯文本控制台(Ctrl + Alt + F1或任何到F6)。

     

2)为当前内核(刚刚安装)sudo ./<DRIVER>.run -K

构建驱动程序模块

信誉“Sneetsher”:https://askubuntu.com/a/496146

我没有连接到这台电脑的键盘或显示器,所以这是我实际使用的“无头”方法:

2)通过SSH:

按照本指南重启到控制台:

http://ubuntuhandbook.org/index.php/2014/01/boot-into-text-console-ubuntu-linux-14-04/

$ sudo cp -n /etc/default/grub /etc/default/grub.orig
$ sudo nano /etc/default/grub
$ sudo update-grub

根据以上链接编辑grub文件(3次更改):

  
      
  1. 注释行GRUB_CMDLINE_LINUX_DEFAULT =“quiet splash”,在开头添加#,这将禁用Ubuntu紫色屏幕。
  2.   
  3. 将GRUB_CMDLINE_LINUX =“”更改为GRUB_CMDLINE_LINUX =“text”,这使Ubuntu直接启动进入文本模式。
  4.   
  5. 取消注释这行#GRUB_TERMINAL = console,通过删除开头的#,这使得Grub菜单成为真正的黑色&amp;白色文字模式(没有背景图片)

  6.   
  7. 更新:(如果运行Ubuntu 16.04 If   $ sudo systemctl set-default multi-user.target

  8.   
  9. 重新启动到控制台

  10.   
$ sudo shutdown -r now
$ sudo service lightdm stop
$ sudo ./<DRIVER>.run

按照NVIDIA驱动程序安装程序

$ sudo mv /etc/default/grub /etc/default/grub.textonly 
$ sudo mv /etc/default/grub.orig /etc/default/grub 
$ sudo update-grub
$ sudo shutdown -r now

结果 (现已成功检测到GPU的情况)

...
('Extracting', 'MNIST_data/t10k-labels-idx1-ubyte.gz')
I tensorflow/core/common_runtime/gpu/gpu_init.cc:118] Found device 0 with properties: 
name: GeForce GTX 970
major: 5 minor: 2 memoryClockRate (GHz) 1.342
pciBusID 0000:01:00.0
Total memory: 3.94GiB
Free memory: 3.88GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:138] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_init.cc:148] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:868] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0)
(0, 113040.92)
(1, 94895.867)
...

Screencapture of the same

答案 1 :(得分:0)

一个简单的解决方案&#34;问题:在X服务器运行时无法安装NVIDIA驱动程序:

  1. 使用SSH从另一台计算机访问ubuntu
  2. 删除Ubuntu计算机的屏幕(显示设备)
  3. 使用sudo reboot重新启动计算机,然后再次访问