中途踩了好多坑,折腾了快一个礼拜才跑出来,真的好搞心态!!这篇帖子详细记录怎么用用阿里云服务器运行深度学习代码,雷点也都会说清楚。

  我的代码运行环境:

  一、购买云服务器

  建议买的时候联系客服,说下自己的需求,客服会给出比较好的建议。现在有的优惠是300元优惠券和3个月试用,但3个月试用的配置好像比较一般。

  这里提供下我的配置。付费类型,考虑到抢占式实例有可能会被自动释放、影响跑代码,我使用了按量付费。地域选择一个离自己比较近的。网络根据默认。

  云服务器配置_云服务器的基本配置_云服务器怎么配置环境

  实例选择GPU类中的共享型GPU。镜像根据环境要求,选择了Ubuntu16.04,并且安全加固。

  这里附上阿里云提供的参考:

  轻量级GPU是指GPU计算型实例,可以降低小规模AI推理过程的使用成本;共享型GPU是指GPU虚拟化型实例,CPU和网络资源采用共享模式提供,内存和GPU显存采用独享模式提供,为您提供数据隔离和性能保障。GPU与CPU配比:对于深度学习训练,考虑GPU与CPU的最佳比例在1:8到1:12之间。如果是通用深度学习、图像识别推理等场景,GPU与CPU的比例推荐为1:4到1:12之间。如果涉及大规模的深度学习训练,推荐使用GPU加速型实例,如GN系列或P系列,这些实例配备高性能NVIDIA GPU,适合深度学习和科学计算场景。(可以选择安装GPU驱动,就不用自己配啦)

  云服务器配置_云服务器怎么配置环境_云服务器的基本配置

  存储部分,开启了快照服务。

  云服务器的基本配置_云服务器怎么配置环境_云服务器配置

  带宽和安全组部分,记得勾上公网IP,方便远程连接服务器。安全组默认。

  云服务器配置_云服务器怎么配置环境_云服务器的基本配置

  选择密钥对,登录服务器的时候就用密钥对验证。自己创建一个,并且保存好密钥对的.pem文件就好了。

  云服务器配置_云服务器的基本配置_云服务器怎么配置环境

  下单,成功购买服务器啦。进入管理控制台,进行接下来的操作。

  二、连接服务器

  可以使用阿里云提供的workbench进行远程连接。我使用的是Xshell进行远程连接,Xftp进行文件传输。安装教程:Windows 下 xshell 和 xftp 安装与使用_window安装xshell xftp-CSDN博客

  连接教程:如何用云服务器进行深度学习 - 知乎 (zhihu.com)(第二节~)

  连接上了以后我出现了提示:/usr/bin/xauth: file /root/.Xauthority does not exist,这个不是问题,具体可看:【庖丁解牛】xshell链接服务器 /usr/bin/xauth: file /root/.Xauthority does not exist_/usr/bin/xauth: file /root/.xauthority does not ex-CSDN博客

  三、配置环境 1、安装GPU驱动

  一般都是上网下载NVIDIA驱动并安装,不过在我各种报错并咨询阿里云客服后,发现因为购买的是GPU虚拟化实例ecs.sgn7i-vws,需要安装GRID驱动^^...

  参考文档:通过云助手安装一下grid驱动就可以了,中途遇到问题可以咨询客服解决。在附录补充了NVIDIA驱动的安装教程,别的实例类型也可以参考~

  安装好后,输入以下命令查看当前GPU的所有基础信息:

  nvidia-smi

  这里你会看到有个CUDA的版本,这是CUDA Driver API的型号,也是硬件可以支持的CUDA的最高型号。

  2、安装CUDA

  这里有个大雷点:一定要注意CUDA版本!!

  查看电脑GPU的算力:CUDA GPUs - Compute Capability | NVIDIA Developer,以我为例,在实例中看到型号是NVIDIA A10,查找到算力为8.6。

  云服务器的基本配置_云服务器怎么配置环境_云服务器配置

  根据算力,找到支持该算力的对应的CUDA版本。虽然我的开源代码是在CUDA10.1上运行,但是其仅支持算力3.7,5.0,6.0,7.0;于是我重新安装了CUDA11.1,符合算力要求。

  补充说下,使用以下命令,在终端进入python,可查看当前版本的pytorch依赖的CUDA算力支持:

   import torch

  接下来就是安装CUDA11.1,在官网中找到安装链接:CUDA Toolkit 11.1.0 | NVIDIA Developer

  云服务器的基本配置_云服务器配置_云服务器怎么配置环境

  根据官网给出的教程操作就好了,附上代码:

   wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run

  接下来进行环境变量的配置:

   #修改~/.bashrc文件

    vim ~/.bashrc
    #在文件的末尾加入下面两行(记得换成自己安装的CUDA版本号)
    export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    #按ESC,输入:wq,并回车,保存退出
    #更新环境变量

  通过以下命令查看CUDA版本(CUDA Runtime API),验证是否安装成功:

  nvcc -V

  3、安装CUDNN

  参考文章:如何用云服务器进行深度学习 - 知乎 (zhihu.com)(3.1.2部分)

  补充一些出入,传输文件的端口打开部分,阿里云界面略有变化,点击侧栏的【安全组】【操作-管理规则】:

  云服务器配置_云服务器怎么配置环境_云服务器的基本配置

  【快速添加】,之后根据文章中来就好了:

  云服务器配置_云服务器怎么配置环境_云服务器的基本配置

  最后验证环节,我找了半天才找到,可以参考:

  cat /usr/local/cuda-11.1/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

  4、安装anaconda

  清华镜像源好像不对阿里云服务器开放,所以我用阿里云镜像源下载了,地址:anaconda-archive安装包下载_开源镜像站-阿里云 (aliyun.com)

  找到要下载的版本(这里选择 Anaconda3-5.0.0.1-Linux-x86_64.sh

  ),复制链接:

   #下载安装包

    wget https://mirrors.aliyun.com/anaconda/archive/Anaconda3-5.0.0.1-Linux-x86_64.sh
    #查看安装包名
    ls
    #安装

  参考文章:如何用云服务器进行深度学习 - 知乎 (zhihu.com)(3.2部分),添加变量就好了~

  介绍一些常用的环境管理代码:

   #创建环境

    conda create -n 环境名 python=python版本
    #激活环境,从base进入到创建的环境
    conda activate 环境名
    #退出该环境
    conda deactivate
    #删除环境(需要先退出该环境)
    conda remove -n 环境名 --all
    #查看全部环境
    conda env list
    #查看环境中安装的包

  5、修改conda镜像源

  修改成国内的阿里云镜像源,代码如下:

   conda config --add channels http://mirrors.aliyun.com/anaconda/pkgs/main

    conda config --add channels http://mirrors.aliyun.com/anaconda/pkgs/r
    conda config --add channels http://mirrors.aliyun.com/anaconda/pkgs/msys2

  四、源码上传

  参考文章:记录一次服务器跑数据的全过程_如何使用远程服务器跑数据-CSDN博客(第五节)

  五、虚拟环境中配置深度学习框架

  又是一个大雷点,一定要注意版本匹配!

  这是我的代码需要的包:

  云服务器怎么配置环境_云服务器的基本配置_云服务器配置

  1、安装PyTorch

  因为安装的CUDA版本变化,所以相应的pytorch版本也发生了变化。根据官网来:

  Previous PyTorch Versions | PyTorch

  pip install --no-cache-dir torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

  安装好以后,终端进入python验证:

   import torch

    #查看PyTorch版本
    print(torch.__version__) 
    #验证cuda是否被PyTorch检测到
    torch.cuda.is_available()
    #output:True
    #验证PyTorch能不能调用cuda加速
    torch.tensor([1.0, 2.0]).cuda()

  2、安装pytorch-geometric

  进入链接,找到对应torch版本并进入,安装相关包。

   pip install --no-index --upgrade torch-scatter==2.0.6 -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html

    pip install --no-index --upgrade torch-sparse==0.6.9 -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html
    pip install --no-index --upgrade torch-spline-conv==1.2.1 -f https://pytorch-geometric.com/whl/torch-${TORCH}+${CUDA}.html

  3、安装其他相关包

  和截图中一样,全部包安装完就可以跑代码啦~

  附录A 安装NVIDIA驱动

  注意驱动一定要和GPU型号对应!

  进入官网Official Drivers | NVIDIA,选择对应配置。我的GPU型号是GA102GL [A10],对应下图:

  云服务器的基本配置_云服务器怎么配置环境_云服务器配置

  点击search后,可在supported products中查看支持的型号。点击download,进入下一页面,复制Agree& Download的链接。

  云服务器配置_云服务器的基本配置_云服务器怎么配置环境

   wget https://us.download.nvidia.com/tesla/535.154.05/NVIDIA-Linux-x86_64-535.154.05.run

    sudo chmod a+x NVIDIA-Linux-x86_64-535.154.05.run

  参考文章:Ubuntu18-22.04安装和干净卸载nvidia显卡驱动——超详细、最简单_ubuntu安装nvidia显卡驱动-CSDN博客

  补充一个问题和解决方法:“you appear to be running an x server please exit x before installing”

   sudo /etc/init.d/lightdm stop

最后修改:2024 年 08 月 15 日
如果觉得我的文章对你有用,请随意赞赏