安装说明

本文主要向用户介绍基于Atlas 800 推理服务器(型号:3000)配置Atlas 300推理卡,如何快速完成昇腾NPU(Neural-Network Processing Unit,神经网络处理器单元)驱动固件、CANN(Compute Architecture for Neural Networks,AI异构计算架构)软件的安装,各软件说明如表1-1所示。

表1-1 昇腾软件介绍

软件类型

软件介绍

昇腾NPU固件

固件包含昇腾AI处理器自带的OS 、电源器件和功耗管理器件控制软件,分别用于后续加载到AI处理器的模型计算、芯片启动控制和功耗控制

昇腾NPU驱动

部署在昇腾服务器,用于管理查询昇腾AI处理器,同时为上层CANN软件提供芯片控制、资源分配等接口。

CANN

部署在昇腾服务器,包含Runtime、算子库、图引擎、媒体数据处理等组件,通过AscendCL(Ascend Computing Language,昇腾计算语言)对外提供Device管理、Context管理、Stream管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,帮助开发者实现在昇腾软硬件平台上开发和运行AI业务。

CANN主要安装以下软件:
  • Toolkit:支持推理业务、模型转换、算子/应用/模型开发和编译。
  • Kernels:依赖于Toolkit或NNAE,节省算子编译时间。在包含动态shape网络或单算子API(例如aclnn类API)场景下需安装二进制算子包。
  • NNAL:提供了面向大模型领域的ATB(Ascend Transformer Boost)加速库,实现了基于Transformer结构的神经网络推理加速引擎库,提供昇腾亲和的融合算子、通信算子、内存优化等,作为算子的公共底座提升了大模型推理性能。

MindIE

推理加速套件,包含深度优化的模型库、大模型推理优化器和运行环境,提升大模型推理易用性和性能。

安装场景

根据用户运行推理业务的环境选择安装场景。

NPU驱动固件需要部署在物理机,其他昇腾软件如CANN和MindIE,需和推理程序部署在同一环境;如果要运行大模型推理业务(仅Atlas 300I Duo 推理卡支持),需要安装NNAL和MindIE。

大模型推理场景(Atlas 300I Duo 推理卡)

  • 如果用户使用容器运行推理业务,本文可直接提供一个包含PyTorch框架、CANN、已适配NPU的典型大模型样例(如ChatGLM3-6B,含模型权重、推理脚本)的容器镜像,启动容器后将推理程序放入容器进行推理。
  • 如果用户直接在裸机运行推理业务,则需在物理机部署昇腾软件。

基础模型推理场景(Atlas 300I Pro 推理卡/Atlas 300V Pro 视频解析卡/Atlas 300V 视频解析卡/Atlas 300I Duo 推理卡)

  • 如果用户使用容器运行推理业务,可构建包含CANN的容器镜像,启动容器后将推理程序放入容器进行推理。
  • 如果用户直接在裸机运行推理业务,则需在物理机部署昇腾软件。

物理机和容器部署架构如图1-1图1-2所示。

图1-1 安装场景(基础模型场景)

图1-2 安装场景(大模型场景)

硬件配套和支持的操作系统

本文介绍的硬件配套和支持的操作系统如表1-2所示,系统架构为Arm架构。

针对大模型推理场景,建议使用96GB内存的Atlas 300I Duo 推理卡,确保内存能满足大模型的参数要求。

表1-2 操作系统兼容性

硬件款型

操作系统

Atlas 800 推理服务器(型号:3000)+Atlas 300I Pro 推理卡

单击兼容性查询助手,“产品系列”选择“服务器”,“产品型号”选择“Atlas 800 推理服务器(型号:3000)”,“NPU”选择相应的推理卡查询操作系统兼容性。

Atlas 800 推理服务器(型号:3000)+Atlas 300V Pro 视频解析卡

Atlas 800 推理服务器(型号:3000)+Atlas 300V 视频解析卡

Atlas 800 推理服务器(型号:3000)+Atlas 300I Duo 推理卡

安装流程

容器安装流程

