今年上半年,数字化与智算技术中心 依托自身的存量资源和人工智能学院提供的资源,建设了一个主要基于昇腾910b的智算平台,吸引了很多老师在上面开展教学与科研计算,平台以k8s集群方式实现了珍贵的算力资源利用率最大化。要不说,还得是专业的人干专业的事儿!
我在读《Learn Generative AI with PyTorch》这本书的时候主要是使用自己那个x86的MacBook Pro试代码,但简简单单的一段训练代码就几乎要把笔记本烧掉。开始时候感觉智算平台对我来说有些复杂,虽然平台上有很多现成的镜像可以快速上手,但没有自己动手配置环境,总感觉差了点意思。于是,昨天开始自己尝试动手配置,也是个学习的过程。

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

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

当排队得到资源后,作业变为RUNNING状态后,即可进入容器,得到一个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
在华为昇腾社区下载:


但此时在容器中还看不到文件,需要把文件或整个目录移动到/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()正确地执行了
