ubuntu 18.04下安装Anaconda、Cuda、Cudnn、gpu-Pytorch

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

安装显卡驱动:

1.查看显卡驱动
cat /var/log/dpkg.log | grep nvidia
ubuntu-drivers devices

2.更新前先把已经安装好的闭源驱动给卸载了。
sudo apt purge nvidia-driver nvidia-kernel-dkms nvidia-*
sudo apt autoremove

3.下载驱动run文件https://cn.download.nvidia.cn/XFree86/Linux-x86_64/535.54.03/NVIDIA-Linux-x86_64-535.54.03.run,执行以下代码,一路enter
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并存、切换以及各种第三方包安装问题。

​#一般用sh文件安装
wget https://github.com/Archiconda/build-tools/releases/download/0.2.2/Archiconda3-0.2.2-Linux-aarch64.sh
sh Archiconda3-0.2.2-Linux-aarch64.sh
# 添加环境变量
vi ~/.bashrc
export PATH=/home/devuser/anaconda3/bin:$PATH
# 保存退出后:
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

# cuda版本号改为nvidia-smi显示的版本号
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_470.129.06_linux_sbsa.run
sh cuda_11.3.0_470.129.06_linux_sbsa.run

# 添加环境变量
vi ~/.bashrc
export PATH=/usr/local/cuda-11.3/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH
export CUDA_HOME="/usr/local/cuda-11.3:$CUDA_HOME"
source ~/.bashrc

​

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

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

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

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

Step2:安装依赖(可忽略)

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

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

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

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

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

# 另外,如果安装依赖库的时间过长,可以指定 pypi 源
pip install 安装包==指定版本  -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install torchvision==0.11.1 --no-deps  

pip install torchaudio==0.10.0 --no-deps

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

python3

print(torch.__version__)  # 查看pytorch版本
print(torch.cuda.is_available()) # 查看cuda是否可用 True
print(torch.cuda.device_count()) # 查看cuda可用的数量
print(torch.version.cuda) # 查看cuda版本
from torch.backends import  cudnn
print(cudnn.is_available()) # 查看cudnn版本 True

6. 环境变量配置

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

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

7. FAQ

1)conda基本命令:

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

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

pip uninstall torch
python setup.py clean

同时卸载torchvision,torchaudio:

pip uninstall torchvision
pip uninstall torchaudio

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

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

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

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

1.解决pip找不到
export PATH="/usr/local/bin:$PATH"

2.解决cuda和pytorch版本不配套
 cmake/Dependencies.cmake:43 (include)
  CMakeLists.txt:692 (include)

pytorch1.12---》pytorch1.10

3.解决settools版本过低
pip uninstall setuptools
pip install setuptools==59.5.0

4.解决nvcc -V没找到
export PATH=/usr/local/cuda-11.3/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH

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

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

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

# Colab制作arm的pytorch, 取包路径 https://drive.google.com/drive/my-drive
https://colab.research.google.com/drive/#scrollTo=mFvs-1htHYcr
# git下载仓
from google.colab import drive
drive.mount('/content/drive') # 资源都放这个路径下
!rm -rf /content/pytorch1.10.0 && rm -rf /content/pytorch1.10.0.zip
%cd /content
!git clone --recursive --branch v1.10.0 https://github.com/pytorch/pytorch.git 
%cd /content/pytorch/
!git submodule update --init --recursive --jobs 0

# 打包
!zip -r /content/pytorch1.10.0.zip /content/pytorch/
%cd ..
!cp ./pytorch1.10.0.zip  /content/drive/MyDrive/  
 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值