表2-1 容器安装流程

任务

任务说明

安装硬件设备

请参见《Atlas 800 推理服务器 用户指南 (型号 3000)》的“安装与配置”章节,完成硬件的安装。

安装OS

请参见OS安装指南完成对应OS的安装,OS需要连接网络和启动SSH远程登录服务。

下载软件包

请参见下载软件,下载对应的软件包。

在物理机上安装NPU驱动固件

请参见安装NPU驱动固件,在物理机上安装NPU驱动固件之前,仔细确认操作系统和内核版本,选择正确的安装方式。

安装Docker

请参见部署Docker,用户在当前服务器上部署Docker软件。

部署容器

物理机安装流程

表2-2 物理机安装流程

任务

任务说明

安装硬件设备

请参见《Atlas 800 推理服务器 用户指南 (型号 3000)》的“安装与配置”章节,完成硬件的安装。

安装OS

请参见OS安装指南完成对应OS的安装,OS需要连接网络和启动SSH远程登录服务。

下载软件包

请参见下载软件,下载对应的软件包。

在物理机上安装NPU驱动固件

请参见安装NPU驱动固件,在物理机上安装NPU驱动固件之前,仔细确认操作系统和内核版本,选择正确的安装方式。

安装依赖

请参见安装依赖,安装CANN前,需要安装依赖。安装依赖前,需检查源是否可用。

安装CANN

请参见安装昇腾软件,CANN安装完成后,用户即可以开始开发或运行业务。

运行样例

请参见运行基础模型推理样例,用户可运行样例,验证环境是否搭建成功。

如果服务器无法联网导致系统无法在线安装CANN所需的系统依赖,可以在下载软件包后,参见使用Ascend Deployer工具部署昇腾软件(适用于服务器不能联网下载依赖场景)下载系统依赖,然后使用工具部署NPU驱动固件和昇腾软件。

下载软件

下载本软件即表示您同意华为企业业务最终用户许可协议(EULA)的条款和条件。

若用户需要查询昇腾软件版本配套关系,可单击链接进行查询。

软件包下载

表3-1 软件下载

软件类型

软件包名称和下载链接

NPU驱动

单击企业网链接运营商链接(“软件分类”勾选“310系列-aarch64”),下载软件包“Ascend-hdk-xxx-npu-driver_24.1.0.1_linux-aarch64.run”和对应的cms/pgp签名文件。

NPU固件

单击企业网链接运营商链接(“软件分类”勾选“310系列-aarch64”),下载软件包“Ascend-hdk-xxx-npu-firmware_7.5.0.5.220.run”和对应的cms/pgp签名文件。

MCU

单击企业网链接运营商链接(“软件分类”勾选“310系列-aarch64”),下载软件包“Ascend-hdk-xxx-mcu_24.5.7.zip”和对应的cms/pgp签名文件。

Toolkit(开发套件包)

单击企业网链接运营商链接(“软件分类”勾选“AArch64.run”),下载软件包“Ascend-cann-toolkit_8.0.0_linux-aarch64.run”和对应的cms/pgp签名文件。

kernels(二进制算子包)

单击企业网链接运营商链接(“软件分类”勾选“AArch64.run”),下载软件包“Ascend-cann-kernels-xxx_8.0.0_linux-aarch64.run”和对应的cms/pgp签名文件。

NNAL(加速库)

单击企业网链接运营商链接(“软件分类”勾选“AArch64.run”),下载软件包“Ascend-cann-nnal_8.0.0_linux-aarch64.run”和对应的cms/pgp签名文件。

Ascend Deployer工具

单击链接,选择“克隆/下载”,单击“下载ZIP”,下载Ascend Deployer工具软件包“ascend-deployer-6.0.0.zip”。

软件数字签名验证

为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的数字签名文件用于完整性验证。

在软件包下载之后,请参考《OpenPGP签名验证指南》,对从Support网站下载的软件包进行PGP数字签名校验。如果校验失败,请不要使用该软件包,先联系华为技术支持工程师解决。

