当前位置: 首页 > article >正文

华为昇腾智算中心-智算中心测试方案与标准

本方案是企业内训课程《华为昇腾智算中心深度技术研修》的一部分授课课件的样例。方案内容中详细阐述了华为昇腾环境下智算中心的测试方案和标准,以确保硬件和软件系统在实际部署和运行中的高效性和稳定性。主要内容包括集群硬件清单、节点拓扑配置以及环境配置。硬件部分涵盖了CPU、GPU、内存、存储和网络等组件的具体型号、规格、性能指标和测试目标,如CPU的单核/多核性能、GPU的AI加速能力、内存的读写带宽、存储的IOPS等。

测试方案针对各组件及其组合进行了全面的基线测试和功能测试,涉及单节点及多节点的多种性能指标,包括计算能力、网络通信效率、存储系统性能等。同时,提供了测试工具的使用方法和流程,如sysbench、fio、iperf等,帮助用户准确评估系统性能,识别潜在瓶颈和优化空间。

此外,文件还详细介绍了如何通过配置集群管理工具(如Slurm和Kubernetes)来实现任务调度和负载均衡,确保系统资源的高效利用。整体方案全面覆盖了从基础设施搭建到性能优化的各个环节,提供了系统性的测试框架和参考标准,为构建高效、安全的智算中心提供了重要依据。

智算集群整体测试方案

 a.硬件测试的基本流程

硬件清单和测试目标内容

  1. 集群硬件清单:主要记录集群中的各类硬件组件,如CPU、GPU、内存、存储、网络设备等。这张表着重于每个硬件的规格、性能基线和测试目标。
  2. 集群节点拓扑与配置清单:记录集群的整体架构,包括节点的数量、类型、硬件配置,以及它们的角色和网络拓扑结构。这张表主要用于分析和测试集群中各节点的布局、连接方式以及它们在分布式系统中的协同工作效率。

表1:集群硬件清单

用于列出每个硬件的具体型号、测试目标以及厂商提供的性能基线。适用于单个节点或组件的详细测试。(根据实际环境会进行调整,这里举个例子)

硬件组件

型号/规格

测试目标

厂商提供的基线

其他重要指标

备注

CPU

华为鲲鹏920

- 测试单核/多核性能
 - 任务调度和多线程处理能力

- 单核性能:1,200 SPECint
- 多核性能:15,000 SPECint

- 指令集执行效率
- 功耗与热设计功耗(TDP)

厂商提供的SPEC CPU测试结果为参考

GPU

华为昇腾910

- 测试AI模型加速性能
- 并行计算性能

- AI加速:150 TFLOPS
- 训练性能:512 samples/second

- GPU温度与散热能力
- GPU利用率

基于MindSpore或TensorFlow框架的AI基线测试

内存

512GB DDR4 2933MHz

- 测试内存读写速度、带宽
- 并发读写性能

- 带宽:45 GB/s
- 延迟:70ns

- 内存利用率
- NUMA效应

使用STREAM测试带宽,延迟基于厂商数据

网络

华为100Gbps 高速以太网卡

- 测试跨节点网络带宽
- 网络延迟与丢包率

- 带宽:98 Gbps
- 延迟:1.5ms

- 数据包丢失率
- 网络抖动

使用iperf/netperf测试网络带宽与延迟

存储

华为OceanStor存储系统

- 测试存储读写性能
- 大数据并发访问性能

- IOPS:350,000
- 吞吐量:5 GB/s

- 读写延迟
- 热数据与冷数据分级管理

使用fio测试存储系统IOPS和吞吐量

GPU加速卡

华为Atlas 300 (昇腾310)

- 测试推理性能
- 单节点与多节点的GPU并行计算能力

- 推理速度:64 TOPS
- 并行性能:32,000 images/second

- GPU通信带宽
- GPU温度和功耗

推理加速基线基于NVIDIA NCCL等通信库测试

