本文的linux(昇腾)服务器是一个刚安装好Ubuntu20.04 LST的裸机,具体的信息如下:

  • Distributor ID: Ubuntu
  • Description: Ubuntu 20.04.5 LTS
  • Release: 20.04
  • Codename: focal
  • NPU:910A

本文将会一步步展示如何完整配置一个完整的,可以运行mindtorch(0.3.0)的环境。

要安装的依赖

为了配置一个可以运行mindtorch的环境,需要安装以下的依赖:

  1. Miniconda:用于管理Python环境
  2. Python
  3. NPU固件与驱动
  4. Cann软件包:昇腾AI处理器配套软件包
  5. Mindspore
  6. Mindtorch

下面逐个来安装

参考链接:

  1. Miniconda安装
  2. Cann安装
  3. Mindspore安装
  4. Mindtorch安装

安装依赖

准备

首先需要找到一个文件夹,用于放置安装包,本文选择在~/packages下放置安装包。

1
2
3
cd ~/
mkdir packages
cd packages

Miniconda

这里下载最新的Miniconda。

1
2
3
4
5
6
# 切换到你放置安装包的文件夹中
cd ~/packages
# 下载最新的安装包
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-$(arch).sh
# 执行安装脚本
sh Miniconda3-latest-Linux-$(arch).sh

然后按照安装脚本里的提示安装即可。一直回车,直至让选择yes/no(是否安装),选择yes,再次回车,第二次让选择yes/no(决定是否在启动时进入base环境),选择yes,至此Miniconda安装完毕。

Python

重新打开一个终端窗口,确定能在行前看到(base)的字样。这样就说明成功安装了conda并激活了conda的环境:

1
(base) shuziren@ubuntu:~$

然后用conda创建一个虚拟环境:

1
conda create -n iplap python==3.10 -y

这创建了一个Python版本为3.10的,名为iplap的虚拟环境。然后就可以激活这个虚拟环境

1
conda activate iplap

NPU固件与驱动

安装依赖

执行命令安装所需依赖:

1
apt-get install -y dkms gcc linux-header-$(uname -r)

暂时跳过了linux-header-$(uname -r),因为没有对应版本的。

准备安装包

然后需要安装两个东西,一个是驱动,一个是固件。可以参考:华为官方文档

这里安装的是Cann 8.0rc2的固件和驱动。

在这个网站:https://www.hiascend.com/hardware/firmware-drivers/community?product=4&model=10&cann=7.0.0.alpha003&driver=1.0.21.alpha,找到两个包:

1
2
Ascend-hdk-910-npu-driver 23.0.0 linux-aarch64.run
Ascend-hdk-910-npu-firmware 7.1.0.3.220.run

image-20240915102613515

添加HwHiAiUser

为了安装固件和驱动,需要新添加一个名为HwHiAiUser的用户,在root用户模式下,用如下命令新加一个用户:

1
2
groupadd HwHiAiUser
useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash

然后需要将自己的用户(我这里是shuziren)添加到HwHiAiUser组中:

1
usermod -a -G HwHiAiUser shuziren

安装软件包

参考链接

给软件包加上执行权限:

1
2
chmod +x Ascend-hdk-910-npu-driver 23.0.0 linux-aarch64.run
chmod +x Ascend-hdk-910-npu-firmware 7.1.0.3.220.run

然后在安装前进行软件包的自检

1
2
./Ascend-hdk-910-npu-driver 23.0.0 linux-aarch64.run --check
./Ascend-hdk-910-npu-firmware 7.1.0.3.220.run --check

最后在root用户下进行安装:

1
2
./Ascend-hdk-910-npu-driver 23.0.0 linux-aarch64.run --full --install-for-all
./Ascend-hdk-910-npu-firmware 7.1.0.3.220.run --full

如果显示:

1
[ERROR]The list of missing tools: lspci,ifconfig,

则安装一下软件包:

1
apt-get install -y net-tools pciutils
  1. 若系统出现如下关键回显信息,则表示驱动(driver)安装成功。

    1
    Driver package installed successfully!
  2. 若系统出现如下关键回显信息,表示固件安装成功。

    1
    Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect

重启系统

然后需要重启一下系统:

1
reboot

最后用npu-smi info检查一下是否安装成功了。

Cann软件包

然后给需要使用Cann的用户,比如我这是shuziren,安装Cann软件包。现在不是用root用户,而是用需要使用Cann的用户登录。

安装依赖

首先要安装依赖:

  1. 执行如下命令,安装软件包:

    1
    sudo apt-get install -y gcc g++ make cmake libsqlite3-dev zlib1g-dev libssl-dev libffi-dev net-tools
  2. 检查系统是否安装满足版本要求的Python开发环境(支持Python3.7.x至3.10.x)。

    1
    2
    python3 --version
    pip3 --version #如果没装需要装一下

    符合要求则执行下一步。

  3. 执行如下命令安装所需的Python第三方库:

    1
    pip3 install attrs cython numpy==1.24 decorator sympy cffi pyyaml pathlib2 psutil protobuf==3.20 scipy requests absl-py --user

准备安装包

官网上找到8.0.RC2.beta1版本的安装包,对应服务器上的芯片的版本(例如我这里是910,就选择了-910,并且我是aarch64的版本的)。

1
2
Ascend-cann-kernels-910_8.0.Rc2_linux.run
Ascend-cann-toolkit_8.0.Rc2_linux-aarch64.run

可以用wget来下载:

1
2
wget -O Ascend-cann-kernels-910_8.0.RC2_linux.run https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.0.RC2/Ascend-cann-kernels-910_8.0.RC2_linux.run?response-content-type=application/octet-stream
wget -O Ascend-cann-toolkit_8.0.RC2_linux-aarch64.run https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.0.RC2/Ascend-cann-toolkit_8.0.RC2_linux-aarch64.run?response-content-type=application/octet-stream

安装前检查

在安装前运行check检查一下:

1
2
3
4
5
chmod +x ./Ascend-cann-kernels-910_8.0.RC2_linux.run
./Ascend-cann-kernels-910_8.0.RC2_linux.run --check

chmod +x Ascend-cann-toolkit_8.0.RC2_linux-aarch64.run
./Ascend-cann-toolkit_8.0.RC2_linux-aarch64.run --check

安装

先在~/下创建一个名为Ascend的文件夹

1
2
./Ascend-cann-toolkit_8.0.RC2_linux-aarch64.run --install
./Ascend-cann-kernels-910_8.0.RC2_linux.run --install

然后添加一下环境变量

1
echo 'source ~/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc

安装Mindspore

激活之前创建的conda环境后,先安装几个软件包:

还需要pip安装几个包:

1
2
3
4
pip uninstall te topi hccl -y
pip install sympy
pip install ~/Ascend/ascend-toolkit/latest/lib64/te-*-py3-none-any.whl
pip install ~/Ascend/ascend-toolkit/latest/lib64/hccl-*-py3-none-any.whl

然后用如下指令就安装Mindspore:

1
2
export MS_VERSION=2.3.1
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/${MS_VERSION}/MindSpore/unified/aarch64/mindspore-${MS_VERSION/-/}-cp310-cp310-linux_aarch64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple

然后验证一下是否安装成功:

1
python -c "import mindspore;mindspore.set_context(device_target='Ascend');mindspore.run_check()"

安装Mindtorch

安装最新版本的mindtorch:

1
2
3
git clone https://openi.pcl.ac.cn/OpenI/MSAdapter.git
cd MSAdapter
python setup.py install