Tips: 本文使用的服务器为ubuntu18.04(1080ti x2)
文章目录
步骤总览:安装显卡驱动第一种:在可视化的界面中可以直接安装系统推荐的驱动第二种:命令行安装第三种:官网驱动安装(不推荐)下载驱动安装前准备工作下载编译基本环境屏蔽Nouveau关闭 X server 安装驱动 下载安装conda下载conda安装conda使用conda时可能遇到的问题 配置pytorch环境创建新的环境安装cudatoolkit和pytorch相关包测试pytorch的gpu 配置tensorflow环境CUDA、cuDNN的conda安装cudacuDNN 设置环境变量测试tensorflow 国内换源相关apt 换源步骤总览:
安装显卡驱动下载conda配置pytorch环境配置tensorflow环境国内换源相关安装显卡驱动
按简单顺序可分为3种,推荐第二种PPA安装。
第一种:在可视化的界面中可以直接安装系统推荐的驱动
ubuntu详见
第二种:命令行安装
可以通过命令行,安装PPA里面的nvidia驱动:
sudo add-apt-repository ppa:graphics-drivers/ppa --yessudo apt updatesudo apt search nvidia # 找到自己想安装的版本xxxsudo apt install xxx
第三种:官网驱动安装(不推荐)
可以参考nvidia 510.60.02 版本的官方教程,下文是对官方文档的一个简单概括:
下载驱动安装前准备工作:下载编译基本环境、关闭所有OpenGL应用、X Server以及屏蔽Nouveau、关闭bios的secure boot安装驱动
下载驱动
(1) 百度搜索"nvidia driver"或者"英伟达显卡驱动"(如果是在需要装环境的设备上搜索的记为情况一,通过远程ssh登陆的为情况二)
(2) 选择你的显卡类型和操作系统,我是装有1080ti的ubuntu amd64位的操作系统,所以选择的是:GeForce 10series, GeForece GTX 1080ti; Linux 64-bit, 保险起见语言选择English.之后点击搜索,点击download(这里要点击download一次)
(3) 进入下面界面,情况一直接点击下载,情况二拷贝下载链接,在远程连接的终端上输入wget
+拷贝的链接,注意链接应含有.run
(如:/content/DriverDownload-March/confirmation.php?url=/XFree86/Linux-x86_64/510.60.02/NVIDIA-Linux-x86_64-510.60.02.run&lang=us&type=TITAN)
安装前准备工作
下载编译基本环境
sudo apt updateapt install build-essential
屏蔽Nouveau
Nouveau是“Accelerated Open Source driver for nVidia cards”,需要在装官网的驱动之前屏蔽.
(1) 修改Nouveau的配置文件,下述代码使用的是here doc的技巧修改配置文件的,也可以以管理员权限使用vim
:在/etc/modprobe.d/blacklist-nouveau.conf
文件末尾添加下面第二、三行的内容。
cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.confblacklist nouveauoptions nouveau modeset=0EOF
(2) 更新配置并重启
sudo update-initramfs -usudo reboot
(3) 重启后确认一下,重启的时候进入bios,并关闭secure boot(只是为了方便,才在这一步关闭,只要在安装驱动前关闭即可),如果看见Successs
表示成功屏蔽
lsmod | grep "nouveau" > /dev/null && echo "WARNING: nouveau still active" || echo "Success"
关闭 X server
这里注意,请使用远程ssh操作,关闭X server会关闭图形化界面,不能保证关闭后电脑能够进入图形化界面(似乎与显示器是否接在显卡上有关),所以使用ssh操作比较保险
sudo init 3
安装驱动
cd directory_of_driver_downloadsudo bash NVIDIA-Linux-x86_64-*.run --dkmssudo reboot
之后一路确认即可后重启,最后用nvidia-smi
确认一下
下载安装conda
下载conda
推荐使用国内镜像(如果服务器在国内的话),根据服务器选择合适的镜像源,比如我在南京且在高校内,所以选择了南京大学的镜像,类似的有清华、中科大、阿里、腾讯等等。
以南京大学镜像为例,百度搜索“南京大学mirror“,看一看地址: https://mirror./,是南京大学的域名(),不是广告。
进去后点击anaconda,我喜欢用miniconda,当然也可以选择archive,点击后选择符合系统的最新版本,这里和下载驱动一样,分情况一二。比如我是ubuntu amd64位,选“Miniconda3-py39_4.11.0-Linux-x86_64.sh”
类似的,如果想下载archive版本,我就会选择:
安装conda
sudo bash *conda3*.sh
一路下一步,即可,这里将conda的安装路径记为CondaPath
(方便之后表述,下文中的CondaPath需要替换成实际安装的路径)
使用conda时可能遇到的问题
(1) 当出现NoWritableEnvsDirError
的报错时:
sudo chmod -R 777 CondaPath
(2) 关闭自动初始化base环境
使用某些版本的vscode + remote ssh的时候建议关闭
conda config --set auto_activate_base false
配置pytorch环境
pytorch安装最为简单,可完全参考官网的conda安装.
创建新的环境安装cudatoolkit和pytorch相关包
创建新的环境
nameofenv 替换为自己想设定的名字,比如这里可以设置成pytorchenv
conda create -n nameofenv python=3.9
激活该环境
conda activate nameofenv
安装cudatoolkit和pytorch相关包
这里在官网选择好后复杂代码运行即可:
复制Run this Command对应的this command在终端运行:
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
测试pytorch的gpu
python -c "import torch;print(torch.cuda.is_available())"
返回True则说明安装成功,torch是自带cudnn的,所以只需要再设备安装驱动后再conda安装cudatoolkit和pytorch即可。
配置tensorflow环境
本文基于tensorflow官方软件要求进行安装:
必须在系统中安装以下 NVIDIA® 软件:
NVIDIA® GPU 驱动程序 - CUDA® 11.2 要求 450.80.02 或更高版本。CUDA® 工具包:TensorFlow 支持 CUDA® 11.2(TensorFlow 2.5.0 及更高版本)CUDA® 工具包附带的 CUPTI。cuDNN SDK 8.1.0 cuDNN 版本。(可选)TensorRT 6.0,可缩短用某些模型进行推断的延迟时间并提高吞吐量。
CUDA、cuDNN的conda安装
cuda
cudatoolkit,其实在pytorch的安装时也安装了cudatoolkit11.3,是可以直接套用的:conda install -c pytorch cudatoolkit=11.3
在里的-c pytorch
可以在cudatoolkit=11.3
之前或之后,表示在名为pytorch
的包频道(channel)中下载。(cuda 11.1及之后的版本才支持30系显卡)
当然更加通用的方法是在anaconda包官网上进行检索:
输入关键词“cuda”:
检索结果如下:
挑选一个,这里可以选择下载量最高的 conda-forge 的cudatoolkit,点击后页面会自动生成安装的命令:
可以通过在cudatoolkit
后加=11.3
来限定下载版本。
cuDNN
方法与cudatoolkit雷同,写本文时不推荐使用nvidia的,目前nvidia的频道版本不是最高的,其实包括cudatoolkit也不推荐下载nvidia版本。
此外推荐下载的还有TensorRT,也可以用类似的方法通过conda下载,但是笔者没有下载。
设置环境变量
在设置之前先定义一些需要结合自己情况替换的名词:
将Tensorflow的conda虚拟环境记住envoftf
(可以和torch同环境,在torch环境搭建后仅需安装cuDNN即可)conda 的安装目前CondaPath
,miniconda的默认安装目录是:~/miniconda3
,这里使用绝对路径。
完成上述步骤后仍然是不可以使用tensorflow的gpu的,在官方教程中提到需要设置一个环境变量:
(1) 找真正的lib路径
不能直接使用官网提供的,因为使用的是conda,实际这些包并不在/usr/local/cuda/extras/CUPTI/lib64
,可以通过两种方式找到:
(a) 根据规律拼接出目录:CondaPath/envs/envoftf/lib
这里的CondaPath
和envoftf
需要自行替换
(b) 利用find
命令:
find CondaPath -name libcu*.so* | xargs dirname | head -n 1
(2) 设置conda环境变量,并重新激活环境(conda activate envoftf
)
conda env config vars set LD_LIBRARY_PATH=(1)中获得路径
测试tensorflow
python -c "import tensorflow as tf;print(tf.config.list_physical_devices('GPU'))"
返回设备列表,检测GPU数量是否和实际安装的一直。
国内换源相关
和选择conda的镜像一样,选择离稳定且离自己近的镜像源,这里仍然是使用南京大学的镜像.
这里讲解如何获得换源的设置,以ubuntu18.04的apt包源替换为例。
apt 换源
进入mirror的帮助界面:
不同镜像网站帮助放置位置不同,南大的在顶部,清华则是在首页的右下方的相关链接里:
进入帮助界面后选择ubuntu,按照里面的描述进行修改即可,清华的比较方便,支持ubuntu版本的选择,而南大需要自己手动修改对应版本名。
修改配置前最好备份原先配置:
sudo mv /etc/apt/sources.list /etc/apt/backup.sources.list
如果是其他发行版本的linux,则需选择对应的即可,conda换源也是如此,已经在macos常用的homebrew也是有的.