零. 预操作
一. 安装nvidia 对应的驱动
二. 安装cuda8.0
三.
常见错误及一些解决方法
零. 预操作
0. 安装前,先CTRL+SHIFT+F1切换到命令行界面。
1. 首先关掉x server: sudo service lightdm stop
2. 如果之前装过CUDA和显卡的驱动,先完全卸载:
sudo
/usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl
sudo
/usr/bin/nvidia-uninstall
一.安装nvidia驱动
由于1080卡比较新,其对应的驱动版本也相应需要较新的版本。
另外一个很重要的是ubuntu kernel版本与驱动的兼容性问题。
有多种方法,比如去官网下载run文件,下载deb文件等,然后手动安装等,尝试了多种方法后,终于成功。
1. 关闭默认的noueau驱动,将其加入黑名单
lsmod | grep
noueau 查看noueau是否还在运行,如果看不到任何关于noueau的信息,说明已经关闭,可以跳到步骤2;否则
将其加入黑名单
sudo vi
/etc/modprobe.d/blacklist-noueau.conf 创建黑名单,输入下面内容
blacklist
noueau
options noueau
modeset=0
保存,退出;
更新一下kernel initramfs:
sudo
update-initramfs
2. 安装nvidia驱动
查看可用的驱动版本 sudo ubuntu-drivers
list
可以看到nvida-384 nvidia-387等驱动版本
我选择的nvidia-384
安装 sudo apt-get install
nvidia-384
安装完成后,通过nvidia-smi命令查看显卡的信息,如果出现自己的显卡的型号,显存信息,一般就安装成功了。
这种方法的好处是,系统会自动安装与驱动匹配的ubuntu kernel.
我在尝试其他方法时,尝试了4.4版本的kernel,4.13的kernel,都以失败告终。
如果要查看当前运行的kernel版本:
uname -r
如果要查看所有的kernel版本:
dpkg –list | grep
linux-image
如果想使用某个kernel版本,可以通过 修改/etc/default/grub
修改
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux
4.10.0-42-generic"
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=-1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo
Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
保存,退出,使用 sudo update-grub
更新grub
这样做的目的是在系统启动的时候,可以选择启动的kernel版本,来测试自己的机器上哪个kernel和驱动是兼容的。
二.安装CUDAJ及cudnn
3. 安装cuda 8.0
下载 cuda_<版本>_linux.run
自己使用的是
cuda_8.0.61_375.26_linux.run
注意选择 不安装自带的驱动;其他选yes和默认就可以了,这个过程也会安装cuda的samples
安装之后,需要将cuda的path和lib_path添加系统对应的路径中:
sudo vi
/etc/profile 在最后添加两行
export
PATH=/usr/local/cuda-8.0/bin:$PATH
export
LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
然后, source /etc/profile 让设置生效
4. 安装cudnn
下载cudnn-8.0-linux-x64-v6.0.tgz
解压缩,会生成 /cuda文件夹,下面包含cudnn需要的 /lib64及/include,将这两个文件夹的内容拷贝到cuda对应的文件夹即可:
切换到/cuda文件夹
sudo cp lib64/*
/usr/local/cuda/lib64
sudo cp include/*
usr/local/cuda/include
三. 产见错误及一些解决方法
1.
安装nvdia的驱动后,只能停留在登录页面:1)切换到用户根目录 cd
~/ 查看 .XSessionerrors 的内容,能找到一些错误的提示
,能够帮助分析错误的原因,主要还是2种原因吧,一种是驱动没装好,比如版本与显卡不兼容,版本与kernel不兼容,lighdm损坏等。
2.
使用nvida-smi不能正确显示设备的基本信息,基本上是驱动没装好的问题,可以通过 驱动安装的日志 /tmp/xxxx.log
查看错误的信息,对应解决。