我正在尝试在包含在我的Ubuntu 18.04 Bionic Beaver服务器上运行的docker内的jupyter笔记本上使用Tensorflow-gpu。
我已完成以下步骤:
1)已安装的Nvidia驱动程序390.67 sudo apt-get install nvidia-driver-390
2)已安装CUDA驱动程序9.0 cuda_9.0.176_384.81_linux.run
3)已安装CuDNN 7.0.5 cudnn-9.0-linux-x64-v7.tgz
4)已安装Docker sudo apt install docker-ce
5)已安装nvidia-docker2 sudo apt install nvidia-docker2
我尝试执行以下操作
nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:1.5.1-gpu-py3
我使用Tensorflow 1.5.1的原因是因为我在1.8.0-gpu-py和我read that you need to use Tensorflow 1.5 for older CPUs.上遇到了相同的内核死错误,我认为这并不是真正的问题,因为我我试图简单地导入它,而我正在使用tensorflow-gpu
我的服务器硬件如下
CPU: AMD Phenom(tm) II X4 965 Processor
GPU: GeForce GTX 760
Motherboard: ASRock 960GM/U3S3 FX
Memory: G Skill F3-1600C9D-8GAB (8 GB Memory)
当我仅使用import tensorflow as tf
导入tensorflow时,如何确定内核快死的原因。
这是nvidia-docker smi的结果
$ docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
Fri Jun 22 17:53:20 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.67 Driver Version: 390.67 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 760 Off | 00000000:01:00.0 N/A | N/A |
| 0% 34C P0 N/A / N/A | 0MiB / 1999MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
如果我在docker外部使用nvidia-smi
,则完全匹配。
这是nvcc --version结果:
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
如果我尝试做nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:1.5.1-gpu-py3 bash
来显示bash提示,然后当我做python
时我通过import tensorflow as tf
进入python会话,那么我得到Illegal instruction (core dumped)
,所以不是也不能在非jupyter环境中工作。即使我先执行import numpy
然后执行import tensorflow as tf
答案 0 :(得分:1)
事实证明我需要降级到tensorflow 1.5.0。 1.5.1是添加AVX的位置。显然,在模块加载时会使用AVX指令来设置库。