见我另一篇博客
如果只想在Windows下玩深度环境的可以看我另外一篇博客
sudo apt-get purge nvidia-*
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
添加以下内容:
blacklist nouveau
再更新一下
sudo update-initramfs -u
修改后需要重启系统。确认下Nouveau是已经被你干掉,使用命令: lsmod | grep nouveau
如果没有结果,说明已经禁掉。
网上很多帖子说用官网驱动,我在官网上下载得到的最新驱动就是NVIDIA-Linux-x86_64-410.78.run,运行安装过程中提示编译该驱动的版本比系统自带GCC的版本低,可能会出现兼容性问题,忽略该提示继续安装后,重启后出现问题3。
网上很多说用Ubuntu第三方仓库中的NVIDIA驱动比较老旧,但可能近期已经更新,版本比官网还高。
这里采用自动安装:
添加PPA仓库:sudo add-apt-repository ppa:graphics-drivers/ppa
更新:sudo apt-get update
输入命令:ubuntu-drivers devices
显示出支持的显卡驱动有:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001180sv00001458sd0000353Cbc03sc00i00
vendor : NVIDIA Corporation
driver : nvidia-driver-418 -third-party-free
driver : nvidia-driver-410 -third-party-free
driver : nvidia-driver-430 -third-party-free recommended
driver : nvidia-driver-415 -third-party-free
driver : xserver-xorg-video-nouveau - distro free builtin
可以看到PPA仓库中已经有最新的2080TI驱动:sudo ubuntu-drivers autoinstall 即可reboot
安装完reboot发现卡在紫色界面,没有任何显示,CTRL+ALT+F2进入命令行模式,使用nvidia-smi命令可以正常显示N卡信息,说明驱动安装正常,问题出在显示上。
安装完毕后是默认使用Ubuntu的启动菜单,可以选择进入Win10还是Ubuntu。选择进入Ubuntu后屏幕上方出现/dev/sda6:clean / files, ***/***blocks,一直卡在这里没有用。网上查找了很长时间,主要解决方法有两种:
1.CTRL+ALT+Fn进入命令行,输入fsck /dev/sda6,对我无效。
2.Ubuntu自带显卡驱动与NVIDIA显卡不兼容,CTRL+ALT+Fn进入命令行,输入sudo apt-get purge nvidia*删除所有NVIDIA相关显卡,对我无效。
最终折腾了半天找到第三种奏效的方法:
sudo apt install lightdm
然后重启
/dev/sda6是我的/分区,出现这个提示,在启动时候进入Ubuntu高级选项,选择recover模式->root,然后fsck /dev/sdb6
到nvidia官网下载cuda DEB格式,后输入命令安装即可,我这里先下载最新的CUDA10.1,官网有安装说明:
sudo dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.168-418.67_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-1-local-10.1.168-418.67/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
安装完后重启一下
nvcc -V
看到CUDA信息说明正常。
PS:如果安装的是性能低一些的,支持的是CUDA9.0的显卡,可能还设计GCC、G++的降级等,见我另一篇博客,这里不提。
从官网下载,选择第三个cuDNN Library for Linux,选择和CUDA10.1适配的cudnn,我下载的是cudnn-10.1-linux-x64-v7.6.2.24.tgz。
解压缩后cd到cuDNN目录,执行以下操作:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
接下来编辑path环境变量文档:sudo gedit ~/.bashrc
将cuda的环境变量加到打开的文件最后:
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64”
export CUDA_HOME=/usr/local/cuda
export PATH="$CUDA_HOME/bin:$PATH"
souce以下使环境配置生效:source ~/.bashrc
安装:bash Anaconda3-5.3.1-Linux-x86_64.sh
然后看清楚提示,该yes的要yes,其中要加入环境变量,同时安装到最后会帮你安装VSCode,我比较喜欢这个IDE,不太喜欢重量级的Pycharm,所以也YES安装。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
添加pytorch源,不然安装贼慢
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
这个Anaconda默认Python是3.7的,可能与很多包还不太兼容,所以建立虚环境。
conda create -n deeplearning python=3.6
创建的是Python3.6.8的环境
source activate deeplearning
conda install tensorflow-gpu
conda install pytorch torchvision
source deactivate deeplearning
可以看到安装的是tensorflow-gpu-1.14.0和pytorch-1.1.0
source activate deeplearning
conda install nb_conda
source deactivate deeplearningcon
source activate base
conda install nb_conda
source deactivate base
这样进入jupyter notebook尽可以创建新建的deeplearning虚环境下的notebook
在终端输入:jupyter-notebook --generate-config
用gedit打开上述命令输出的路径文件,在其中搜索c.NotebookApp.notebook_dir =
,原本前面有#表示注释,删除#后将需要变更的路加入即可
F1后输入language display,现在install other language,安装中文,重启vscode
个人觉得vscode比较强大的就是插件库,加上一些插件后如虎添翼,这里推荐几个插件:
(1)Python:这个是vscode提供的python 官方插件,提供了python代码的调试,自动补全,代码格式化等功能
(2)vscode-icons:这个也是vscode官方提供的插件,作用是给vscode编辑的文件增加图标。这里再推荐一个相同功能的插件vscode-icons-mac,文件图标变成Mac风格,相当美观。
(3)Path Intellisense:这个插件的作用是当代码中读入文件名或者文件路径时,提供文件名或者文件路径的自动补全
(4)topper:这个插件的作用是在.pyw文件的开头添加一些说明header
(5)Bracket Pair Colorizer:这个插件的作用是给代码中的括号增加颜色,同一对括号是相同的颜色,尤其是在括号中还包着括号的时候,看起来更加的清晰。
(6)Code Spell Checker:代码拼写检查器
(7)guides:显示代码对齐辅助线
(8)Rainbow Brackets:圆括号,方括号和大括号提供彩虹色。
(9)Indent-Rainbow:用四种不同颜色交替着色文本前面的缩进
(10)filesize:在状态栏中显示当前文件大小,点击后还可以看到详细创建、修改时间
(11)Atuo Rename Tag:修改 html 标签,自动帮你完成头部和尾部闭合标签的同步修改
(12)beautify:格式化代码工具
没有网上说得那么负责,需要改变配置文件之类,直接F1快捷键输入python:select interpreter就可以看到虚环境,选择即可应用到当前项目。
在vsode中写个代码测试一下是否成功:
import tensorflow as tf
import torch
with tf.device('/cpu:0'):
a = tf.constant([1.0,2.0,3.0],shape=[3],name='a')
b = tf.constant([1.0,2.0,3.0],shape=[3],name='b')
with tf.device('/gpu:1'):
c = a+b
#注意:allow_soft_placement=True表明:计算设备可自行选择,如果没有这个参数,会报错。
#因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True))
#sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
sess.run(tf.global_variables_initializer())
print(sess.run(c))
print(torch.cuda.is_available())
不得不说,深度学习环境在Linux下还是要容易得多,Windows下安装和使用中会出一些莫名其妙的问题,在Ubuntu下很简单。