编译和安装
操作步骤
- 使用PuTTY工具,以root用户登录服务器。
- 执行以下命令安装Docker toolkit。
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) yum-config-manager --add-repo https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo dnf clean expire-cache --refresh dnf install -y nvidia-docker2 systemctl restart docker
- 执行以下命令获取基础镜像。
docker pull nvidia/cuda-arm64:11.1-devel-centos8
- 执行以下命令运行Docker。
docker run -it nvidia/cuda-arm64:11.1-devel-centos8 /bin/bash
- 执行以下命令修改“/etc/yum.repos.d/nvidia-ml.repo”文件。
- 打开“/etc/yum.repos.d/nvidia-ml.repo”文件。
vi /etc/yum.repos.d/nvidia-ml.repo
- 按“i”进入编辑模式,添加如下粗体内容。
[nvidia-ml] name=nvidia-ml baseurl=https://developer.download.nvidia.com/compute/machine-learning/repos/rhel8/sbsa enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA sslverify=false
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“/etc/yum.repos.d/nvidia-ml.repo”文件。
- 执行以下命令修改“/etc/yum.repos.d/cuda.repo”文件。
- 打开“/etc/yum.repos.d/cuda.repo”文件。
vi /etc/yum.repos.d/cuda.repo
- 按“i”进入编辑模式,添加如下粗体内容。
[cuda] name=cuda baseurl=https://developer.download.nvidia.com/compute/cuda/repos/rhel8/sbsa enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-NVIDIA sslverify=false
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“/etc/yum.repos.d/cuda.repo”文件。
- 执行以下命令刷新Yum源缓存。
yum makecache
- 执行以下命令安装系统依赖。
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel python3 python3-devel gcc wget cmake3 libarchive git which
- 执行以下命令下载并安装Cudnn8。
wget https://developer.download.nvidia.cn/compute/machine-learning/repos/rhel8/sbsa/libcudnn8-8.0.4.30-1.cuda11.1.aarch64.rpm --no-check-certificate rpm -ivh libcudnn8-8.0.4.30-1.cuda11.1.aarch64.rpm wget https://developer.download.nvidia.cn/compute/machine-learning/repos/rhel8/sbsa/libcudnn8-devel-8.0.4.30-1.cuda11.1.aarch64.rpm --no-check-certificate rpm –ivh libcudnn8-devel-8.0.4.30-1.cuda11.1.aarch64.rpm
- 执行以下命令部署Anaconda。
执行./Anaconda3-2021.05-Linux-aarch64.sh时,需手动输入“Enter”和“yes”,默认部署在“/root/anaconda3”目录。
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-aarch64.sh chmod +x Anaconda3-2021.05-Linux-aarch64.sh ./Anaconda3-2021.05-Linux-aarch64.sh export PATH=/root/anaconda3/bin/:$PATH
- 执行以下命令安装PyTorch编译依赖。
conda install astunparse numpy ninja pyyaml setuptools cmake cffi typing_extensions future six requests dataclasses
(可选)conda代理配置方法如下:
cat > /root/.condarcexport PATH=/root/anaconda3/bin:$PATH channels: - conda-forge - defaults proxy_servers: http: xxxxxx https: xxxxxx ssl_verify: false
- 执行以下命令配置环境变量。
export PATH=/root/anaconda3/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64
- 执行以下命令下载并编译PyTorch源码。
export GIT_SSL_NO_VERIFY=1 git clone --recursive https://github.com/pytorch/pytorch --depth=1 cd pytorch git submodule sync git submodule update --init --recursive --jobs 0 export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"} python setup.py install
- 执行以下命令新建另一个终端Shell导出容器。
docker ps
PyTorch源码等大文件移到容器外后删除再导出镜像。
- 备份源码。
docker cp 4ad81495b7ef:/pytorch .
- 删除容器内PyTorch源码。
rm -rf pytorch/ rm -rf Anaconda3-2021.05-Linux-aarch64.sh rm -f libcudnn8-8.0.4.30-1.cuda11.1.aarch64.rp rm -f libcudnn8-devel-8.0.4.30-1.cuda11.1.aarch64.rpm
- 导出镜像。
docker export -o pytorch_cuda.tar 4ad81495b7ef
- 备份源码。