Xshell远程连接进行Ubuntu的Pytorch配置
- 写在最前面
- 参考
- Xshell常用命令
- Ubantu
- 检查系统的各项配置
- 查看ubuntu系统的版本信息和gcc版本
- 查看Linux的内核版本和系统是多少位的
- 验证机器是否具有n卡
- 各种配置(建议不要省略)
- 安装vim
- 增加pip镜像源
- 禁用nouveau
- 开启SSH服务
- 安装显卡驱动
- 卸载显卡驱动
- 安装显卡驱动
- 加入PPA,然后更新库
- 直接装系统推荐显卡驱动,出错几率小(但需要注意:cuda11.3要求465以上!!!)
- 测试安装状态
- CUDA
- 选择
- 下载+安装
- 下载axel + 将com改为cn
- 执行结束
- 配置环境
- 测试CUDA
- CUDNN
- 下载+安装
- 查看cudnn版本
- Anaconda
- 下载+安装
- 环境配置
- 添加清华源
- Pytorch
- 创建conda虚拟环境
- 安装
- 安装cpu版本
- 安装gpu版本
- 测试
- cpu only测试
- gpu测试
写在最前面
Ubuntu 18.04 + CUDA 11.3.0 + CUDNN 8.2.1 + Anaconda + Pytorch 1.10
不需要有外网,也不需要虚拟机的图形化界面
下载安装都是本机去阿里镜像网站下载whl,然后通过xftp传输,失败率降到最低
若报错,可参考完整流程:https://blog.csdn.net/wtyuong/article/details/127877543
参考
https://blog.csdn.net/TU_Dresden/article/details/121049141
https://blog.csdn.net/weixin_43491255/article/details/118549032
https://blog.csdn.net/a563562675/article/details/119458550
https://blog.csdn.net/a563562675/article/details/119458550
https://blog.csdn.net/qq_44315987/article/details/106314054
(下面这个链接内含各种报错)
https://blog.csdn.net/Williamcsj/article/details/123523087
https://blog.csdn.net/A496608119/article/details/123455529
https://blog.csdn.net/qq_51570094/article/details/124148671
Xshell常用命令
Ctrl + Shift 复制
Insert + Shift 粘贴
Ubantu
Ctrl+Alt+T打开终端
检查系统的各项配置
查看ubuntu系统的版本信息和gcc版本
cat /proc/version
Linux version 5.4.0-131-generic (buildd@lcy02-amd64-092) linux内核版本号
gcc version 7.5.0 gcc编译器版本号7.5
Ubuntu 7.5.0-3ubuntu1~18.04 Ubuntu版本号18.04
查看Linux的内核版本和系统是多少位的
uname -a
显示正在使用的内核为5.4.0-131-generic。
X86_64代表系统是64位的。
验证机器是否具有n卡
lspci | grep -i nvidia
验证内核
sudo apt-get install linux-headers-$(uname -r)
查看原有的显卡版本和CUDA支持(如果安装了跳过安装显卡nvidia)
nvidia-smi
各种配置(建议不要省略)
安装vim
sudo apt-get install vim
增加pip镜像源
检查pip源
pip config list
增加镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simpleWriting to /home/tjh/.config/pip/pip.conf
禁用nouveau
sudo vim /etc/modprobe.d/blacklist.conf
打开上述文档添加这两行保存
blacklist nouveau
options nouveau modeset=0
刷新
sudo update-initramfs -u
重启电脑,一定要重启。
sudo reboot
然后输入这个命令
lsmod | grep nouveau
如果啥也没输出,就是成功关闭了。
开启SSH服务
https://blog.csdn.net/qq_42130526/article/details/119972366
检查是否开启SSH服务
因为Ubuntu默认是不安装SSH服务的,所以在安装之前可以查看目前系统是否安装,通过以下命令:
ps -e |grep ssh
输出的结果ssh-agent表示ssh-client启动,sshd表示ssh-server启动。我们是需要安装服务端所以应该看是否有sshd,如果没有则说明没有安装。
启动SSH服务
sudo /etc/init.d/ssh start
安装显卡驱动
卸载显卡驱动
sudo apt-get remove --purge nvidia*
sudo apt autoremove
安装显卡驱动
加入PPA,然后更新库
sudo apt-get update
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
直接装系统推荐显卡驱动,出错几率小(但需要注意:cuda11.3要求465以上!!!)
会自动安装推荐的版本(一般是最高的版本)
sudo ubuntu-drivers autoinstall
报警告且不动时,再等一会就开始自己安装了
警告类似于:
WARNING:root:_pkg_get_support nvidia-driver-510-server: package has invalid Support n model
最后的界面显示
测试安装状态
查看状态后需要重启!!!
sudo reboot
使用nvidia-smi 查看是否已经读取到安装的驱动,如果提示没有找到命令重启后再试
nvidia-smi
会出现显卡版本和CUDA支持
例子:
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
这个表示:显卡P106-100,显存6G,驱动430.26,CUDA10.2
CUDA
选择
下载前仔细看这张图
Table 1. CUDA Toolkit and Compatible Driver Versions
CUDA Toolkit Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 10.2.89 >= 440.33 >= 441.22
CUDA 10.1 (10.1.105 general release, and updates) >= 418.39 >= 418.96
CUDA 10.0.130 >= 410.48 >= 411.31
CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26
CUDA 9.2 (9.2.88) >= 396.26 >= 397.44
CUDA 9.1 (9.1.85) >= 390.46 >= 391.29
CUDA 9.0 (9.0.76) >= 384.81 >= 385.54
CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51
CUDA 8.0 (8.0.44) >= 367.48 >= 369.30
CUDA 7.5 (7.5.16) >= 352.31 >= 353.66
CUDA 7.0 (7.0.28) >= 346.46 >= 347.62
上图给出了不同版本所要求的的最低驱动要求,尽量选择相同的进行安装。
编译cuda samples会报错,例如 chrono模块、gcc版本过高等提示。
与之前的gcc版本进行比对
gcc --version
cuda的gcc依赖版本在官方文档的安装指南上会给出
我是Ubuntu18.04.6,gcc7.5.0
下载+安装
进入官网
https://developer.nvidia.com/cuda-toolkit-archive
普通机器:x86_64 服务器 power architecture
选择需要的CUDA安装包(runfile格式)
可以创建一个文件夹保存下载的文件,然后在终端切换到那个目录下,进行相应的命令行 (如下图末尾箭头所指)
一定要注意版本!!!
网上推荐CUDA 11.3.0 + CUDNN 8.2.1 + Pytorch 1.10
这三者的组合非常麻烦,这套亲测成功,别的搭配不敢保证。
例子:
实际:
不用wget下载,容易因为网不好报错
下载axel + 将com改为cn
Tensorflow官网下载东西也是无法直接访问的,但是可以通过镜像访问。微软的官网直接访问速度很慢,可是把网站的后缀.com改成.cn后速度就很快了。
访问确实快了,但是下载的连接改为cn后是404页面,需要进一步操作
参考:https://blog.csdn.net/yxt916/article/details/109402650
1.下载axel(wget的哥哥):
终端输入:
sudo apt install -y axel
2.看图,复制底下的下载链接:(以下是cuda11.3.0的下载链接,做个示范,你需要复制对应自己的)
http://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run
3.把.com改成.cn,使用axel下载cuda11.1:
终端输入:
axel -n 50 http://developer.download.nvidia.cn/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run
(注意这里网址里的.com已经改成了.cn)(具体参数 -n 50作用:狡兔50窟)
效果:不断线,不降速,已经是成了
执行结束
sudo sh cuda_11.3.0_465.19.01_linux.run
上述命令执行结束出现一个框
通过方向键下移光标,选择continue
打字输入accept
然后就是下面这个了
由于已经安装了驱动 按方向键,使得光标在driver上,再按回车,之后通过方向键使光标移动到install
此时下图里需要将第一行的Driver CUDA 11.0去掉。(注意:回车键作用是将 [X] 就会变成[ ],[X]代表有,[ ]代表无)
应该将[X] 就会变成[ ]
成功了
配置环境
装好之后打开环境变量
vim ~/.bashrc
i键进入编辑模式,esc退出,写:wq保存退出
加入这两行保存,注意我这里是11.3,你如果是别的版本,要改成自己的
export PATH="/usr/local/cuda-11.3/bin:$PATH"
export LD_LIBRARY_PATH="/usr/lcoal/cuda-11.3/lib64:$LD_LIBRARY_PATH"
刷新环境变量生效
source ~/.bashrc
测试CUDA
1、查看版本
nvcc -V
2、终端输入
cd /usr/local/cuda-11.3/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
输出Result=pass代表成功了,里面显示了CUDA可用的设备信息。
CUDNN
下载+安装
参考:https://blog.csdn.net/avideointerfaces/article/details/104793245
进入网址下载,要把cudnn版本与cuda版本对应正确
https://developer.nvidia.com/rdp/cudnn-archive
上述网址需要注册登录,按照要求完成即可
tgz易错,但deb卸载麻烦(本文下载tgz文件)
本机翻墙下载cudnn-11.3-linux-x64-v8.2.1.32,然后Xftp传过去
查看传过去后的文件名
ls
进入下载后的文件夹解压后,就可以看见cuda文件夹
在解压后的文件夹中输入一下命令
重命名,然后再解压缩。命令如下所示。
mv cudnn-11.3-linux-x64-v8.2.1.32.tgz cudnn-11.3.tgz
tar -xvzf cudnn-11.3.tgz
因为下载的是库,不是源代码,所以不需要编译了。只需要将解压缩出来的so库和头文件拷贝到系统目录下即可。
将cudnn解压后的include和lib64文件夹复制到cuda中
cuda-11.3 此处是自己版本号 。
一行行复制,因为要输密码
sudo cp cuda/include/cudnn.h /usr/local/cuda-11.3/include/ #解压后的文件夹名字为cuda-11.3
sudo cp cuda/include/cudnn_version.h /usr/local/cuda-11.3/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.3/lib64/
sudo chmod a+r /usr/local/cuda-11.3/include/cudnn.h
最后安装一下依赖
sudo apt-get install libfreeimage3 libfreeimage-dev
查看cudnn版本
之前网上提供的方式cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2已经不能用了,因为cudnn.h文件里内容修改了,不再存放版本信息。
使用命令
cat /usr/local/cuda/include/cudnn.h | grep cudnn
查看,发现里面导入了cudnn_version.h文件,版本信息就存放在这个文件里
Anaconda
下载+安装
方法1:Anaconda3官网下载
方法2:清华大学开源软件镜像站下载
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
里面有新旧版本,我下载的是Anaconda3-2021.05-Linux-x86_64.sh版本,如果大家需要其它版本,把这个后缀换成你想下的版本即可;
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.05-Linux-x86_64.sh
1、运行.sh文件
bash Anaconda3-2021.05-Linux-x86_64.sh
2.进入安装,输入yes
3.进入阅读注册手册,按 Enter 键
4.注册手册阅读完, 输入yes进行安装,然后会安装成功
环境配置
5.安装成功后,用vim打开环境变量:
sudo vim ~/.bashrc
添加下列语句,保存并退出
注意: “/home/sc/anaconda3/bin:$PATH” 的 sc是自己的用户名称,每个人都不一样,不知道可以看上面的打开的环境变量有个样本
export PATH="/home/sc/anaconda3/bin:$PATH"
更新环境变量
在终端输入:
source ~/.bashrc
添加清华源
将anaconda换一下源(加入清华源)
参考:https://blog.csdn.net/qq_31878083/article/details/122069771
vi ~/.condarc
把channels里面的https改成http
这个是网络安全的原因,https协议是有安全性的ssl加密传输协议,是浏览器和服务器之间的通信加密,这样来确保传输的安全。
auto_activate_base: false
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true
default_channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
为了保证用的是镜像站提供的索引,清除索引缓存,输入:
conda clean -i
根据不同要求得到命令后,要把-c pytorch去掉,才会去自己添加的镜像源下载
此时,Anaconda3的基础设置弄完了
Pytorch
创建conda虚拟环境
创建一个虚拟环境,用来安装pytorch
conda create -n pytorch1.12_gpu
or,可以选择Python版本
conda create -n pytorch1.12_gpu python==3.8
这样就创建了一个名字为pytorch1.12_gpu,基于python版本3.8的一个虚拟环境了
激活环境
conda activate pytorch1.12_gpu
或
source activate pytorch1.12_gpu
安装
进入官网,查看你的版本对应的安装命令
https://pytorch.org/get-started/locally/
大家根据自己的情况从上面选一个
安装文件非常大,因此我选择本机下载,然后传过去
安装cpu版本
参考:https://blog.csdn.net/ke996/article/details/112761228
去官网查看目前的稳定版本为1.13.0
pytorch的whl下载地址.
https://download.pytorch.org/whl/torch_stable.html
也就是需要下载这两个包
cu113/torchvision-0.13.0%2Bcu113-cp39-cp39-linux_x86_64.whl
cu113/torch-1.12.0%2Bcu113-cp39-cp39-linux_x86_64.whl
注意cu才是cpu版本,我是cuda11.3,所以选择了这个
特别重要的是cp后面跟着是python版本这个也要下载相应版本
下载到本地后:进入conda环境激活对应的python36
conda env list
conda activate pytorch1.12_gpu
下载python3.9
conda install python=3.9.0
pip install+ whl文件位置
比如我的
pip install --no-index --find-links=file:/home/tjh/torch-1.12.0+cu113-cp39-cp39-linux_x86_64.whl(需要替换文件位置)
安装gpu版本
参考:https://blog.csdn.net/weixin_46415031/article/details/114809650
官网查看配套安装包(但是不要直接安装,而是去镜像网站找,然后下载配套的安装包)
(下面这个不要执行)
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorch
pytorch的whl下载地址.
https://download.pytorch.org/whl/torch_stable.html
比如:torch-1.8.0+cu111-cp36-cp36m-win_amd64.whl
torchvision-0.9.0+cu111-cp36-cp36m-win_amd64.whl
下载后通过Xftp上传
下载到本地后:进入conda环境激活对应的python36
conda env list
conda activate pytorch1.12_gpu
下载python3.9
conda install python=3.9.0
pip install+ whl文件位置
比如我的
pip install --no-index --find-links=file:/home/tjh/torch-1.12.0+cu113-cp39-cp39-linux_x86_64.whl(需要替换文件位置)
测试
进入虚拟环境,输入命令测试,大功告成!
python3
import torch
torch.cuda.is_available()
print(torch.__version__) #输出PyTorch版本
print(torch.__path__) #输出PyTorch的路径
退出虚拟环境的命令:
conda deactivate
conda env list
cpu only测试
环境名称为pytorch11.3_cpu
查看torchvision 版本
conda list torchvision
gpu测试
pytorch下载:由于通过命令行下载的pytorch版本是cpu版本,导致后期测试torch测试是否可以使用GPU 时,torch.cuda.is_available()一直返回False.