存储(SSD

2TB NVMe SSD

- 测试读写速度
- 随机IO性能

- 顺序读写:3.5 GB/s
- 随机IOPS:350,000

- SSD耐久性(TBW)
- 延迟

使用fio测试读写性能

表2:集群节点拓扑与配置清单( 参考数据,以实际环境为准)

用于记录集群中每个节点的角色、硬件配置和网络拓扑。适用于评估集群的整体布局和节点间的协同工作。

节点类型

节点数量

节点硬件配置

角色

网络拓扑结构

其他重要信息

计算节点

10

CPU: 华为鲲鹏920 
 GPU: 昇腾910 
 内存: 512GB

- 主要用于计算任务,运行AI模型
- 执行分布式训练与推理

星形结构,通过高速网络交换机连接

- 各节点通信带宽
- GPU通信效率
- 负载均衡策略

存储节点

3

存储: 华为OceanStor 
 NVMe SSD: 2TB

- 主要用于存储数据集
- 提供高IOPS支持多任务并发读写

与所有计算节点连接

- 存储IOPS
- 并发访问性能
- 热/冷数据分级管理

管理节点

2

CPU: 华为鲲鹏920 
 内存: 128GB

- 管理整个集群任务调度
- 监控集群状态与资源分配

环形结构,管理所有计算节点

- 集群资源调度效率
- 管理节点故障恢复

网络节点

1

Mellanox 100Gbps 高速网络设备

- 负责跨节点通信与负载均衡
- 管理节点间的网络连接

树形结构

- 网络延迟
- 网络抖动与丢包率
- 高并发下的带宽利用

环境配置说明:

智算中心环境配置表格(实际环境搭建后修改配置清单)

配置项

配置内容

版本/规格

配置工具/方法

备注

操作系统

Linux 发行版(如Ubuntu, CentOS, EulerOS)

Ubuntu 20.04 / CentOS 8 / EulerOS

操作系统安装光盘或网络安装包

确保与硬件、驱动、AI框架兼容

CPU驱动

安装和配置CPU相关驱动

针对华为鲲鹏920的最新驱动

系统自带工具或厂商提供的驱动程序

确保多核CPU性能正常,支持多线程并行

GPU驱动

安装GPU的驱动程序

昇腾910/310 GPU驱动

Ascend Driver Installation (CANN)

支持深度学习和GPU加速的驱动程序,确保GPU正常工作

AI框架

安装AI框架(如TensorFlow, PyTorch, MindSpore)

TensorFlow 2.6 / PyTorch 1.9 / MindSpore 1.3

通过pip或conda安装

确保AI框架与GPU和计算资源兼容

集群管理工具

集群调度和管理工具

Slurm / Kubernetes

通过apt、yum等包管理工具安装

确保任务调度与负载均衡功能正常

网络配置

配置节点间的网络连接,优化网络带宽和延迟

Mellanox 100Gbps 网络接口卡

使用网络配置工具,如ifconfig, iperf

确保节点间网络带宽最大化,延迟最小化

存储系统

配置分布式存储系统,确保高IOPS和低延迟

华为OceanStor / Ceph

Ceph部署工具,或厂商提供的配置工具

确保存储系统支持并发读写和大数据存储

硬盘分区与挂载

配置NVMe SSD和分布式存储的分区与挂载点

NVMe 2TB SSD 分区

使用fdisk、mkfs等工具进行分区挂载

确保存储系统被正确挂载,支持大数据访问

文件系统

文件系统的格式化与优化配置

Ext4 / XFS / CephFS

mkfs工具进行文件系统格式化

根据需求选择最优的文件系统,支持高效读写

安全配置

安装和配置防火墙、权限控制等安全机制

Firewalld / iptables / SELinux

通过操作系统或独立安全工具配置

确保智算中心在进行测试时有安全的网络和访问控制

软件依赖环境

安装各种开发包、编译工具及测试所需依赖的库

gcc, g++, OpenMPI, CUDA等

通过apt、yum、pip等安装

确保所有依赖包和编译环境正确安装和配置

监控工具

安装监控工具,实时监控硬件资源和任务运行状态

Grafana / Prometheus / NVIDIA-SMI

通过包管理工具安装和配置

确保系统在运行时,能够监控CPU、GPU、内存等状态

系统时钟同步

确保集群中所有节点时钟同步

NTP / Chrony

通过系统时钟同步工具进行配置

保证分布式任务中各节点的时钟同步

配置项说明:

  1. 操作系统:智算中心通常基于Linux操作系统(如Ubuntu、CentOS或EulerOS)。选择的操作系统版本需要和硬件兼容,尤其是CPU、GPU和存储系统。
  2. CPU驱动:确保多核CPU的性能发挥正常,安装和配置合适的CPU驱动程序,特别是对于华为鲲鹏等高性能CPU。
  3. GPU驱动:确保安装最新的GPU驱动程序(如华为昇腾910/310),支持深度学习模型的加速训练。常用工具如Ascend Driver或CANN(Compute Architecture for Neural Networks)。
  4. AI框架:安装AI框架(TensorFlow、PyTorch或MindSpore),用于模型训练和推理。确保框架版本和硬件、操作系统兼容,安装时可以通过pip、conda等包管理工具。
  5. 集群管理工具:用于任务调度、负载均衡和集群管理。常用工具如Slurm和Kubernetes,确保所有节点任务调度和资源分配有效。
  6. 网络配置:配置智算中心的网络,使节点之间的通信效率最大化,确保数据传输带宽和延迟优化。测试工具如iperf等用于网络优化测试。
  7. 存储系统:配置分布式存储系统(如Ceph或华为OceanStor),确保高并发访问、大数据存储以及读写性能。
  8. 硬盘分区与挂载:配置NVMe SSD的分区与挂载点,确保存储系统能够快速访问和写入数据,特别是在高IOPS需求下。
  9. 文件系统:根据系统需求配置合适的文件系统(如Ext4、XFS、CephFS),确保支持高效的大数据读写操作。
  10. 安全配置:设置操作系统的安全防护(如防火墙、防病毒、SELinux等),确保测试环境的网络和数据安全。
  11. 软件依赖环境:安装各种依赖包和开发工具(如编译器、OpenMPI、CUDA等),确保智算中心在测试时拥有所需的软件支持。
  12. 监控工具:通过安装Grafana、Prometheus等监控工具,实时监控系统硬件资源(CPU、GPU、内存等)和任务运行状态,确保在测试时能够及时发现问题。
  13. 系统时钟同步:使用NTP或Chrony确保集群中各个节点的时钟同步,避免分布式任务由于时间不同步而出现问题。

基础功能测试清单表格

测试项目

测试目的

测试内容

测试工具

预期结果

操作系统健康检查

检查操作系统是否正常运行

- 操作系统版本检查
- 系统运行状态(CPU、内存使用情况)

uname, top, free

操作系统正常运行,资源使用无异常

CPU基本功能测试

确保CPU能够正常运行,且多核、多线程功能有效

- 检查CPU核数、线程
- 测试基础计算任务

lscpu, sysbench

CPU正常检测,所有核心和线程都能工作,多核性能正常

GPU基本功能测试

检查GPU的硬件状态并确保GPU驱动安装成功

- 确认GPU驱动是否正确安装
- 测试GPU硬件状态及利用率

nvidia-smi, Ascend Toolkit (CANN)

GPU驱动正确安装,硬件状态良好,GPU可被识别和正常使用

内存基本功能测试

确保内存读写功能正常,避免内存硬件故障

- 内存检测与读写测试
- 检查内存使用情况

memtest86, free, vmstat

内存读写无错误,内存分配和使用情况正常

存储设备检测

确认存储设备能够正确连接并识别,文件系统工作正常

- 检查存储设备挂载状态
- 测试基本读写操作

fdisk, lsblk, dd, fio

存储设备被正确识别并正常挂载,读写操作无错误

网络连接测试

确保集群内节点之间的网络连接正常,且带宽和延迟在合理范围内

- 测试节点间的网络连通性
- 检测网络带宽和延迟

ping, iperf

节点间网络连通性正常,带宽和延迟符合预期

文件系统功能测试

检查文件系统是否正常工作并支持大文件的读写

- 检查文件系统状态
- 基础读写测试

df, du, dd

文件系统正常挂载,支持大数据读写,读写性能无异常

硬盘分区和挂载

确认所有存储硬盘正确分区并挂载,文件系统格式化正常

- 检查分区状态
- 检测硬盘的读写速度

fdisk, mkfs, dd

所有硬盘分区正确,挂载状态良好,基础读写无问题

存储IO功能测试

确保存储设备在并发访问时性能稳定,支持大数据量的读写

- 检查IO性能
- 测试并发读写能力

fio, dd

IO性能稳定,支持并发读写操作,无明显性能下降

集群节点健康检查

确保所有节点均能正常启动和运行,硬件状态良好

- 检查所有节点的健康状态
- 确认节点配置和资源使用情况

ping, top, free

所有节点状态正常,硬件资源(CPU、内存)使用无异常

集群管理工具功能

确保集群管理工具(如Slurm、Kubernetes)能够正常运行,任务分配正常

- 检查管理工具的状态
- 提交简单任务进行分配测试

Slurm, Kubernetes, squeue, kubectl

管理工具运行正常,任务分配无误,调度系统工作正常

时钟同步功能测试

确保集群中各节点的系统时钟同步,避免分布式任务时钟不一致

- 检查节点的时钟同步状态

ntpstat, chrony

所有节点时钟同步,时间偏差在可接受范围内

安全与防火墙检查

检查安全配置,确保防火墙、SELinux等安全机制正确运行

- 检查防火墙状态
- 检查SELinux和权限设置

firewall-cmd, sestatus

防火墙和SELinux运行正常,安全配置合理,无不必要的开放端口

测试项目说明:

  1. 操作系统健康检查:验证操作系统是否正常运行,包括系统资源(CPU、内存等)使用情况是否异常,确保系统稳定。
  2. CPU基本功能测试:通过查看CPU的核心数和线程情况,确保CPU的多核、多线程功能有效,并通过基础的计算任务验证其运行正常。
  3. GPU基本功能测试:检查GPU是否正确安装和可用,验证GPU的基本状态和利用率是否正常,确保GPU能够支持深度学习和计算加速任务。
  4. 内存基本功能测试:使用memtest86等工具检查内存硬件是否有问题,确保内存的读写能力正常,避免内存模块损坏或安装不当导致的错误。
  5. 存储设备检测:验证所有存储设备是否能够正确识别并挂载,确保磁盘读写操作无误。可以通过查看分区和挂载状态确认设备连接是否正常。
  6. 网络连接测试:通过测试节点间的连通性(如使用ping)和带宽、延迟等网络性能(如使用iperf),确保集群内节点之间的网络连接正常。
  7. 文件系统功能测试:检查文件系统是否正常工作,支持大文件的读写,确保在后续的大数据存储和处理任务中,文件系统能够提供足够的性能。
  8. 硬盘分区和挂载:验证所有硬盘是否已正确分区和挂载,检查文件系统是否被正确格式化,并通过基础读写测试确认其正常工作。
  9. 存储IO功能测试:使用fio等工具对存储设备进行IO性能测试,验证存储系统在并发访问时的读写性能是否稳定,确保数据密集型任务能够顺利进行。
  10. 集群节点健康检查:确保所有集群节点能够正常启动、工作,硬件资源状态良好,所有节点的CPU、内存等资源使用无异常。
  11. 集群管理工具功能:检查集群管理工具(如SlurmKubernetes)是否运行正常,提交简单任务测试集群的任务调度和负载均衡功能。
  12. 时钟同步功能测试:确保集群中所有节点的系统时钟同步,避免在分布式任务中因为时钟不同步导致的问题。通过NTPChrony工具进行检查。
  13. 安全与防火墙检查:检查集群的安全配置,包括防火墙、SELinux、用户权限等,确保系统安全配置合理,无不必要的端口暴露。

基线测试(重点核心)

基线测试的目的是为集群硬件和系统设定一个性能参考标准,以便在后续的性能测试中有一个对比基准。通过基线测试,确保硬件和软件在正常情况下能够达到预期的性能标准,并为压力测试、扩展性测试等提供参考。基线测试不仅关注单个组件的性能,还可以涉及整个集群的综合性能,确保系统在不同负载下的正常表现。

基线测试清单表格

测试项目

测试目的

测试内容

测试工具

基线预期值

备注

CPU基线测试

测试CPU的单核和多核性能,确定计算能力基线

- 单核与多核性能测试
- 多线程任务执行能力

SPEC CPU, sysbench

- 单核:1,200 SPECint
- 多核:15,000 SPECint

基于厂商提供的基准数据

GPU基线测试

确定GPU的浮点运算能力和AI模型训练加速能力

- 测试GPU计算能力(FLOPS)
- AI任务加速比

TensorFlow Benchmark, PyTorch

- AI加速:150 TFLOPS
- 训练性能:512 samples/sec

使用标准模型和数据集进行测试

内存基线测试

确保内存的读写带宽和延迟在预期范围内

- 测试内存带宽和延迟
- 多任务并发读写测试

STREAM, memtest86

- 带宽:45 GB/s
- 延迟:70ns

基于硬件规格和预期性能

存储基线测试

确定存储系统的IOPS、吞吐量和读写延迟,确保数据存取性能

- 测试存储IOPS
- 顺序和随机读写性能
- 读写延迟

fio, IOzone

- IOPS:350,000
- 吞吐量:5 GB/s
- 延迟:5ms

存储系统在单节点与多节点下的表现对比

网络基线测试

确定节点间网络带宽和延迟,确保通信效率和稳定性

- 测试节点间带宽
- 延迟和丢包率
- 网络抖动

iperf, netperf, PingPlotter

- 带宽:98 Gbps
- 延迟:1.5ms

针对多节点的跨节点通信进行基线测试

存储并发访问测试

确保存储在多节点并发访问下的稳定性,确定并发处理能力

- 并发读写性能测试
- 存储延迟与吞吐量

fio, Ceph Benchmarks

- 并发IOPS:300,000
- 吞吐量:4.5 GB/s

确保存储在高并发下性能稳定

分布式训练基线测试

测试多节点的分布式训练性能,确保分布式计算的加速比和通信效率

- 测试分布式训练的通信延迟
- 加速比与扩展性

NCCL, Horovod

- 加速比接近线性增长
- 通信延迟最低化

基于多GPU节点的模型训练进行测试

任务调度基线测试

确保集群任务调度系统(如Slurm)的任务分配效率和负载均衡效果

- 测试任务分配效率
- 负载均衡能力
- 资源利用率

Slurm, Kubernetes, squeue, kubectl

- 任务延迟在可接受范围内
- 资源利用率达90%以上

多任务并发情况下的调度表现

系统扩展性基线测试

测试增加节点后的性能扩展性,确保系统扩展性能线性增长

- 增加节点后的性能提升
- 资源利用率
- 负载分布情况

Linpack, MPI Benchmarks

- 性能扩展比接近线性
- 负载均衡良好

验证系统在增加节点时的性能扩展效果

系统能效基线测试

确保系统在不同负载下的能效比,优化功耗与计算能力的平衡

- 不同负载下的功耗与性能测试
- 计算能效比

lm-sensors, PowerTOP

- 在高负载下能效比优化
- 功耗与性能平衡合理

根据负载优化能效表现,确保功耗合理

测试项目说明:

  1. CPU基线测试:通过SPEC CPUsysbench测试CPU的单核与多核性能,确保系统的计算能力达到预期。基线数据可以参考厂商提供的CPU性能规格,或通过历史测试结果设定。
  2. GPU基线测试:针对深度学习或计算密集型任务,测试GPU的浮点运算性能(FLOPS)和AI任务加速能力。使用TensorFlow BenchmarkPyTorch进行标准模型的训练测试,确保GPU的利用率和加速效果符合预期。
  3. 内存基线测试:通过STREAMmemtest86测试内存的读写带宽和延迟,确保内存模块的读写性能符合硬件预期,特别是在多任务并发的情况下,确保延迟不会增加。
  4. 存储基线测试:使用fioIOzone工具测试存储设备的顺序和随机读写性能,确保IOPS、吞吐量和延迟符合预期。存储系统在高IOPS需求下,必须保持稳定的性能。
  5. 网络基线测试:通过iperf等工具测试节点间的网络带宽、延迟、抖动和丢包率,确保多节点集群在分布式任务中的通信效率达到要求。带宽和延迟的基线设定通常基于网络硬件的规格。
  6. 存储并发访问测试:评估在多节点并发访问时,存储系统的IO性能是否能够稳定提供高吞吐量,测试并发下的IOPS和延迟,确保存储系统在高负载下能够保持性能。
  7. 分布式训练基线测试:针对深度学习任务的分布式训练,测试多节点、多GPU的分布式训练性能,确保加速比接近线性增长,通信延迟最小化。
  8. 任务调度基线测试:通过SlurmKubernetes测试任务调度和负载均衡的效率,确保集群中的任务能够均衡分配,避免资源浪费或单一节点过载。
  9. 系统扩展性基线测试:测试系统的扩展性能,通过增加节点,验证集群是否能够线性扩展计算能力,并且确保负载均衡在扩展后保持稳定。
  10. 系统能效基线测试:通过测试不同负载下的系统功耗与性能,确保系统在高负载下仍能保持合理的能效比,优化计算能力与功耗的平衡。

测试工具的使用和流程

免费开源的基线测试工具清单(附下载链接)

昇腾环境优化的基线测试工具清单

测试项目

测试目的

测试内容

测试工具

工具说明

下载链接

CPU基线测试

测试鲲鹏CPU的单核和多核性能

- 单核与多核性能测试
- 多线程任务执行能力

1. sysbench
2. KML

sysbench:适用于鲲鹏CPU的基线测试工具
KML:华为鲲鹏数学库,优化数值计算和性能表现

sysbench GitHub
KML下载

GPU基线测试

测试昇腾AI处理器的性能和AI训练加速能力

- 测试GPU(昇腾)计算能力
- AI任务加速比

1. CANN Profiler
2. MindSpore Benchmark

CANN Profiler:华为昇腾专用性能分析工具
MindSpore:华为AI框架,完全适配昇腾环境

CANN下载
MindSpore下载

内存基线测试

测试系统内存的带宽和延迟

- 内存带宽和延迟测试
- 多任务并发读写测试

1. STREAM
2. CANN Profiler

STREAM:内存带宽测试工具,适配鲲鹏CPU
CANN Profiler:分析内存利用情况和性能瓶颈

STREAM
CANN下载

存储基线测试

测试存储系统的IOPS、吞吐量和延迟

- 测试存储IOPS
- 顺序和随机读写性能
- 读写延迟

1. fio
2. 华为OceanStor管理工具

fio:适用于存储设备的基准测试工具
OceanStor:华为的分布式存储管理工具,监控存储性能

fio
OceanStor下载

网络基线测试

测试集群节点间网络的带宽和延迟

- 测试节点间网络带宽
- 延迟和丢包率

1. iperf
2. 华为CloudEngine管理工具

iperf:测试网络带宽和延迟的标准工具
CloudEngine:华为交换机的性能监控与优化工具

iperf下载
CloudEngine下载

存储并发访问测试

测试存储系统在多节点并发访问下的稳定性和性能

- 并发读写性能测试
- 存储延迟与吞吐量

1. fio
2. Ceph Benchmarks

fio:适用于并发IO测试的开源工具
Ceph:分布式存储的性能基准测试工具

fio
Ceph Benchmarks

分布式训练基线测试

测试昇腾AI处理器在多节点下的分布式训练性能

- 测试分布式训练的通信延迟
- 加速比与扩展性

1. CANN Profiler
2. MindSpore

CANN Profiler:分析昇腾AI处理器的多节点分布式训练性能
MindSpore:华为AI框架,支持多节点分布式训练

CANN下载
MindSpore下载

任务调度基线测试

测试集群任务调度系统(如Slurm)的任务分配效率和负载均衡

- 测试任务分配效率
- 负载均衡能力
- 资源利用率

1. Slurm
2. 华为AI集群管理工具

Slurm:适用于集群管理的开源任务调度工具
华为AI集群管理工具:优化昇腾AI任务的调度

Slurm下载
华为AI集群管理工具下载

系统扩展性基线测试

测试增加节点后的系统扩展性能,确保系统扩展性良好

- 测试系统扩展性
- 资源利用率
- 负载分布情况

1. Linpack
2. MPI Benchmarks

Linpack:高性能计算基准测试工具,适合扩展性测试
MPI Benchmarks:测试多节点间的通信效率

Linpack
MPI Benchmarks

系统能效基线测试

确保系统在不同负载下的能效比,优化功耗与计算能力的平衡

- 不同负载下的功耗与性能测试
- 计算能效比

1. lm-sensors
2. PowerTOP

lm-sensors:监控硬件温度与功耗
PowerTOP:Linux下的功耗优化工具

lm-sensors
PowerTOP下载

工具说明与适配性

  1. sysbench:适合用于鲲鹏CPU的基线测试,包括单核、多核性能的测试。但不适合直接测试昇腾AI处理器,建议使用CANN工具链来分析昇腾硬件。
  2. KML(Kunpeng Math Library:华为鲲鹏的数学库,适合数值计算任务的优化与性能分析。推荐在鲲鹏CPU环境下使用。
  3. CANN Profiler:这是华为昇腾AI芯片的专用性能分析工具,强烈推荐在任何与昇腾AI加速相关的基线测试中使用,包括模型训练、推理和多节点分布式任务。
  4. MindSpore:华为的AI框架,完全适配昇腾AI硬件,并支持多节点分布式训练。适用于代替TensorFlow或PyTorch在昇腾环境中的使用。
  5. STREAM:适用于鲲鹏CPU的内存带宽测试工具,可以帮助检测内存性能瓶颈,建议与CANN结合,分析AI训练任务中的显存和内存带宽。
  6. fio:适用于测试存储系统的IOPS和吞吐量,适配SATA、NVMe等存储设备。可以与华为OceanStor存储系统结合使用。
  7. iperf:标准的网络带宽和延迟测试工具,适合用于集群中节点间的网络测试,与华为CloudEngine交换机管理工具结合使用效果更好。
  8. Slurm:用于集群管理和任务调度,但针对昇腾AI任务,建议结合华为AI集群管理工具,以优化AI加速任务的调度。
  9. Linpack 和 MPI Benchmarks:适用于高性能计算中的扩展性测试,能够检测多节点的负载分布和通信效率。

免费开源基线测试工具的核心指标、参数页面和测试方法


1. sysbench

核心指标
  • 单核/多核性能:每秒处理的事件数(events per second)以及CPU的响应时间。
  • 线程并发性能:多线程任务的并行执行能力。
  • 内存性能:内存的读写速度和延迟。
关键参数页面
  • --threads=N:设置并发线程数,N为指定的线程数(如--threads=8用于测试多核性能)。
  • --cpu-max-prime=N:设置用于计算的最大素数,N越大,计算量越大,适用于CPU的浮点运算测试。
  • --test=cpu/memory:选择测试项,cpu用于CPU测试,memory用于内存测试。
测试方法
  • 单核/多核性能测试
  1.  --test=cpu --cpu-max-prime=20000 --threads=1 run  单核
    sysbench --test=cpu --cpu-max-prime=20000 --threads=8 run  多核
  • events/sec)和执行时间,评估CPU性能。
  • 内存性能测试
  1.  --test=memory --memory-block-size=4K --memory-total-size=1G run

2. KML(Kunpeng Math Library

核心指标
  • 数值计算性能:评估鲲鹏CPU的数值计算效率。
  • 矩阵计算性能:测试大规模矩阵运算中的加速比和性能瓶颈。
  • 多线程性能:在多核场景下的并发计算能力。
关键参数页面
  • -i [number]:设置计算的迭代次数。
  • -t [threads]:指定线程数量,测试多线程并发性能。
  • -m:指定数学运算类型(如矩阵乘法)。
测试方法
  • 矩阵运算性能测试
  1.  -i 1000 -t 8 -m matrix_mul
  • 8个线程测试矩阵乘法运算的性能,分析鲲鹏CPU在高并发场景下的性能表现。

3. CANN Profiler

核心指标
  • AI核利用率:AI处理器的利用率,关键性能指标为AI Core Utilization
  • 显存利用率:分析显存的使用情况,避免显存瓶颈。
  • 训练吞吐量:每秒处理的样本数(samples/sec)是衡量模型训练速度的重要指标。
  • 通信延迟:在多卡或多节点训练中,通信延迟会影响训练的整体性能。
关键参数页面
  • --batch_size:指定批处理大小,通常用于测试模型训练吞吐量。
  • --num_cards:指定使用的GPU或昇腾AI卡数量,测试单卡和多卡加速效果。
  • --model:指定模型类型(如resnet50bert等)。
测试方法
  • 模型训练性能测试
  1.  start --model=resnet50 --batch_size=32 --num_cards=4
  • CANN Profiler分析训练性能,查看AI核的利用率、显存使用情况和通信延迟,评估多卡训练效果。

4. MindSpore Benchmark

核心指标
  • 每秒处理样本数(Samples/Second:用于衡量模型训练或推理的效率。
  • 推理延迟:模型推理所需时间,通常以毫秒(ms)为单位。
  • 加速比:在多节点或多GPU/多AI卡的场景下,分析加速效果。
关键参数页面
  • --arch:选择模型架构(如resnet50bert)。
  • --batch_size:设置批次大小,影响训练速度和显存占用。
  • --device_num:设置使用的设备数量,测试分布式训练时的性能。
测试方法
  • 单设备模型训练性能测试
  1.  mindspore_benchmark.py --arch=resnet50 --batch_size=32 --epochs=1
  • 多设备分布式训练测试
  1.  -n 4 python mindspore_benchmark.py --arch=resnet50 --batch_size=64 --epochs=--device_num=4

5. STREAM

核心指标
  • 内存带宽:以GB/s为单位,测量内存的读写带宽。
  • 内存延迟:测试内存的访问延迟,通常以纳秒(ns)为单位。
关键参数页面
  • STREAM_ARRAY_SIZE:设置测试的数组大小,越大越能反映系统的内存性能。
  • NTIMES:设置测试的重复次数,通常设置为10次。
测试方法
  • 内存带宽测试
    编译并运行STREAM
  1.  -O2 stream.c -o stream && ./stream
  • GB/s),并评估内存延迟。

6. fio

核心指标
  • IOPS:每秒输入输出操作次数,用于衡量存储系统的读写能力。
  • 吞吐量:存储设备的顺序或随机读写性能,单位为MB/s。
  • 延迟:存储设备的响应延迟,以毫秒(ms)为单位。
关键参数页面
  • --rw=read/write/randread/randwrite:设置读写模式(顺序或随机)。
  • --bs=[block size]:设置块大小,常用4K、8K等。
  • --iodepth=N:指定并发深度,用于测试并发IO性能。
测试方法
  • 随机读写测试
  1.  --name=test --size=4G --rw=randread --bs=4k --iodepth=64
  • IOPS和延迟情况。
  • 顺序写入测试
  1.  --name=test --size=4G --rw=write --bs=1M

7. iperf

核心指标
  • 网络带宽:两个节点之间的最大带宽,以Gbps为单位。
  • 网络延迟:数据包的往返延迟,通常以毫秒(ms)表示。
  • 数据包丢失率:测试网络通信的可靠性。
关键参数页面
  • -c:指定客户端的IP地址。
  • -P:设置并发连接数,模拟高并发网络环境。
  • -t:测试时长,以秒为单位。
测试方法
  • 网络带宽测试
    在服务器节点运行iperf -s,在客户端运行:
  1.  -c <server_ip> -P 4 -t 30

8. Slurm

核心指标
  • 任务等待时间:任务从提交到执行的延迟时间。
  • 资源利用率:集群中各节点CPU、GPU等资源的利用率。
  • 负载均衡:集群中任务的分配均匀性,评估各节点的负载。
关键参数页面
  • sbatch:用于提交批量任务。
  • squeue:查看任务队列和执行状态。
  • sinfo:监控集群节点的状态和资源利用情况。
测试方法
  • 批量任务提交测试
    提交批量任务,监控任务调度情况:
  1.  my

重点问题:

在进行软件基线测试时,我们需要重点注意的事项:

1. sysbench

重点发现的问题
  • 多核性能不均衡
    • 观察点:检查各核心的负载是否均衡,是否存在某些核心负载过重或过轻的情况。
    • 注意事项:在进行多核测试时,监控CPU核心利用率,避免其他后台任务影响测试结果。
  • 内存带宽瓶颈
    • 观察点:监测内存读写性能,特别是在高并发情况下是否出现带宽瓶颈。
    • 注意事项:注意内存带宽的上下限,避免因内存带宽限制导致测试结果偏低。

2. KML(Kunpeng Math Library

重点发现的问题
  • 优化库兼容性
    • 观察点:检查KML库是否与其他数学库或应用程序兼容,是否出现计算错误或性能下降。
    • 注意事项:在测试前确认KML库的版本,并确保其与系统和其他软件兼容。
  • 测试覆盖范围不足
    • 观察点:测试是否覆盖了多种计算任务,包括复杂的数学运算。
    • 注意事项:扩展测试用例,确保测试结果能够反映实际应用中的复杂计算需求。

3. CANN Profiler

重点发现的问题
  • 性能瓶颈定位困难
    • 观察点:在多节点或多卡训练时,注意性能瓶颈的定位是否困难,是否有明显的性能下降点。
    • 注意事项:综合分析AI核利用率、显存使用情况等多个指标,查看性能瓶颈的表现。
  • 数据采集与分析延迟
    • 观察点:监控数据采集和分析是否导致额外的开销,是否影响测试的准确性。
    • 注意事项:注意测试过程中数据采集的频率和延迟对整体测试结果的影响。

4. MindSpore Benchmark

重点发现的问题
  • 分布式训练性能不稳定
    • 观察点:观察分布式训练过程中的性能波动,特别是在不同节点和不同卡上训练时的稳定性。
    • 注意事项:监控训练过程中各节点的负载情况,注意性能的不稳定现象。
  • 环境配置影响
    • 观察点:测试环境中的硬件和软件配置是否影响训练性能,特别是在不同配置下的测试结果。
    • 注意事项:记录和比较不同配置下的测试数据,评估环境对性能的影响。

5. STREAM

重点发现的问题
  • 测试数据量不足
    • 观察点:检查数据集大小是否足够,是否能够充分测试内存带宽。
    • 注意事项:使用大规模数据集进行测试,以确保带宽测试结果的准确性。
  • 系统干扰
    • 观察点:监控系统中是否有其他任务干扰内存带宽测试。
    • 注意事项:确保测试期间系统负载最低,避免其他任务影响测试结果。

6. fio

重点发现的问题
  • 存储设备性能不稳定
    • 观察点:在高负载条件下,监测存储设备性能的波动情况。
    • 注意事项:记录存储设备在不同负载下的表现,特别是在高并发读写操作中的稳定性。
  • 配置参数影响
    • 观察点:检查不同fio配置参数对测试结果的影响,如块大小和IO深度。
    • 注意事项:根据实际应用场景选择合适的参数,观察测试结果的变化。

7. iperf

重点发现的问题
  • 网络带宽测试不准确
    • 观察点:监测网络带宽测试中的实际带宽和理论带宽是否一致。
    • 注意事项:注意网络环境的稳定性,确保测试结果能够准确反映网络性能。
  • 丢包和延迟影响
    • 观察点:在测试过程中观察数据包丢失率和延迟情况。
    • 注意事项:记录网络丢包率和延迟,综合分析网络性能的真实表现。

8. Slurm

重点发现的问题
  • 任务调度延迟
    • 观察点:监测任务调度的延迟时间,是否存在较长的等待时间。
    • 注意事项:记录调度延迟的时间,分析是否影响集群资源的有效利用。
  • 资源利用不均
    • 观察点:观察集群中资源的分配和使用情况,是否存在资源利用不均的问题。
    • 注意事项:监控节点的负载情况,查看是否有资源闲置或过载现象。

http://www.kler.cn/a/311720.html

相关文章:

  • 稀疏视角CBCT重建的几何感知衰减学习|文献速递-基于深度学习的病灶分割与数据超分辨率
  • https网站 请求http图片报错:net::ERR_SSL_PROTOCOL_ERROR
  • 线性表-数组描述补充 迭代器(C++)
  • Vue 3 中,computed 和 watch的区别
  • Python酷库之旅-第三方库Pandas(206)
  • linux rocky 9.4部署和管理docker harbor私有源
  • JavaEE:网络编程(UDP)
  • pg入门3—详解tablespaces2
  • Elasticsearch 8.+ 版本查询方式
  • JVM 内存结构?
  • 卖家必看:利用亚马逊自养号测评精选热门产品,增强店铺权重
  • 运维工程师面试整理-监控与报警监控系统
  • uni-app-通过vue-cli命令行快速上手
  • 数据结构(Day16)
  • 虎先锋,你也喜欢线程控制嘛
  • UAC2.0 麦克风——音量控制
  • etcd之etcd简介和安装(一)
  • 全面整理的Oracel 数据库性能调优方案
  • 关系运算符
  • vue选项式写法项目案例(购物车)
  • 制作网上3D展馆需要什么技术并投入多少费用?
  • JSP分页功能实现案例:从基础到应用的全面解析
  • python SQLAlchemy 数据库连接池
  • 《拿下奇怪的前端报错》序章:报错输出个数值数组Buffer(475) [Uint8Array],我来教它说人话!
  • 【Unity】检测鼠标点击位置是否有2D对象
  • Modbus_tcp