踩了几乎能踩的所有坑,真是要命。
直接从1 购买云服务器开始看即可
一些可能用到的命令
-
nvidia-smi
:查看cuda driver的版本 -
看整个系统当前cuda的版本
nvcc --version
:说没有找到nvcc命令也不要着急下载nvcc,可以先用3.找找看cat /usr/local/cuda/version.txt
-
ls /usr/local/cuda*
:找找有没有下载过cuda,找到之后手动写到.bashrc文件里 -
python -c "import torch;print(torch.version.cuda)"
-
一些虚拟环境下的命令
import torch print(torch.__version__)# 当前环境下pytorch的版本 print(torch.cuda.is_available())# 当前环境下pytorch和cuda版本是否匹 配:true print(torch.version.cuda)# 当前环境下的cuda版本 print(torch.backends.cudnn.version())# 当前环境下的cudnn版本 import tensorflow as tf print(tf.test.is_built_with_cuda()) # 当前环境下tensorfolw和cuda版本是否匹配:true print(tf.test.is_gpu_available(cuda_only=False,min_cuda_compute_capab ility=None)) # gpu是否可以被tf调用:true
-
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
:查看系统cudnn版本 -
conda list cuda
conda list cudnn
:conda list +名字,查看当前虚拟环境下的版本 -
修改配置文件,重读配置文件
vim ~/.bashrc source ~/.bashrc
1 购买云服务器
很多开源项目只能用比较低版本的cuda等。
注意30系列的显卡只能支持cuda11以上
有些服务器已经含有镜像,包含操作系统(注意一下cuda和操作系统的版本)
如果不包含镜像,记得自己安装cuda,注意一下cuda的版本,很多程序不支持版本高的。
本人用的ubuntu 16.04+cuda9.0+anaconda3(cudnn7.1.2+tensorflow1.8.0+pytorch1.0.0)
2 非虚拟环境安装cuda cudnn(虚拟环境请看4)
首先使用nvidia-smi
查看gpu信息,看看你的driver version
对照图片找到合适的版本
此处以9.0版本为例,使用软链接。如果你需要安装多个版本的cuda、cudnn,使用软链接即可。
2.1 cuda
英伟达官网下载run版本的cuda,注意版本对应。
wget 链接
命令下载。(在官网下载包处右键点击复制链接,即可复制链接。)
如9.0run版本的 wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run
然后chmod +x cuda_9.0.176_384.81_linux-run
,上述代码的目的是赋予权限。
然后再执行:sudo sh cuda_9.0.176_384.81_linux-run
开始安装,注意安装时不选中显卡驱动(此处安装可能会出现编译错误)。
安装完毕后,在vim ~/.bashrc
添加环境变量,意思是cuda的路径在哪(按 i 插入,esc退出编辑, :wq保存并退出文件)
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
然后重启teminal,或者source ~/.bashrc
然后
# 意思是将cuda9.0链接到cuda路径上,之后也可以链接到其他版本)
sudo rm -rf /usr/local/cuda #删除之前创建的软链接
sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda #创建新 cuda 的软链接
并输入nvcc -V
测试是否安装成功。(也可以用cat /usr/local/cuda/version.txt
)
(9.0版本需要把patch包也下载了,使用sudo sh patch包名
安装)
2.2 cudnn(需要你登录nvidia的账号
英伟达官网
wget 链接.tgz
(library:全的包.tgz,runtime:只用于运行、不可开发的包.deb,developer:全的?.deb)
下载后进行解压:tar -zxvf cudnn-9.0-linux-x64-v7.4.2.24.tgz
(如果提示说这不是个gzip格式的包,用file 文件名
看一下文件格式,大概率是各html文件,这说明你下载错了。)
然后执行如下代码:将cudnn的lib64和include文件复制到cuda的目录,
cp cuda/lib64/* /usr/local/cuda-9.0/lib64/
cp cuda/include/* /usr/local/cuda-9.0/include/
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*
查看cudnn的版本命令如下:cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
在conda list里看的cudnn版本是你的虚拟环境里的,上面这个查出来的是公共的)
(更换cudnn:
- 卸载旧版本的cuDNN:
sudo rm -rf /usr/local/cuda/include/cudnn.h sudo rm -rf /usr/local/cuda/lib64/libcudnn*
- 按照正常步骤安装cuDNN
)
3 下载xshell,连接远程服务器
在xshell中进行环境配置操作
4 虚拟环境配置
4.1 下载anaconda(此处选择2021.05版本)
-
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
下载安装包 -
bash ~/Downloads/Anaconda3-2021.05-Linux-x86_64.sh
此处需要改成你自己的下载路径,比如我的是bash ~/Anaconda3-2021.05-Linux-x86_64.sh
-
一直yes(除了问是否安装vscode输入no,其他都输入yes)
-
添加anaconda环境变量(有时它会自动添加好,打开bashrc文件后,看看里面有没有,一般在末尾)
编辑.bashrc文件此时不必手动添加
如果没有上图内容,先按下“i”键切换到插入模式。按下i后,左下角会有“INSERT”显示,表示我们现在敲打键盘即可插入文字。
在开头输入如下内容:#Anaconda export PATH=/home/用户名/anaconda3/bin:$PATH`
其中用户名部分换成你的,如我的是 root
如下图效果:(你的文件内容不一定和我的一样)
按下esc退出编辑模式,输入:wq
保存并退出
输入source ~/.bashrc
重新激活一下。
首先sudo -s
- 此时输入
which python
即可发现当前使用的python是anaconda3中的。(/root/anaconda3/bin/python)
4.2 下载传输文件的工具
apt-get install -y lrzsz
,安装一个便于我们文件传输的工具。
命令行输入rz,会弹出一个窗口,找到我们之前下载的文件,选择“打开”。
4.3 修改镜像源
可以自己加一些清华、中科院、豆瓣的镜像源,下载包的时候会快很多!
如添加清华源
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
# 添加两个镜像
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
# 显示来源
conda config --set show_channel_urls yes
# 展示已有镜像
conda config --show channels
4.4 使用anaconda配置所需环境即可
-
下载时一定要先创建、激活环境
-
conda create -n XXX(环境名) python=3.6 anaconda
创建一个python3.6环境
conda activate 环境名
激活该环境,可以看到base变为你的环境名
下载可以用conda、也可用pip命令 -
如果下载pytorch:注意conda命令下载的pytorch自带cuda和cudnn,删除掉命令中的部分后也可以只下载pytorch
可以查一下这个表(pytorch、tensorflow、cuda版本对应) -
在不同虚拟环境中可安装不同版本的cuda、cudnn等,可以认为一个环境是一台主机环境。
安装cuda(不需要配置环境变量)
conda install cudatoolkit=9.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
(cudatoolkit=版本号)
安装cudnn
conda install cudnn=7.0.5 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/
查看版本号
conda list cudnn
conda list cuda
conda list tensorflow
注
如果上述conda的清华源URL失效,可尝试换成
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
5 下载pycharm pro,以用来编辑代码
- 一定要下载专业版,社区版不提供连接服务器功能。license自己想办法搞一个,是学生的话可以用学生认证,用jetbrain账号,即时就能拿到license。
- 注意一下区别,前者源程序在服务器上,后者源程序在本地。
用pycharm拉取远程服务器上的程序并运行
pycharm上传程序到远程服务器并运行
然后就可以愉快的,运行项目了,无论是直接xshell命令行运行还是pycharm里用服务器的python interpreter,都可以实现啦。
文件传输,也可以直接拖拽上传和下载,不需要rz
了。
6 拉取github的项目
有时候会很慢,还会失败,所以可以参考下面这个方法,会快不少。
利用gitee拉去github上的项目