运营商客户请访问:http://support.huawei.com/carrier/digitalSignatureAction

企业客户请访问:https://support.huawei.com/enterprise/zh/tool/pgp-verify-TL1000000054

安装NPU驱动固件

安装说明

1)首次安装场景:硬件设备刚出厂时未安装驱动,或者硬件设备前期安装过驱动固件但是当前已卸载,上述场景属于首次安装场景,需按照“驱动 > 固件”的顺序安装驱动固件。

2)覆盖安装场景:硬件设备前期安装过驱动固件且未卸载,当前要再次安装驱动固件,此场景属于覆盖安装场景,需按照“固件 > 驱动”的顺序安装固件驱动。

检查安装环境

在安装驱动固件前,建议按照以下检查项检查环境,确保驱动固件能正常安装。

表4-1 环境检查

检查项

检查方法

检测卡是否正常在位

可通过命令行或BMC管理页面检测卡是否正常在位,如果执行命令时,提示没有安装lspci,可通过BMC管理页面检查。

执行lspci | grep d500命令,如果服务器上有NN>0)张卡,回显中含“d500”字段的行数为N,则表示卡正常在位。

01:00.0 Processing accelerators: Huawei Technologies Co., Ltd. Device d500 (rev 23)
......

若回显类似如下信息,则参见驱动安装缺少依赖报错解决。

command lscpi not found

如果卡所在的服务器是华为服务器,可通过BMC管理网口登录iBMC WebUI界面,选择“系统管理 > 系统信息”,单击“其他”。若推理卡的PCIe卡信息在“PCIe卡”列表中,表示卡正常在位。

确认操作系统和内核版本

在安装驱动前,需要用户确认现场操作系统和内核版本,从而确定是否需要安装驱动编译所需依赖。

执行如下命令查看现场服务器操作系统和内核版本,并和华为的版本要求进行对比。

