登录Nvidia官方网站,在下拉菜单选择自己的信息,下载最新驱动程序(以本人3070Laptop为例)。尽量下载最新驱动,不然tensorflow-gpu安装可能会出现问题!
Nvidia驱动下载:https://www.nvidia.cn/geforce/drivers/
搜索完成后,点击下载,保存到任意目录下(默认下载到~/Downloads)。
登录Anaconda官方网站,按照个人需求选择版本,这里我选个人版。
Anaconda官方网站:https://www.anaconda.com/
点击Downloads,保存到任意目录下(默认下载到~/Downloads)。
前往官方网站下载CUDA,具体需要哪个版本,需要前往cuDNN下载页面,查看当前能够支持的版本号,必须与之相对应,否则无法安装成功。上图为CUDA下载页面,下图为cuDNN下载页面。下载的CUDA放在默认的Downloads文件夹下就可以了。
显卡驱动与CUDA版本对应关系:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
CUDA最新版本:https://developer.nvidia.com/cuda-downloads
CUDA历史版本:https://developer.nvidia.com/cuda-toolkit-archive
cuDNN最新版本:https://developer.nvidia.com/rdp/cudnn-download
cuDNN历史版本:https://developer.nvidia.com/rdp/cudnn-archive
显卡驱动与CUDA对应关系
这里我安装的驱动是495.46,对应CUDA应该选择11.5
11.5CUDA对应选择cuDNN版本为8.3.1,但是要看清楚8.3.1有两个
注意:如果不安装CUDA和cuDNN,也可以进行Tensorflow-gpu安装,完成后显示安装成功,import tensorflow不会报错,但无法使用GPU进行运算。仅安装CUDA可以运行Tensorflow的GPU运算,但运算速度较慢,安装cuDNN可以显著加快运算。
CUDA请下载.run格式的版本,.deb安装较为麻烦且不易成功。
下载cuDNN前,需要注册帐号,并完成资料填写,按照要求填完即可下载
下载完成(因为cuDNN目前最新支持CUDA11.5,故笔者下载CUDA11.5.0和cuDNN8.3.2)
检查一下是否齐全,一共4个安装包,其中Nvidia相关驱动3个、Anaconda安装包1个
因为Ubuntu自带的驱动和我们要安装的Nvidia驱动有冲突,故需禁用。
首先修改配置文件,打开“终端”(Ctrl+Alt+T)
sudo gedit /etc/modprobe.d/blacklist.conf
找到最后一行,在末尾加入下列内容,将nouveau列入黑名单
blacklist nouveau
options nouveau modeset=0
完成后如下图所示,点击“保存”,而后退出
应用刚才修改的配置
sudo update-initramfs -u
reboot
重启后验证更改是否生效
lsmod | grep nouveau
没有输出则代表已经禁用
关闭图形化界面(非必要操作,有时不关闭无法完成旧驱动卸载)
sudo telinit 3
卸载旧版本nvidia驱动
sudo apt-get remove --purge nvidia*
CD到下载目录,使用sh命令进行安装(20.04版本不需要增加chmod +x可执行权限,可以直接运行)
第一次运行安装程序有极大可能性会报错,部分问题可参考本章第3条,此处为顺利安装的情况
sudo sh NVIDIA-Linux-x86_64-495.46.run
点击Contiue,不影响安装
无问题则开始读条,期间可能弹出警告,缺少32位运行库,无视
读条结束后,提示是否需要使用Nvidia工具自动更新配置文件,选No,以免破坏我们安装好的环境
能走到上面一步,基本上已经安装成功了,现在检验一下
nvidia-smi
(1)缺少gcc
sudo apt-get install build-essential
(2)缺少g++
sudo apt-get install g++
(3)缺少make
sudo apt-get install make
(4)因为缺少依赖环境导致无法安装
有时会比较棘手,问题层出不穷,可按以下方法尝试
sudo apt --fix-broken install
sudo apt-get update
sudo apt-get upgrade
如果IP无法访问,则需要更改安装源,先备份、后修改
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo gedit /etc/apt/sources.list
将全部内容都删除,只保留以下内容(也可换别的源)
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
如果apt-get update依然找不到源,可以尝试将/etc/apt/sources.list.d文件夹下对应的文件删除
然后再进行update、upgrade
打开终端
sudo sh cuda_11.5.0_495.29.05_linux.run
输入accept
因为我们事先安装好了显卡驱动,所以Driver这里要取消,其他的全部安装,点击Install
安装完成
添加环境变量
gedit ~/.bashrc
在末尾处增加以下内容,其中cuda-11.5这里是我的版本号,如果安装其他版本请相应调整。
export PATH=/usr/local/cuda-11.5/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
完成后点击保存,退出。输入source ~/.bashrc应用环境变量
source ~/.bashrc
查看版本号,如果正常显示,代表安装成功
nvcc -V
注:有教程说需要降级gcc版本,笔者仅有gcc9,未安装gcc7依旧能够成功。
Nvidia官方安装介绍:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
完全按照官方操作即可,大概意思是将文档中的X.Y修改成CUDA版本号、v8.x.x.x修改成cuDNN版本号,这里我们将X.Y改为11.5、v8.x.x.x修改为8.3.2.44,同学们参照修改就可以了。
tar -xvf cudnn-linux-x86_64-8.3.2.44_cuda11.5-archive.tar.xz
成功提取文件后不用管它,继续执行命令
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
cd到Anaconda文件目录下进行安装
sh Anaconda3-2021.11-Linux-x86_64.sh
看完很长的文档后,开始操作(不想看文档可以按Ctrl+C跳过,不会退出安装)
第一个提示表示是否接受条款并安装,输入yes;
第二个提示表示是否在默认目录下安装,建议同意,直接敲回车;
第三个提示表示是否需要conda进行初始化,输入yes。
测试是否安装成功
anaconda-navigator
创建桌面快捷方式
cd ~/Desktop
gedit Anaconda.desktop
在文本编辑器里面复制下列代码,注意需要将Exec和Icon参数中的username替换为您自己的帐号名称,然后保存
[Desktop Entry]
Version=1.0
Name=Anaconda
Type=Application
GenericName=Anaconda
Comment=Scientific Python Development Environment - Python3
Exec=/home/username/anaconda3/bin/anaconda-navigator
Categories=Development;Science;IDE;Qt;Education;
Icon=/home/username/anaconda3/lib/python3.9/site-packages/anaconda_navigator/static/images/anaconda-icon-256x256.png
Terminal=false
StartupNotify=true
通过Anaconda安装Tensorflow,使用conda命令安装,可自动适配符合系统的版本工具,轻松完成Tensorflow安装,比pip安装成功率更高
在Anaconda中创建tensorflow环境
conda create -n tensorflow
激活并切换到tensorflow环境,成功切换的话括号内的名称则会变为tensorflow
source activate tensorflow
conda install tensorflow-gpu
经过一段时间的等待,出现三个“done”完成安装
我们来进python测试一下,import tensorflow无显示,安装成功
回到Anaconda Navigator面板,按下Ctrl+p,打开设置面板,在最下面加入PyCharm的绝对路径,这样我们就可以从Anaconda中启动PyCharm了(不设置也不影响使用)
启动PyCharm,按下Ctrl+Alt+s,打开设置面板,将Jupyter服务器的Python解释器设置为我们刚装好的tenserflow环境(如果以前没有运行过Jupyter文件,可能需要先安装PyCharm的Jupyter服务器)