Can*_*ren 4 python gpu nvidia tensorflow
在成功安装和测试使用 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)
Run Code Online (Sandbox Code Playgroud)
代码:https : //github.com/llSourcell/autoencoder_demo
问题:为什么重启 Ubuntu 16.04 机器会破坏 Tensorflow?
我实际上解决了我自己的问题,并想分享对我有用的解决方案。
神奇的谷歌搜索是:“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
我没有连接到这台 PC 的键盘或显示器,所以这是我实际使用的“无头”方法:
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
Run Code Online (Sandbox Code Playgroud)
根据上述链接编辑 grub 文件(3 处更改):
- 注释 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 行,在开头添加 #,这将禁用 Ubuntu 紫屏。
- 将 GRUB_CMDLINE_LINUX="" 更改为 GRUB_CMDLINE_LINUX="text",这将使 Ubuntu 直接启动到文本模式。
取消注释这一行#GRUB_TERMINAL=console,通过删除开头的#,这使得Grub Menu 进入真正的黑白文本模式(没有背景图像)
更新:(如果运行 Ubuntu 16.04 如果 $ sudo systemctl set-default multi-user.target
重新启动到控制台
$ sudo shutdown -r now
$ sudo service lightdm stop
$ sudo ./<DRIVER>.run
Run Code Online (Sandbox Code Playgroud)
按照 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
Run Code Online (Sandbox Code Playgroud)
结果 (现在 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)
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9740 次 |
最近记录: |