有网站和无网站的区别,苏州网络公司微信开发,简述网站开发具体流程图,建站平台塔山双喜大家读完觉得有意义记得关注和点赞#xff01;#xff01;#xff01; 1 术语 1.1 与 NVIDIA 术语对应关系1.2 缩写2 产品与机器 2.1 GPU 产品2.2 训练机器 底座 CPU功耗操作系统2.3 性能3 实探#xff1a;鲲鹏底座 8*910B GPU 主机 3.1 CPU3.2 网卡和网络3.3 GPU 信息 3.3…大家读完觉得有意义记得关注和点赞 1 术语 1.1 与 NVIDIA 术语对应关系1.2 缩写2 产品与机器 2.1 GPU 产品2.2 训练机器 底座 CPU功耗操作系统2.3 性能3 实探鲲鹏底座 8*910B GPU 主机 3.1 CPU3.2 网卡和网络3.3 GPU 信息 3.3.1 GPU 卡间互连HCCS3.3.2 GPU/Memory 使用率3.4 Linux 设备4 容器相关参考资料 1 术语
1.1 与 NVIDIA 术语对应关系
大部分人目前还是对 NVIDIA GPU 更熟悉所以先做一个大致对照方便快速了解华为 GPU 产品和生态
NVIDIAHUAWEI功能GPUNPU/GPU通用并行处理器NVLINKHCCSGPU 卡间高速互连技术InfiniBandHCCNRDMA 产品/工具nvidia-sminpu-smiGPU 命令行工具CUDACANNGPU 编程库DCGMDCMIGPU 底层编程库/接口例如采集监控信息
说明华为很多地方混用术语 NPU 和 GPU为简单起见本文统称为 GPU。
1.2 缩写
NPU: Neural-network Processing UnitHCCS: Huawei Cache Coherence SystemHCCN: Huawei Cache Coherence NetworkCANN: Huawei compute Architecture for Neural Networks DCMI: DaVinci Card Management Interface 参考下 NVIDIA 一张图看下 DCGM/DCMI 在软件栈中的位置 NVIDIA nswitch software stack
2 产品与机器
2.1 GPU 产品
训练昇腾 910B对标 NVIDIA A100/A800算力对比推理Atlas 300 系列对标 NVIDIA T4
2.2 训练机器
底座 CPU
根据 CPU 不同分为两种 x86 底座 客户需要适配的工作量小一些 arm 底座鲲鹏系列 华为云上一般提供的是这种功耗低叠加液冷可以实现比常规 NVIDIA 服务器更好的“性能/功耗”比
功耗
16 卡昇腾 910B 训练机器8U功耗对比
X86: 12KWARM: 4.5KW
操作系统
华为默认是自家的欧拉操作系统 EulerOS基于 CentOS
$ cat /etc/os-release
EulerOS release 2.0 (SP10)
NAMEEulerOS
VERSION2.0 (SP10)
IDeuleros
VERSION_ID2.0
PRETTY_NAMEEulerOS 2.0 (SP10)
ANSI_COLOR0;312.3 性能
一些公开信息
算力指标基本对齐 NVIDIA A800卡间互联带宽还有差距科大讯飞称和华为联合优化之后在他们的场景中已经达到 A100 的性能
910B 的官方公开信息比较少但上一代 910 是发了 paper 的想了解内部细节例如 HCCS的可参考 [2]。
3 实探鲲鹏底座 8*910B GPU 主机
8 卡训练机器配置来自华为云环境
机型: physical.kat2ne.48xlarge.8.ei.pod101CPU: Kunpeng 920 (4*48Core2.6GHz)ARM 架构192 核内存: 24*64GB DDR4网卡: 2*100G 8*200G浸没式液冷
3.1 CPU
$ cat /proc/cpuinfo
...
processor : 191
BogoMIPS : 200.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm ssbs
CPU implementer : 0x48 # -- ARM_CPU_IMP_HISI
CPU architecture: 8
CPU variant : 0x1
CPU part : 0xd01
CPU revision : 0CPU implementer 是 CPU 厂商 ARM 架构的完整列表见内核源码 arch/arm64/include/asm/cputype.h 其中 0x48 对应的是华为海思。
3.2 网卡和网络
网卡
$ ip addr # 输出有精简
2: enp67s0f5: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq state UP group default qlen 1000inet 192.168.0.128/24 brd 192.168.0.255 scope global dynamic noprefixroute enp67s0f5
3: enp189s0f0: NO-CARRIER,BROADCAST,MULTICAST,UP mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
4: enp189s0f1: NO-CARRIER,BROADCAST,MULTICAST,UP mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
5: enp189s0f2: NO-CARRIER,BROADCAST,MULTICAST,UP mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
6: enp189s0f3: NO-CARRIER,BROADCAST,MULTICAST,UP mtu 1500 qdisc fq_codel state DOWN group default qlen 1000看到只有网卡 2 上配置了 IP 地址。3~6 是 RDMA 网卡需要用华为的 RDMA 命令行工具 hccn_tool 来查看和修改配置
$ hccn_tool -i 3 -status -g # 相当于 ethtool eth NIC
Netdev status:Settings for eth3:Supported ports: [ Backplane ]Supported link modes: 1000baseKX/Full...100000baseKR4/FullSupported pause frame use: SymmetricSupports auto-negotiation: NoSupported FEC modes: None RSAdvertised link modes: Not reportedSpeed: 200000Mb/s # -- 200Gbps 网卡...查看一些硬件统计
$ hccn_tool -i 3 -hw_stats -g
[devid 3] pd_alloc: 1
[devid 3] pd_dealloc: 0
[devid 3] mr_alloc: 0
[devid 3] mr_dealloc: 0
[devid 3] cq_alloc: 1
[devid 3] cq_dealloc: 0
[devid 3] qp_alloc: 1
[devid 3] qp_dealloc: 0
[devid 3] pd_active: 1
[devid 3] mr_active: 0
[devid 3] cq_active: 1
[devid 3] qp_active: 1
[devid 3] aeqe: 0
[devid 3] ceqe: 0查看 LLDP 信息直连的交换机
$ hccn_tool -i 3 -lldp -g # 类似以太网中的 lldpctl/lldpcli
Chassis ID TLVMAC: ...
Port ID TLVIfname: 400GE1/1/20:2
System Description TLVVersatile Routing Platform Software
VRP (R) software, Version 8.211 (DX511 V200R021C10SPC600)Huarong DX511System Capabilities TLVEnabled capabilities: Bridge, Router
Management Address TLVIPv4: 26.xx.xx.xx
...
Maximum Frame Size TLV9216
End of LLDPDU TLV查看网卡的 IP 地址和路由
$ hccn_tool -i 3 -ip -g
ipaddr:29.1.112.213
netmask:255.255.0.0$ hccn_tool -i 3 -route -g
Routing table:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 29.1.0.1 0.0.0.0 UG 0 0 0 eth3
29.1.0.0 * 255.255.0.0 U 0 0 0 eth3
127.0.0.1 * 255.255.255.255 UH 0 0 0 lo
192.168.1.0 * 255.255.255.0 U 0 0 0 end3v0
192.168.2.0 * 255.255.255.0 U 0 0 0 end3v0RDMA 网卡的启动配置其实在配置文件
$ cat /etc/hccn.conf # RDMA 网卡 0-7 的配置
address_029.1.137.205
netmask_0255.255.0.0
netdetect_029.1.0.1
gateway_029.1.0.1
send_arp_status_01
...
address_729.1.170.143
netmask_7255.255.0.0
netdetect_729.1.0.1
gateway_729.1.0.1
send_arp_status_71RDMA ping
$ hccn_tool -i 3 -ping -g address 29.1.137.205
device 3 PING 29.1.137.205
recv seq0,time1.418000ms
recv seq1,time0.034000ms
recv seq2,time0.040000ms
3 packets transmitted, 3 received, 0.00% packet loss3.3 GPU 信息
$ npu-smi info
------------------------------------------------------------------------------------------------
| npu-smi 23.0.rc2 Version: 23.0.rc2 |
----------------------------------------------------------------------------------------------
| NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page)|
| Chip | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) || 0 910B1 | OK | 88.4 46 0 / 0 |
| 0 | 0000:C1:00.0 | 0 0 / 0 4175 / 65536 || 1 910B1 | OK | 92.1 47 0 / 0 |
| 0 | 0000:01:00.0 | 0 0 / 0 4175 / 65536 |...| 7 910B1 | OK | 92.7 48 0 / 0 |
| 0 | 0000:42:00.0 | 0 0 / 0 4174 / 65536 |GPU 型号 910B164GB HBM 显存
$ npu-smi info -h
Usage: npu-smi info watch|proc|-h|-m|-l|-t type [Options...]Commands:watch Show all devices status in scrolling formatproc Show devices matrix process status in scrolling format-h, --help Show this help text and exit-m Show all devices mapping information-l Show all devices topology information-t type Show information for typetype: board, flash, memory, usages, sensors, temp, power, volt, mac-addr,common, health, product, ecc, ip, sys-time, i2c_check, work-mode,ecc-enable, p2p-enable, ssh-enable, license, customized-info,device-share, nve-level, aicpu-config, pcie-err, mcu-monitor,err-count, boot-area, vnpu-mode, info-vnpu, vnpu-svm, cpu-num-cfg,first-power-on-date, proc-mem, phyid-remap, vnpu-cfg-recover, key-manage,template-info, pkcs-enable, p2p-mem-cfg, pwm-mode, pwm-duty-ratio,boot-select, topo.Options:-i %d Card ID-c %d Chip ID-p %d Chip Physical ID3.3.1 GPU 卡间互连HCCS
角色类似于 NVIDIA NVLink。
$ npu-smi info -t topo
NPU0 NPU1 NPU2 NPU3 NPU4 NPU5 NPU6 NPU7 CPU Affinity
NPU0 X HCCS HCCS HCCS HCCS HCCS HCCS HCCS 144-167
NPU1 HCCS X HCCS HCCS HCCS HCCS HCCS HCCS 0-23
NPU2 HCCS HCCS X HCCS HCCS HCCS HCCS HCCS 144-167
NPU3 HCCS HCCS HCCS X HCCS HCCS HCCS HCCS 0-23
NPU4 HCCS HCCS HCCS HCCS X HCCS HCCS HCCS 96-119
NPU5 HCCS HCCS HCCS HCCS HCCS X HCCS HCCS 48-71
NPU6 HCCS HCCS HCCS HCCS HCCS HCCS X HCCS 96-119
NPU7 HCCS HCCS HCCS HCCS HCCS HCCS HCCS X 48-71Legend:X SelfSYS Path traversing PCIe and NUMA nodes. Nodes are connected through SMP, such as QPI, UPI.PHB Path traversing PCIe and the PCIe host bridge of a CPU.PIX Path traversing a single PCIe switchPXB Path traversing multipul PCIe switchesHCCS Connection traversing HCCS.很多资料都说 910B 的卡间互连带宽是 392GB/s看起来跟 A800 的 400GB/s 差不多了 但其实还是有区别的主要是互连拓扑不同导致的详见 [1]。 3.3.2 GPU/Memory 使用率
第一个 chip 的利用率
$ npu-smi info -t usages -i 0NPU ID : 0Chip Count : 1DDR Capacity(MB) : 0DDR Usage Rate(%) : 0DDR Hugepages Total(page) : 0DDR Hugepages Usage Rate(%) : 0HBM Capacity(MB) : 65536HBM Usage Rate(%) : 4Aicore Usage Rate(%) : 0Aivector Usage Rate(%) : 0Aicpu Usage Rate(%) : 0Ctrlcpu Usage Rate(%) : 0DDR Bandwidth Usage Rate(%) : 0HBM Bandwidth Usage Rate(%) : 0Chip ID : 0第二个 chip 的常规利用率信息
$ npu-smi info -t common -i 1NPU ID : 1Chip Count : 1Chip ID : 0Memory Usage Rate(%) : 0HBM Usage Rate(%) : 4Aicore Usage Rate(%) : 0Aicore Freq(MHZ) : 1800Aicore curFreq(MHZ) : 800Aicore Count : 24Temperature(C) : 46NPU Real-time Power(W) : 93.4Chip Name : mcuTemperature(C) : 383.4 Linux 设备
8 张 910B GPU 及一个管理设备
$ ls /dev/davinci*
/dev/davinci0 /dev/davinci1 /dev/davinci2 /dev/davinci3 /dev/davinci4 /dev/davinci5 /dev/davinci6 /dev/davinci7 /dev/davinci_managerdavinci 是华为 GPU/NPU 的架构名更多信息见下一篇 GPU 进阶笔记三华为 NPU (GPU) 演进2024。 还有两个设备比较重要
$ ll /dev/hisi_hdc # HDC-related management device
crw-rw---- 1 HwHiAiUser HwHiAiUser 237, 0 /dev/hisi_hdc$ ll /dev/devmm_svm # Memory-related management device
crw-rw---- 1 HwHiAiUser HwHiAiUser 238, 0 /dev/devmm_svm4 容器相关
docker 配置
$ cat /etc/docker/daemon.json
{runtimes: {ascend: {path: /usr/local/Ascend/Ascend-Docker-Runtime/ascend-docker-runtime,runtimeArgs: []}},default-shm-size: 8G,default-runtime: ascend
}然后 docker run 可以直接启动容器挂载必要的设备、驱动等等
$ sudo docker run -itd --cap-addSYS_PTRACE --nethost --shm-size32g \--device/dev/davinci0 --device/dev/davinci1 --device/dev/davinci2 \--device/dev/davinci3 --device/dev/davinci4 --device/dev/davinci5 \--device/dev/davinci6 --device/dev/davinci7 \--device/dev/davinci_manager \--device/dev/devmm_svm \--device/dev/hisi_hdc \-v /usr/local/dcmi:/usr/local/dcmi \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \--name name image /bin/bash$ ls /usr/local/dcmi/
dcmi_interface_api.h libdcmi.so用 k8s 部署 pod 目前问题会比较多。
参考资料
GPU Performance (Data Sheets) Quick Reference (2023)Ascend: a Scalable and Unified Architecture for Ubiquitous Deep Neural Network Computing, HPCA, 2021Introduction to the npu-smi Command, huawei.com, 2023Host Directories Mounted to a Container, huawei.com, 2024