当前位置:   article > 正文

ubuntu 18.04下安装Anaconda、Cuda、Cudnn、gpu-Pytorch_arm64-sbsa

arm64-sbsa

        登录服务器后,首先查看下系统版本:cat /proc/version ,我们这个服务器有点特殊是arm版本的,通过nvidia-smi查看服务器显卡配置, 这意味着我们要安装的cuda版本最高不能超过11.4,那么我们这里选择一个比较稳定的版本cuda 11.3。

安装显卡驱动:

  1. 1.查看显卡驱动
  2. cat /var/log/dpkg.log | grep nvidia
  3. ubuntu-drivers devices
  4. 2.更新前先把已经安装好的闭源驱动给卸载了。
  5. sudo apt purge nvidia-driver nvidia-kernel-dkms nvidia-*
  6. sudo apt autoremove
  7. 3.下载驱动run文件https://cn.download.nvidia.cn/XFree86/Linux-x86_64/535.54.03/NVIDIA-Linux-x86_64-535.54.03.run,执行以下代码,一路enter
  8. sudo ./NVIDIA-Linux-x86_64-535.54.03.run --no-x-check

1. anaconda安装:由于cpu不是intel的,需要安装arm版本的anaconda

那么肯定会问,为什么要安装它呢:

Anaconda是一个打包的集合,官网,它里面预装好了conda、某个版本的python、众多packages、科学计算工具等等。Anaconda支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。

  1. #一般用sh文件安装
  2. wget https://github.com/Archiconda/build-tools/releases/download/0.2.2/Archiconda3-0.2.2-Linux-aarch64.sh
  3. sh Archiconda3-0.2.2-Linux-aarch64.sh
  4. # 添加环境变量
  5. vi ~/.bashrc
  6. export PATH=/home/devuser/anaconda3/bin:$PATH
  7. # 保存退出后:
  8. source ~/.bashrc

PackagesNotFoundError: The following packages are not available from current channels
应该是路径中没有添加需要安装包所在的channel导致,可以通过下面的方法彻底解决:

conda config --add channels conda-forge

再通过conda或者pip安装自己需要的包就不会再出问题了
 

2. ARM64平台cuda安装:官网

下载arm64-sbsa版本cuda

  1. # cuda版本号改为nvidia-smi显示的版本号
  2. wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_470.129.06_linux_sbsa.run
  3. sh cuda_11.3.0_470.129.06_linux_sbsa.run
  4. # 添加环境变量
  5. vi ~/.bashrc
  6. export PATH=/usr/local/cuda-11.3/bin:$PATH
  7. export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH
  8. export CUDA_HOME="/usr/local/cuda-11.3:$CUDA_HOME"
  9. source ~/.bashrc

验证cuda安装,nvcc -V,出现cuda信息即表明成功安装

3. 下载如下所示的cudnn:官网根据cuda版本11.3选择cudnn配套版本

  1. # 在cudnn官网选择好版本配套后,选择对应的方式,下载并解压deb包
  2. cudnn-local-repo-ubuntu1804-*_1.0-1_arm64.deb
  3. sudo dpkg -i xxx.deb
  1. # 添加缺少的文件
  2. cp cudnn/include/cudnn* /usr/local/cuda-11.3/include/
  3. cp cudnn/lib/libcudnn* /usr/local/cuda-11.3/lib64/
  4. chmod a+r /usr/local/cuda-11.3/include/cudnn.h
  5. chmod a+r /usr/local/cuda-11.3/lib64/libcudnn*

4. 安装gpu-pytorch

为了使创建的多个虚拟环境间能实现资源隔离和版本不冲突,anaconda自带base环境,这个base环境可以认为是基础包的集合,意味着创建的虚拟环境是可以共享这些基础包的。

conda create -n pytorch python=3.8 (创建虚拟环境pytorch)

Step1:下载源码

ARM版本的gpu-pytorch需要手动cmake编译,那么没办法,需要github上下载代码。大概等15min

  1. # 注意git clone的时候最好写明版本
  2. git clone --recursive --branch v1.10.0 https://github.com/pytorch/pytorch.git
  3. cd pytorch
  4. # 下载第三方依赖
  5. git submodule update --init --recursive

