1.两块显卡
2.tensorflow1.5只支持到cuda9.0
3.电脑硬件信息如下图:
安装单系统(语言英文)
1.不自动更新+不下载第三方
2.分区:
sda1:第一个 bios reserve(bios保留分区) 挂载在biosgrub 主分区 1M
sda2: 第二个 ETX4 挂载在 / 主分区 50G~几乎整个磁盘的大小
sda3: 第三个 交换空间(swap)逻辑分区 内存大小 68888M
安装驱动
ps. ppa源安装无法匹配正确版本驱动
1.去官网下载最新的驱动run文件,选择系统的时候,不要选择ubuntu16.04,选择的话容易选到deb文件,应该选择linux-64bit版本
2.安装NVIDIA驱动程序(如果事先有装但失败的,先卸载)
$ sudo apt remove --purge nvidia*
3.禁用驱动
1)在Ubuntu16.04中,我们可以通过以下操作禁用nouveau:
a.在/etc/modprobe.d中创建文件blacklist-nouveau.conf
$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在文件中输入以下内容:
blacklist nouveau
options nouveau modeset=0
b.执行
$ sudo update-initramfs -u
c.查看nouveau是否已经成功禁用
$ lsmod | grep nouveau
若无内容输出,则禁用成功,若仍有内容输出,请检查上述操作,并重复。
操作无误但仍有输出,则可重启,进入用户登录界面时(不要登录进桌面),按Ctrl+Alt+F1进入字符终端界面,输入用户名和密码进行登录,登录成功后,再次查看
$ lsmod | grep nouveau
这时,我们已经成功禁用了nouveau,无输出
2)关闭图形化界面
$sudoservice lightdm stop
3)安装驱动
注意进入你下载的目录
给驱动run文件赋予执行权限:
sudo chmod a+x NVIDIA-Linux-x86_64-390.46.run
#后面的参数非常重要,不可省略:
sudo ./NVIDIA-Linux-x86_64-390.46.run –no-opengl-files
–no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。
–no-x-check:表示安装驱动时不检查X服务,非必需。
–no-nouveau-check:表示安装驱动时不检查nouveau,非必需。
-Z, --disable-nouveau:禁用nouveau。此参数非必需,因为之前已经手动禁用了nouveau。
-A:查看更多高级选项。
必选参数解释:因为NVIDIA的驱动默认会安装OpenGL,而Ubuntu的内核本身也有OpenGL、且与GUI显示息息相关,一旦NVIDIA的驱动覆写了OpenGL,在GUI需要动态链接OpenGL库的时候就引起问题。
可以使用下面的命令打开图形化界面:
sudo service lightdm start
之后,按照提示安装,成功后重启即可。 如果提示安装失败,不要急着重启电脑,重复以上步骤,多安装几次即可。
Driver测试:
nvidia-smi
#若列出GPU的信息列表,表示驱动安装成功
nvidia-settings
#若弹出设置对话框,亦表示驱动安装成功,我们没有出正确结果,但目前没有发现问题
CUDA9.0 安装
到NVIDIA官网中,找到CUDA 9.0并下载,注意与tensorflow版本对应
之后,重启系统,在登录界面时按Ctrl+Alt+F1进入字符终端界面,登录成功后,
关闭图形化界面
$ sudo service lightdm stop
找到下载文件的路径,键入下面的命令安装:
$ sudo sh cuda_9.0.176_384.81_linux.run
单击回车,直到提示“是否为NVIDIA安装驱动?”
选择否,因为已经安装好驱动程序,其他都是默认。
最后你会看到cuda驱动、sample、tookit已经安装成功,但是缺少一些库。
添加这些库
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
重新启动图形化界面
$ sudo service lightdm start
同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了
重启电脑,检查Device Node Verification
$ sudo reboot
$ ls /dev/nvidia*
a、若结果显示
/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
或显示出类似的信息,应该有三个(包含一个类似/dev/nvidia-uvm的),则安装成功。
b、大多数结果可能会是这样
ls: cannot access/dev/nvidia*: No such file or directory
或是这样的,只出现
/dev/nvidia0 /dev/nvidiactl
a中的一个或两个,但没有/dev/nvidia-uvm,即文件显示不全。
解决方法:
首先要添加一个启动脚本
$ sudo vim /etc/rc.local
把文件的第一行的#!/bin/sh -e中的-e去掉,
在#!/bin/sh和exit 0之间,添加以下内容
/sbin/modprobe nvidia
if["$?" -eq 0];then
# Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA- 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if["$?" -eq 0];then
# Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi
保存文件并重启,再次查看,这时你应该能直接看到/dev目录下的三个nvidia的文件
输入:
$ ls /dev/nvidia*
结果显示:
/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
成功!如果还是没有出现,先不管他,跑后面的samples例子,然后会出来
接着,设置环境变量。
终端中输入
$ sudo vim /etc/profile
在打开的文件末尾,添加以下两行。
64位系统:
$export PATH=/usr/local/cuda-9.0/bin:$PATH
$export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
32位系统:
$export PATH=/usr/local/cuda-9.0/bin:$PATH
$export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib:$LD_LIBRARY_PATH
保存文件,并重启。因为source /etc/profile是临时生效,重启电脑才是永久生效。
重启电脑,检查上述的环境变量是否设置成功。
a.验证驱动版本
$ cat /proc/driver/nvidia/version
b.验证CUDA Toolkit
$ nvcc -V
如果这里面出不来,那么先编译运行例子后再回来验证
最后,我们需要尝试编译cuda提供的例子,看cuda能否正常运行
打开终端输入(注意你安装的路径,替换user_name)
$ cd /home/user_name/NVIDIA_CUDA-9.0_Samples
$ make
系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。
如果编译成功,最后会显示Finished building CUDA samples,如下图所示。
运行编译生成的二进制文件。
编译后的二进制文件默认存放在NVIDIA_CUDA-9.0_Samples/bin中。
接着在终端中输入 :
$ cd bin/x86_64/linux/release$ ./deviceQuery
结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL
最后再检查一下系统和CUDA-Capable device的连接情况
终端输入 :
$ ./bandwidthTest
看到类似如下图片中的显示,则代表成功
在官网上下载适合cuda版本的deb文件或tgz文件。 cudnn-9.0-linux-x64-v7.1.tgz
把头文件和库文件拷贝到cuda的安装目录中,首先确保cuda的安装目录是/usr/local/cuda/,之前安装cuda时,已经默认安装目录为/usr/local/cuda/了
sudo tar -xzvf cudnn-9.0-linux-x64-v7.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
文件拷贝成功
查看cudnn版本
sudo cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A2
安装Anaconda
然后执行:bash Anaconda×××-Linux-x86_64.sh ,然后一直enter键,中途会遇到([y]/n)? 的提示,输入y即可。
安装好后,在终端输入Python即可看见:Python 3.6.4 |Anaconda, Inc.|,表明安装成功。
安装tensorflow(cpu版)
官方的建议是即时你有gpu,但也可以先装一个cpu版,创建环境的命令为:
conda create -n tensorflow python=3.6
(一定要指定python版本,python=3.6)
source activate tensorflow #激活tensorflow环境
cd /Downloads#切换到whl文件所在文件夹
pip install --ignore-installed --upgrade tensorflow-1.5.0-py3-none-linux_x86_64.whl #不要用sudo pip,也不要用pip3
(tensorflow)$ python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
sess.run(hello)
GPU版下载对应GPU版本,安装方式一样
opencv安装