跳转至

NPU 节点使用

NPU 节点 (AI-01) 含 8 张 NPU 卡,卡型号为华为昇腾 910B(Ascend),单卡显存为 64GB HBM。

驱动

参考:

驱动、CANN、torch_npu 安装

安装固件

# 根据芯片型号选择相应的安装包安装
# 安装firmwire
chmod +x Ascend-hdk-*-npu-firmware_${version}.run
./Ascend-hdk-*-npu-firmware_${version}.run --full

安装驱动

# 根据CPU架构 以及npu型号 安装对应的 driver
chmod +x Ascend-hdk-*-npu-driver_${version}_*.run
./Ascend-hdk-*-npu-driver_${version}_*.run --full  --install-for-all

npu-smi

npu-smi 是 npu 的系统管理工具,可以用于收集设备信息,查看设备健康状态,对设备进行配置以及执行固件升级、清除设备信息等功能。

驱动安装过程中会默认安装 npu-smi 工具。

安装完成后,npu-smi放置在 /usr/local/sbin/ 路径下。

npu-smi命令参考

# 查看卡基本信息及运行的进程
$ npu-smi info

# 监控卡使用信息,默认每秒刷新一次
$ npu-smi info watch
NpuID(Idx)  ChipId(Idx) Pwr(W)      Temp(C)     AI Core(%)  AI Cpu(%)   Ctrl Cpu(%) Memory(%)   Memory BW(%)
0           0           89.6        25          0           0           6           5           0           
1           0           92.3        26          0           0           3           5           0           
2           0           88.6        28          0           0           4           5           0           
3           0           90.7        29          0           0           15          5           0           
4           0           86.0        28          0           0           5           5           0           
5           0           86.7        30          0           0           5           5           0           
6           0           109.2       36          0           0           4           62          81          
7           0           118.6       36          0           0           2           62          39          

ascend-dmi

Ascend DMI工具介绍

Ascend-mindx-toolbox 下载

Ascend DMI(Ascend Device Management Interface)工具通过调用底层DCMI(设备控制管理接口)以及AscendCL(Ascend Computing Language,昇腾计算语言)相关接口完成相关检测功能,对于系统级别的信息查询通过调用系统提供的通用库来实现。

ascend-dmi工具主要为Atlas产品的标卡、板卡及模组类产品提供带宽测试、算力测试、功耗测试等功能。

安装

$ ./Ascend-mindx-toolbox_6.0.RC3_linux-aarch64.run --install --install-for-all --nox11
$ source /usr/local/Ascend/toolbox/set_env.sh
  • 带宽测试,测试数据从Host侧传输到Device 0,迭代100次的带宽与总耗时。更多 带宽测试

    # 定长模式
    $ ascend-dmi --bw -t h2d -d 0 -s 8388608 --et 100
    Host to Device Test
    Device  0: Ascend 910B3.
    -------------------------------------------------------------------
     ID  Size(Bytes)  Execute Times  Bandwidth(GB/s)  Elapsed Time(us) 
    -------------------------------------------------------------------
      0     8388608        100           23.566224        355.96
    -------------------------------------------------------------------
    
  • 算力测试,测试Device 2,指定算子运算类型默认为fp16,执行次数为6千万的算力。更多 算力测试

    $ ascend-dmi -f -d 2 --et 60
    -----------------------------------------------------------------------------------------
        Device        Execute Times        Duration(ms)        TFLOPS@FP16          Power(W)
    -----------------------------------------------------------------------------------------
        2             360,000,000          1988                313.531            223.300003     
    -----------------------------------------------------------------------------------------
    

CANN

异构计算架构CANN(Compute Architecture for Neural Networks)是昇腾针对AI场景推出的异构计算架构,向上支持多种AI框架,包括MindSpore、PyTorch、TensorFlow等,向下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。同时针对多样化应用场景,提供多层次编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。

参考

安装CANN

安装 toolkit

# 安装toolkit  以arm为例
chmod +x Ascend-cann-toolkit_${version}_linux-aarch64.run
./Ascend-cann-toolkit_${version}_linux-aarch64.run --install
source /usr/local/Ascend/ascend-toolkit/set_env.sh

安装 kernel

# 根据芯片型号选择相应的安装包安装
# 安装 kernel
chmod +x Ascend-cann-kernels-*_${version}_linux.run
./Ascend-cann-kernels-*_${version}_linux.run --install

pytorch for npu

预编译包

https://www.hiascend.com/document/detail/zh/Pytorch/60RC2/configandinstg/instg/insg_0001.html,这个链接中下载 torch 和 torch_npu 预编译包(whl)。

这里选择的pytorch 版本为 2.3.1,python 版本为 3.9(集群默认python版本),系统架构为 aarch64。可以根据自己的python版本、需要的pytorch版本选择对应版本的 python 包下载安装。

# 下载PyTorch安装包
wget https://download.pytorch.org/whl/cpu/torch-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# 下载torch_npu插件包
wget https://gitee.com/ascend/pytorch/releases/download/v6.0.rc2-pytorch2.3.1/torch_npu-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# 安装命令
pip3 install torch-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
pip3 install torch_npu-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

自行编译 torch_npu

版本配套关系,这里以 v2.1.0-6.0.rc2 为例。

git clone -b v2.1.0-6.0.rc2 https://gitee.com/ascend/pytorch.git 
cd pytorch    
bash ci/build.sh --python=3.9
pip3 install --upgrade --upgrade dist/torch_npu-2.1.0.post7+gitunknown-cp39-cp39-linux_aarch64.whl 

Warning

经测试,集群上使用预编译的 torch_npu 使用会报错,需自行编译。

使用集群预安装 torch_npu

$ module load arm/torch_npu/2.1.0.post7-python3.9

测试使用

# 查看卡是否存在
$ lspci | grep d802

# 加载相关环境
$ source /etc/profile
$ source /usr/local/Ascend/ascend-toolkit/set_env.sh

# 查看卡信息
$ npu-smi info

# 测试 pytorch 安装是否正常
$ python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"

# 测试使用 torch 运算,如果出现下面的运算结果,表明 pytorch 框架与插件安装成功
$ python3 -c "import torch;import torch_npu; a = torch.randn(3, 4).npu(); print(a + a);"
tensor([[-0.6066,  6.3385,  0.0379,  3.3356],
        [ 2.9243,  3.3134, -1.5465,  0.1916],
        [-2.1807,  0.2008, -1.1431,  2.1523]], device='npu:0')

参考

昇腾AI-910B平台使用文档-上海交大

本文阅读量  次
本站总访问量  次