Step2:安装依赖(可忽略)

  1. # 这一步要注意依赖的版本,先看下requirements.txt的版本有没有pytorch,
  2. # 否则会直接通过pip安装成cpu版本的pytorch
  3. pip3 install -U setuptools
  4. pip3 install -r requirements.txt

Step3:源码编译,直到最后有cmake编译完出现100%的字样

  1. # 添加环境变量
  2. export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
  3. source ~/.bashrc
  4. python3 setup.py build --cmake-only
  5. python3 setup.py install

Step4:安装torchvision,torchaudio,见版本配套关系 

安装 torchvision 时避免更新 pytorch 到最新版本。

  1. # 另外,如果安装依赖库的时间过长,可以指定 pypi 源
  2. pip install 安装包==指定版本 -i https://pypi.tuna.tsinghua.edu.cn/simple
  3. pip install torchvision==0.11.1 --no-deps  
  4. pip install torchaudio==0.10.0 --no-deps

5. 测试安装的pytorchcudacudnn是否可用:

  1. python3
  2. print(torch.__version__)  # 查看pytorch版本
  3. print(torch.cuda.is_available()) # 查看cuda是否可用 True
  4. print(torch.cuda.device_count()) # 查看cuda可用的数量
  5. print(torch.version.cuda) # 查看cuda版本
  6. from torch.backends import  cudnn
  7. print(cudnn.is_available()) # 查看cudnn版本 True

6. 环境变量配置

修改.bashrc, 每次修改完后base下要更新此文件 source ~/.bashrc

  1. # <<< conda initialize <<<
  2. export CUDA_HOME=/usr/local/cuda
  3. export PATH=$PATH:$CUDA_HOME/bin
  4. export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PiATH}}
  5. export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

7. FAQ

1)conda基本命令:

  1. # 创建虚拟环境
  2. conda create -n 虚拟环境名称 python=3.8
  3. # 删除虚拟环境
  4. conda env remove --name 虚拟环境名称
  5. # 查看所安装的依赖包版本
  6. pip list
  7. # 查看pip安装的依赖包版本
  8. conda list|grep numpy

2)如果是源码安装的Pytorch,要卸载怎么办:

  1. pip uninstall torch
  2. python setup.py clean

同时卸载torchvision,torchaudio:

  1. pip uninstall torchvision
  2. pip uninstall torchaudio

在虚拟环境上通过pip安装的包在哪里:

  1. (BEVFormer) panxiying@ubuntu:~/Downloads$ pip -V
  2. pip 22.2.2 from /home/panxiying/.conda/envs/BEVFormer/lib/python3.8/site-packages/pip (python 3.8)

3)如果遇到问题怎么办:

一般谷歌/知乎搜索报错点,都能找到解决办法,以下是本人遇到的问题~~

  1. 1.解决pip找不到
  2. export PATH="/usr/local/bin:$PATH"
  3. 2.解决cuda和pytorch版本不配套
  4. cmake/Dependencies.cmake:43 (include)
  5. CMakeLists.txt:692 (include)
  6. pytorch1.12---》pytorch1.10
  7. 3.解决settools版本过低
  8. pip uninstall setuptools
  9. pip install setuptools==59.5.0
  10. 4.解决nvcc -V没找到
  11. export PATH=/usr/local/cuda-11.3/bin:$PATH
  12. export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH

 linux下PATH环境变量覆盖问题:

 当把最后一行注释后,能显示nvcc -V正常:

4) 如果远端服务器因为网络无法安装依赖,怎么办:

  1. # Colab制作arm的pytorch, 取包路径 https://drive.google.com/drive/my-drive
  2. https://colab.research.google.com/drive/#scrollTo=mFvs-1htHYcr
  3. # git下载仓
  4. from google.colab import drive
  5. drive.mount('/content/drive') # 资源都放这个路径下
  6. !rm -rf /content/pytorch1.10.0 && rm -rf /content/pytorch1.10.0.zip
  7. %cd /content
  8. !git clone --recursive --branch v1.10.0 https://github.com/pytorch/pytorch.git
  9. %cd /content/pytorch/
  10. !git submodule update --init --recursive --jobs 0
  11. # 打包
  12. !zip -r /content/pytorch1.10.0.zip /content/pytorch/
  13. %cd ..
  14. !cp ./pytorch1.10.0.zip /content/drive/MyDrive/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/813601
推荐阅读
相关标签
  

闽ICP备14008679号