如何在学校智算平台上搭建一个干净的PyTorch环境

今年上半年,数字化与智算技术中心 依托自身的存量资源和人工智能学院提供的资源,建设了一个主要基于昇腾910b的智算平台,吸引了很多老师在上面开展教学与科研计算,平台以k8s集群方式实现了珍贵的算力资源利用率最大化。要不说,还得是专业的人干专业的事儿!

我在读《Learn Generative AI with PyTorch》这本书的时候主要是使用自己那个x86的MacBook Pro试代码,但简简单单的一段训练代码就几乎要把笔记本烧掉。开始时候感觉智算平台对我来说有些复杂,虽然平台上有很多现成的镜像可以快速上手,但没有自己动手配置环境,总感觉差了点意思。于是,昨天开始自己尝试动手配置,也是个学习的过程。

这是晚上10点时候智算平台的使用情况

首先,从“作业”中选择创建一个VSCode应用,我起名叫“ascend-k8s-vs-cann81rc1”,因为集群里给910b安装的驱动是24.1.rc2,跟cann8.1.rc1匹配,当然这是多次尝试之后才知道的。

npu-smi info

选择“单节点加速卡卡数”为2,少占用点资源,也免得等候排队。

ascend-k8s-vs-cann81rc1

当排队得到资源后,作业变为RUNNING状态后,即可进入容器,得到一个vscode。

vscode

打开VSCode的Terminal,开始配置环境,这里简要罗列一下,懂得都懂。

sudo apt update
sudo apt install vim
sudo apt install wget
wget https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Linux-aarch64.sh
chmod +x Miniconda3-py39_24.5.0-0-Linux-aarch64.sh
./Miniconda3-py39_24.5.0-0-Linux-aarch64.sh 

Miniconda3我安装的不是最新版,因为我需要Python3.9,最新Miniconda3带的Python3.13跟CANN8.1.RC1无法兼容,安装位置我选/usr/local/miniconda3

添加到.bashrc中,并Ctrl-D。

export PATH=/usr/local/miniconda3/bin:$PATH

重开Terminal

conda --version
conda init bash
# Ctrl-D
conda config --set auto_activate_base false
conda config --set auto_update_conda false

在华为昇腾社区下载:


CANN8.1.RC1
上传到智算平台个人文件目录

但此时在容器中还看不到文件,需要把文件或整个目录移动到/data/home/6120103768/scow/ai/appData/ascend-k8s-vscode-****-****下。

移动文件夹
chmod +x Ascend-cann-*
./Ascend-cann-toolkit_8.1.RC1_linux-aarch64.run --install
source /usr/local/Ascend/ascend-toolkit/set_env.sh 
./Ascend-cann-kernels-910b_8.1.RC1_linux-aarch64.run --install
./Ascend-cann-nnal_8.1.RC1_linux-aarch64.run --install

在安装Toolkit时有提示Driver: Not installled,但实际上没问题,昇腾社区上有人说是版本不匹配等原因,总之没有影响。

===========
= Summary =
===========

Driver:   Not installed.
Toolkit:  Ascend-cann-toolkit_8.1.RC1_linux-aarch64 install success, installed in /usr/local/Ascend.

继续……在pip安装模块时,切记要查询其与torch2.5.1的兼容性。

pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
python -m pip install --upgrade pip
conda create -n pytorch python=3.9
conda activate pytorch

mkdir -p ${CONDA_PREFIX}/etc/conda/activate.d/

echo '#!/bin/bash
source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh' > ${CONDA_PREFIX}/etc/conda/activate.d/npu_load_env.sh

chmod +x ${CONDA_PREFIX}/etc/conda/activate.d/npu_load_env.sh

conda deactivate
conda activate pytorch

到上面为止,我把作业保存成一个名为“ascend-k8s-vs-cann81rc1”的镜像,以后可以从这个镜像开始创建作业,非常方便,自己的镜像还可以发布共享给平台上其他用户。

使用镜像

继续安装必要的模块……

conda activate pytorch
conda install notebook

pip3 install torch==2.5.1 torch-npu==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 numpy==1.24.4 scipy==1.10.1 matplotlib pandas Pillow decorator absl-py cloudpickle ml-dtypes tornado cython cffi attrs sympy pyyaml pathlib2 psutil protobuf==3.20 requests

会有error,但其实不是真正的问题

不用在意这些细节

试一下就知道,这些模块都在。

python3 -c "import getopt, inspect, multiprocessing; print('All modules loaded successfully')"

最终,npu()正确地执行了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容