uname -m && cat /etc/*release
uname -r

操作系统内核版本和对应的安装方式如表4-2~表4-5所示。

如果现场服务器连通外网,Ubuntu系统会自动升级内核,因此安装NPU驱动前,需要检查内核版本,如果内核版本和配套表中的不一致,需要使用下表中介绍的源码编译方式安装。同时建议关闭内核自动更新机制,避免更新后NPU驱动不可用。

执行如下命令关闭内核自动更新:

apt-mark hold linux-image-generic linux-headers-generic linux-image-extra

表4-2 Atlas 300I Pro 推理卡

host操作系统版本

host操作系统架构

软件包默认的host操作系统内核版本

gcc编译器版本

CentOS 7.6

aarch64

4.14.0-115.el7a.0.1.aarch64

4.8.5

Ubuntu 20.04

aarch64

5.4.0-26-generic

原生gcc(源自带gcc版本)

openEuler 20.03 LTS

aarch64

4.19.90-2003.4.0.0036.oe1.aarch64

7.3.0

openEuler 22.03 LTS

aarch64

5.10.0-60.18.0.50.oe2203.aarch64

10.3.1

Kylin V10 SP1

aarch64

4.19.90-17.ky10.aarch64

7.3.0

Kylin V10 SP2

aarch64

4.19.90-24.4.v2101.ky10.aarch64

7.3.0

Kylin V10 SP3

aarch64

4.19.90-52.22.v2207.ky10.aarch64

7.3.0

CUlinux 3.0

aarch64

5.10.0-60.67.0.104.ule3.aarch64

10.3.1

UOS20 1050e

aarch64

4.19.90-2201.4.0.0135.up1.uel20.aarch64

10.3.1

表4-3 Atlas 300V Pro 视频解析卡

host操作系统版本

host操作系统架构

软件包默认的host操作系统内核版本

gcc编译器版本

CentOS 7.6

aarch64

4.14.0-115.el7a.0.1.aarch64

4.8.5

Ubuntu 20.04

aarch64

5.4.0-26-generic

原生gcc(源自带gcc版本)

openEuler 20.03 LTS

aarch64

4.19.90-2003.4.0.0036.oe1.aarch64

7.3.0

openEuler 22.03 LTS

aarch64

5.10.0-60.18.0.50.oe2203.aarch64

10.3.1

Kylin V10 SP1

aarch64

4.19.90-17.ky10.aarch64

7.3.0

UOS20 1050e

aarch64

4.19.90-2201.4.0.0135.up1.uel20.aarch64

10.3.1

表4-4 Atlas 300I Duo 推理卡

host操作系统版本

host操作系统架构

软件包默认的host操作系统内核版本

gcc编译器版本

Ubuntu 20.04

aarch64

5.4.0-26-generic

9.3.0

Kylin V10 SP1

aarch64

4.19.90-17.ky10.aarch64

7.3.0

Kylin V10 SP3

aarch64

4.19.90-52.22.v2207.ky10.aarch64

7.3.0

openEuler 22.03 LTS

aarch64

5.10.0-60.18.0.50.oe2203.aarch64

10.3.1

UOS20 1020e

aarch64

4.19.90-2106.3.0.0095.up2.uel20.aarch64

7.3.0

表4-5 Atlas 300V 视频解析卡

host操作系统版本

host操作系统架构

软件包默认的host操作系统内核版本

gcc编译器版本

Ubuntu 20.04

aarch64

5.4.0-26-generic

原生gcc(源自带gcc版本)

openEuler 22.03 LTS

aarch64

5.10.0-60.18.0.50.oe2203.aarch64

10.3.1

Kylin V10 SP1

aarch64

4.19.90-17.ky10.aarch64

7.3.0

安装驱动固件

1、以root用户登录服务器。

详细操作可参考远程登录服务器

2、创建驱动运行用户HwHiAiUser(运行驱动进程的用户),安装驱动时无需指定运行用户,默认即为HwHiAiUser。

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

3、安装驱动源码编译所需依赖。

  • CentOS 7.6、Ubuntu 20.04操作系统可跳过该步骤。
  • CUlinux 3.0、Kylin V10 SP1、Kylin V10 SP2、Kylin V10 SP3、openEuler 20.03 LTS、openEuler 22.03 LTS、UOS20 1020e、UOS20 1050e操作系统请参见安装驱动源码编译所需依赖安装依赖。

4、将驱动包和固件包上传到服务器任意目录如“/home”。

5、进入驱动包和固件包所在目录,执行如下命令,增加驱动和固件包的可执行权限。

chmod +x Ascend-hdk-xxx-npu-driver_24.1.0.1_linux-aarch64.run
chmod +x Ascend-hdk-xxx-npu-firmware_7.5.0.5.220.run

6、执行以下命令,完成驱动固件安装,软件包默认安装路径为“/usr/local/Ascend”。
首次安装场景,需按照“驱动 > 固件”的顺序安装驱动固件;覆盖安装场景,需按照“固件 > 驱动”的顺序安装固件驱动。

  • 安装驱动执行以下命令,完成驱动安装。
    ./Ascend-hdk-xxx-npu-driver_24.1.0.1_linux-aarch64.run --full --install-for-all
    • 若执行上述安装命令出现类似如下回显信息,请参见驱动安装缺少依赖报错解决。
      [ERROR]The list of missing tools: lspci,ifconfig,
    • 若执行上述安装命令出现类似如下回显信息,请参见驱动安装过程中出现dkms编译失败报错解决。
      [ERROR]Dkms install failed, details in : var/log/ascend_seclog/ascend_install.log. 
      [ERROR]Driver_ko_install failed, details in : /var/log/ascend_seclog/ascend_install.log.
    • 若系统出现如下关键回显信息,则表示驱动安装成功。
      Driver package installed successfully!
  • 安装固件执行以下命令,完成固件安装。
    ./Ascend-hdk-xxx-npu-firmware_7.5.0.5.220.run --full

    若系统出现如下关键回显信息,表示固件安装成功。

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

7、执行reboot命令重启系统。

8、重启系统后,以root用户登录服务器。参见远程登录服务器

9、执行npu-smi info查看驱动加载是否成功。

若出现类似如下图所示回显信息,说明加载成功。否则,说明加载失败。请联系华为技术支持处理。

升级MCU

MCU是推理卡带外管理模块,具备单板监测、故障上报等功能。出厂时推理卡已集成了初始版本,为了保障所有功能正常使用,请将MCU升级到配套版本。

本章内容主要介绍通过npu-smi工具和iBMC升级MCU,npu-smi工具可以将单个推理卡的MCU升级到相应版本,如果配备了多个推理卡,需要逐个升级,iBMC可以批量升级到相应版本。

方式一:通过npu-smi工具升级。

1、将获取的zip包解压至本地文件夹,获取安装包。

Ascend-hdk-xxx-mcu_24.5.7.hpm

2、以root用户登录服务器,将安装包上传至Linux系统任意目录下(如“/home”)。

3、执行npu-smi info -l命令查询NPU ID(推理卡的设备编号)。

回显类似如下信息,NPU ID8

        Card Count                     : 1
        NPU ID                     : 8
        Product Name                   : IT21DMPB01
        Serial Number                  : 033EFS10M8000087
        Chip Count                     : 4

4、进入MCU软件包所在路径,执行如下命令启动升级(将NPU ID替换为3中查询到的设备编号)。

npu-smi upgrade -t mcu -i NPU ID -f Ascend-hdk-xxx-mcu_24.5.7.hpm

出现类似如下回显表示升级成功。

Start upgrade [100].
        Status                         : OK
        Message                        : Start device upgrade successfully
        Message                        : need active mcu

5、执行如下命令使新版本生效,类似以下回显表示已生效。

npu-smi upgrade -a mcu -i NPU ID

Status                         : OK
Message                        : The upgrade has taken effect after performed reboot successfully.

6、在生效新版本之后,等待30s,查询MCU版本号,确保升级成功。

npu-smi upgrade -b mcu -i NPU ID

Version                        : 24.5.7

方式二:通过iBMC Web界面升级

1、将获取的zip包解压至本地文件夹,获取安装包。

Ascend-hdk-xxx-mcu_24.5.7.hpm

2、以root用户登录服务器,执行npu-smi info -l命令查询NPU ID(推理卡的设备编号)。

回显类似如下信息,NPU ID8

        Card Count                     : 1
        NPU ID                     : 8
        Product Name                   : IT21DMPB01
        Serial Number                  : 033EFS10M8000087
        Chip Count                     : 4

3、在浏览器的地址栏中输入“https://iBMC管理网口IP地址”,可打开用户登录界面。

输入“用户名”和“密码”登录iBMC Web界面。默认用户名和密码具体请参见《Atlas硬件产品 用户清单》。

4、单击“固件升级”。

5、选择升级文件,单击“开始升级”。

6、升级成功。

7、检查升级后的版本号。

1)在iBMC Web主界面导航栏中,选择“系统管理 > 系统信息”,单击“其他”。

2)在界面左侧选择“PCIe卡”,单击PCIe卡左方的下拉箭头,在打开的“扩展信息”区域查看“MCU固件版本”。各产品查询的页面有差异,请以实际查询的为准,此处以Atlas 300I Pro 推理卡图4-1为例。

图4-1 MCU固件版本

MCU新版本生效后,如需再次升级,请等待5min后再次操作。

如果升级后不是目标版本或者升级失败,请重新进行升级。如果依然升级失败,请记录故障现象和操作步骤,并联系华为技术支持解决。

部署Docker

在构建容器镜像和部署容器前,需确保现场环境(宿主机)已部署Docker,本章节介绍在宿主机部署Docker的方法。

前提条件

参见检查源配置源。

操作步骤

1、执行以下命令安装Docker。

Ubuntu 20.04

curl -fsSL https://repo.huaweicloud.com/docker-ce/linux/debian/gpg | sudo apt-key add -
apt-get install -y docker-ce

CentOS 7.6、CUlinux 3.0、Kylin V10 SP1、Kylin V10 SP2、Kylin V10 SP3、openEuler 20.03 LTS、openEuler 22.03 LTS、UOS20 1020e、UOS20 1050e

yum install -y docker
# 若配置了包含Docker-ce相关的源,可执行如下命令安装Docker
yum install -y docker-ce

如果安装Docker时出现类似以下问题导致Docker安装失败。请参见yum install docker报错解决。

Public key for containerd.io-1.6.6-3.1.el7.xx.rpm is not installed

2、执行如下命令启动Docker。

systemctl start docker

3、执行如下命令查看Docker是否已安装并启动。

docker ps

回显以下信息表示Docker已安装并启动。

CONTAINER ID        IMAGE        COMMAND         CREATED        STATUS         PORTS           NAMES

部署容器(大模型推理场景)

在大模型推理场景,用户可直接获取包含CANN(Toolkit、Kernels、NNAL)、MindIE、典型大模型和推理脚本的大模型推理容器镜像,用户可以在物理机上直接运行该容器镜像从而实现快速运行容器。仅Atlas 300I Duo 推理卡支持大模型推理容器镜像,其他推理卡配置需参见部署容器(基础模型推理场景)制作和运行容器。

获取容器镜像

执行如下操作步骤获取镜像文件。

1、单击链接,下载镜像文件“mindie_1.0.RC2_aarch64_300I_DUO.tar”,该镜像文件大约30G,请用户耐心等待。

镜像文件SHA256值:“68353a12c68abda980cfccfce0360d3b9ade278e72a3119687fc3fcc6d0560c0”,用于文件完整性校验。

本镜像仅用于容器运行昇腾软件的参考,请勿直接使用该镜像用于商业用途。

2、将镜像文件上传至服务器任意目录(如/home),在该目录下执行sha256sum mindie_1.0.RC2_aarch64_300I_DUO.tar命令生成SHA256值。若与上述SHA256值保持一致,则表示镜像文件下载完整;若不一致,则表示镜像文件下载不完整,需重新下载。

3、执行如下命令导入镜像。

docker load < mindie_1.0.RC2_aarch64_300I_DUO.tar

运行容器

1、请执行如下命令基于导入的镜像运行一个容器。

docker run -itd --ipc=host --net=host \
--name=infer_chatglm3-6b \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
-v /home/hwtest:/home/hwtest \
47cd2d4f1926 \
/bin/bash
  • “--name=infer_chatglm3-6b”:infer_chatglm3-6b为容器名称,用户可自定义。
  • “-v /home/hwtest:/home/hwtest”:“/home/hwtest”为挂载目录,用户可自行配置需要挂载至docker容器中的目录。“/home/hwtest”仅为示例(可以自行创建)。
  • “47cd2d4f1926”:导入的镜像ID,该镜像ID无需修改。可执行docker images命令查询导入的镜像。
  • 其他参数请保持默认。

2、执行如下命令进入容器。“infer_chatglm3-6b”为容器名称,仅为示例。

docker exec -it infer_chatglm3-6b /bin/bash

3、进入容器后,用户即可运行推理业务。

运行样例

该镜像包含ChatGLM3-6B模型权重和推理脚本,可进行大模型推理。

1、进入容器后,可执行如下命令,运行ChatGLM3-6B推理样例。“/opt/chatglm3-6b”为容器的模型权重路径。

cd /usr/local/Ascend/llm_model
bash examples/models/chatglm/v2_6b/run_300i_duo_pa.sh /opt/chatglm3-6b

回显如图5-1所示信息,表示推理成功。

图5-1 推理样例

2、该模型还包含其他样例,“/usr/local/Ascend/llm_model/examples/models”目录如图5-2所示。当前容器镜像chatglm3-6b模型包含权重,可以直接运行推理。如果需要运行其他样例,请进入对应的模型目录,参考模型目录下的“README.md”文件配置所需的模型权重和依赖进行推理。

图5-2 模型样例目录

转自:https://support.huawei.com/enterprise/zh/doc/EDOC1100441797/304ab923?idPath=23710424|251366513|254884019|261408772|258915651

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