办公室买了一台新电脑,又是安环境的一天……记录一下所有的过程。参考了很多很多很多的博客,已经很难找到链接了,感谢所有分享经验的大佬。
详细过程
安装 anaconda3
- 下载
清华 anaconda 镜像源
找到合适的版本,使用 wget 命令下载
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh
- 安装
可以安装在/opt/
目录下。(该目录一般存放大型软件)
bash Anaconda3-2021.11-Linux-x86_64.sh
- 配置环境变量
vim ~/.bashrc
在文末加上 anaconda3/bin 的绝对路径
export PATH=$PATH:/home/software/anaconda3/bin
保存退出,运行以下命令使其生效:
source ~/.bashrc
- 验证
conda -V
可能出现的问题
- 切换用户之后 conda 命令不存在
解决方法:在新用户下设置环境变量。
安装 cuda
安装 cuda 是一个艰难的过程……加油!
注意:版本选择问题:首先,务必先在官网确认你想下载的pytorch版本对应的cuda版本,再确定你的驱动的版本,有些cuda版本是没有对应的 torch 版本的(比如 cuda11.2)
安装前准备
- 确认显卡驱动安装无误
nvidia-smi
出现下图是正确的。下面的 CUDA Version 指的是该版本的驱动支持的最高cuda版本。
如果没有出现上图,说明显卡驱动装错了。换一个驱动。
在 Ubuntu 下更换驱动的方法:软件和更新 -> 附加驱动 -> 选择你的心动驱动 -> 应用更改。如果提示重启生效,请重启,不要做无谓的挣扎。 - 下载对应的安装文件
前往官网下载对应的 cuda 文件。请注意,如果需要下载以前的版本,在网页下端 Resources 部分有 Archive of Previous CUDA Releases 链接,点进去可以下之前的版本。如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ueN37MgK-1670298206967)(:/429b2e56152549958415b37bb13b03d0)]
选好之后,下面会给出下载的链接,运行
wget https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run
- 确认依赖包已安装
在安装 CUDA Toolkit 前,要确保系统安装了 gcc 和 make。如果希望使用 C++ 进行 CUDA 编程,需要安装 g++。如果想要运行 CUDA 例程序,需要安装相应的依赖库。(一般运行第二句就行了)
sudo apt update # 更新 apt
sudo apt install gcc g++ make # 安装 gcc g++ make
sudo apt install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev freeglut3-dev # 安装依赖库
- 确认nouveau已经禁用
输入lsmod | grep nouveau
,无事发生则可以。一般正确安装了 nvidia 驱动这个就已经被禁掉了。 - 关闭图形界面
sudo telinit 3
(可以通过sudo systemctl start gdm3
回到图形界面)
如果输入该命令后,黑屏,没有图形界面也没有命令界面,就是显示屏失去信号,那也许是显卡驱动的问题,请更换显卡驱动。
正式开始安装
- 运行 cuda 文件
sudo chmod a+x cuda_9.2_linux.run # 给cuda文件可执行权限
sudo ./cuda_9.2_linux.run --no-opengl-libs # 运行
cuda主要有以下参数:--no-opengl-libs
:表示只安装驱动文件,不安装OpenGL文件。必需参数,原因同上。注意:不是-no-opengl-files。--uninstall (deprecated)
:用于卸载CUDA Driver(已废弃)。--toolkit
:表示只安装CUDA Toolkit,不安装Driver和Samples--help
:查看更多高级选项。
- 安装注意事项
- 会先有个阅读声明,一直按D即可,然后accept。
- 选项install nvidia accelerated Graphics Driver,输入n,因为我们已经安装了nvidia的驱动。
- 选项install the OpenGL libraries,如果双显卡(集显+独显)选择n,如果只有独显可以选择y,如果双显卡选择y的话,会出现黑屏或者循环登录的问题,如果加了上面的参数就不会出现这个选项了。
- 后面的可以都选择yes,最后一个选项我们可以选择n,也就是不复制Samples,因为安装目录下有samples。
- 安装过程结束后会有以下信息:
Driver :Installed
Toolkit :Installed in /usr/local/cuda-9.2
Samples :Installed in /home/vincent
- 修改环境变量
这里可能需要重启一下。然后进入终端,修改环境变量
vim ~/.bashrc
在文末加上
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
保存退出,运行以下命令使其生效:
source ~/.bashrc
注意,我们这里写的环境变量是/cuda
而不是/cuda-11.2
之类的,这里可以通过软链接同时安装多个版本的 cuda 并进行管理。
sudo rm -rf cuda # 删除之前的软链接
sudo ln -s /usr/local/cuda-11.2 /usr/local/cuda # 创建新的软链接
- 验证是否安装成功
nvcc -V
可能出现的问题
- 切换用户之后 nvcc 命令不存在
解决方法:在新用户下设置环境变量。 nvcc
命令不存在并且建议通过 apt 安装
解决方法:这种很可能是因为环境变量没设置好,你已经安装过 cuda 了,所以不要再安一次。设置好环境再试试。记得设置好后用 source 命令使其生效。
安装 cudnn
- 下载文件
根据 cuda 版本,在官网找到对应的 cuDNN 版本。
需要账号。自己申请一个就行,没什么限制。
复制cuDNN库的链接,使用 wget下载或者下载。 - 解压
tar -xvf cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive.tar.xz
- 复制,授权
cd cudnn-linux-x86_64-8.4.0.27_cuda11.6-archive
sudo cp lib/* /usr/local/cuda-11.2/lib64/
sudo cp include/* /usr/local/cuda-11.2/include/
sudo chmod a+r /usr/local/cuda-11.2/lib64/*
sudo chmod a+r /usr/local/cuda-11.2/include/*
- 验证安装成功
通过下面的命令查看安装情况,如果结果如下图逐行显示版本号,则安装成功。
旧版为cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
,新版为cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
安装 pytorch
- 新建并进入虚拟环境
conda create env_name python=3.9
conda activate env_name
- 获得下载链接并下载安装
去官网获取对应版本的下载链接。如果用 conda 命令下载,一直卡在检查环境那里,可能是版本对应不完美,就算了别纠结,换成 pip 命令下载。 - 验证安装成功
进入 python,import torch
torch.cuda.is_available()
可能出现的问题
如果报错 "ERROR: Could not find a version that satisfies the requirement … (from versions: …) "版本找不到,但是下载连接是从官网复制的,那么大概率是你的 python 版本太低或者太高,用 conda 命令改下 python 版本(至于改到哪个版本,你看你要下载的 pytorch 版本和报错信息中提供的版本,如果报错信息中有的版本比你要下载的基本都低,那就升高 python,具体升高到多少不确定,+0.2试试,不行再改):
python3 --version
# 查看目前 python 版本conda install python=x.x
# 更新 python 版本
快速查询
官网网址
清华 anaconda 镜像源
nvidia cuda 官网
nvidia cudnn 官网
pytorch 官网
版本选择
首先,务必先在官网确认你想下载的pytorch版本对应的cuda版本,再确定你的驱动的版本,有些cuda版本是没有对应的 torch 版本的(比如 cuda11.2)
其次,如果想装 detectron2,先去官网看看目前有哪些可以下载。如果你的 torch 版本或者 cuda 版本过高,可能会没有适配的 detectron2。
环境变量
切换用户之后无法使用:暂时我也没搞清为什么,所以每个用户都是设置的单独的环境配置文件。
vim ~/.bashrc
- 使用
export
加入对应的环境,保存退出。 source ~/.bashrc
注意,最后这句不运行的话不起效
- conda 环境变量
export PATH=$PATH:/home/software/anaconda3/bin
- cuda 环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
- 切换 cuda 版本软链接
sudo rm -rf cuda # 删除之前的软链接
sudo ln -s /usr/local/cuda-11.2 /usr/local/cuda # 创建新的软链接
验证
- 验证 conda
conda --version
- 验证显卡驱动
nvidia-smi
如果没有打印表,说明显卡驱动装错了。换一个驱动,如果提示重启生效,请重启,不要做无谓的挣扎。 - 验证 cuda
nvcc -V
注意,这里如果显示无此命令,建议用 apt 安装,别信他的,这是因为没有配置好环境变量的原因,请按照环境变量那一节配置。 - 验证 cudnn
旧版为cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
新版为cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
- 验证 pytorch
torch.cuda.is_available()