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

本方案是企业内训课程《华为昇腾智算中心深度技术研修》的一部分授课课件的样例。方案内容中详细阐述了华为昇腾环境下智算中心的测试方案和标准,以确保硬件和软件系统在实际部署和运行中的高效性和稳定性。主要内容包括集群硬件清单、节点拓扑配置以及环境配置。硬件部分涵盖了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.xdnf.cn/news/144059.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL数据库迁移与备份实录

这里写目录标题 事情起因的概述查看磁盘空间使用情况为了进一步的明确宕机原因&#xff0c;查看MySQL日志信息进一步排查 如何针对磁盘空间不足进行挂载区域的修改以及数据的迁移与备份分析与梳理如何修改MySQL数据卷的挂载位置停止MySQL服务备份 MySQL 配置文件迁移 MySQL 数据…

info 命令:查看命令手册

一、命令简介 在 Linux 系统中&#xff0c;可以使用 man​ 查看普通的帮助手册。还可以使用 info​ 命令阅读 Info 格式的文档。 ​info​ 文档的特点&#xff1a;大量使用超链接&#xff0c;通过方向键将光标移动到链接的文字&#xff0c;按下回车键&#xff0c;就可以切换到…

新发布的OpenAI o1生成式AI模型在强化学习方面迈出了重要的一步

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

ROS第五梯:ROS+VSCode+C++单步调试

解决问题&#xff1a;在ROS项目中进行断点调试。 第一步&#xff1a;创建一个ROS项目或者打开一个现有的ROS项目。 第二步&#xff1a;修改c_cpp_properties.json 增加一段命令: "compileCommands": "${workspaceFolder}/build/compile_commands.json"第三…

[Python]案例驱动最佳入门:Python数据可视化在气候研究中的应用

在全球气候问题日益受到关注的今天&#xff0c;气温变化成为了科学家、政府、公众讨论的热门话题。然而&#xff0c;全球气温究竟是如何变化的&#xff1f;我们能通过数据洞察到哪些趋势&#xff1f;本文将通过真实模拟的气温数据&#xff0c;结合Python数据分析和可视化技术&a…

【诉讼流程-健身房-违约-私教课-诉讼书提交流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(3)】

【诉讼流程-健身房-违约-私教课-诉讼书提交流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解&#xff08;3&#xff09;】 1、前言说明2、流程说明3、现场提交&#xff08;线下&#xff09;4、网上提交1-起诉书样例2-起诉书编写&#xff08;1&#xff09;原告信息&#xff1a;&…

如何将MySQL卸载干净(win11)

相信点进来的你肯定是遇到了这个问题&#xff0c;那就是在安装MySQL的时候操作错误&#xff0c;最后结果不是自己想要的。卸载重新安装又发现安装不了。其实最主要的原因就是没有将MySQL卸载干净&#xff0c;那么如何把MySQL卸载干净&#xff1f;下面本篇文章就来给大家一步步介…

sensitive-word 敏感词 v0.20.0 数字全部匹配,而不是部分匹配

敏感词系列 sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word-admin v1.3.0 发布 如何支持分布式部署&#xff1f; 01-开源敏感词工具入门使用 02-如何实现一个敏感词工具&#xff1f;违禁词实现思路梳理 03-敏感词之 StopWord 停止词优化与特殊符号 04-…

Matlab进行频率切片小波变换

Matlab进行频率切片小波变换(FSWT)源代码&#xff0c;将一维信号生成时频图。 输入信号可以是任何一维信号&#xff0c;心电信号、脑电信号、地震波形、电流电压数据等。 相比连续小波变换(CWT)&#xff0c;频率切片小波变换(Frequency Slice Wavelet Transform,FSWT)是一种更具…

计算机毕业设计hadoop+spark知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习

《HadoopSpark知网文献论文推荐系统》开题报告 一、研究背景及意义 随着互联网技术的迅猛发展和大数据时代的到来&#xff0c;学术文献的数量呈爆炸式增长&#xff0c;用户面临着严重的信息过载问题。如何高效地从海量文献中筛选出用户感兴趣的论文&#xff0c;成为当前学术界…

涛思数据库安装和卸载

安装 cd opt/taos/TDengine-server-2.4.0.5 sudo ./install.sh 启动taos​ 安装后&#xff0c;请使用 systemctl 命令来启动 TDengine 的服务进程 systemctl start taosd检查服务是否正常工作&#xff1a; systemctl status taosd 升级 3.0 版在之前版本的基础上&#x…

Parasoft助力Joby Aviation符合DO-178B标准

Joby Aviation&#xff0c;这家成立于2009年的美国高科技企业&#xff0c;以其对电动垂直起降&#xff08;eVTOL&#xff09;技术的深刻洞察与不懈追求&#xff0c;正引领着全球空中出行领域的革新。作为该领域的先驱者&#xff0c;Joby Aviation专注于研发并商业化运营其革命性…

蓝桥杯嵌入式客观题合集

十四届模拟赛二客观题 解析&#xff1a;STM32微控制器的I/O端口寄存器必须按32位字被访问 解析&#xff1a;微分电路能将三角波转换为方波&#xff1b;积分电路能将方波转换为三角波 解析&#xff1a;放大电路的本质是能量的控制与转换 解析&#xff1a;具有n个节点&#xff0c…

Ansible——Playbook基本功能???

文章目录 一、Ansible Playbook介绍1、Playbook的简单组成1&#xff09;“play”2&#xff09;“task”3&#xff09;“playbook” 2、Playbook与ad-hoc简单对比区别联系 3、YAML文件语法&#xff1a;---以及多个---&#xff1f;&#xff1f;使用 include 指令 1. 基本结构2. 数…

Java入门:09.Java中三大特性(封装、继承、多态)02

2 继承 需要两个类才能实现继承的效果。 比如&#xff1a;类A 继承 类B A类 称为 子类 &#xff0c; 衍生类&#xff0c;派生类 B类 称为 父类&#xff0c;基类&#xff0c;超类 继承的作用 子类自动的拥有父类的所有属性和方法 &#xff08;父类编写&#xff0c;子类不需要…

IDEA开发HelloWorld程序

IDEA管理Java程序的结构 project&#xff08;项目、工程&#xff09;---project中可以创建多个modulemodule&#xff08;模块&#xff09;---module中可以创建多个packagepackage&#xff08;包&#xff09;---package中可以创建多个classclass&#xff08;类&#xff09;---c…

光控资本:股市黑色星期一是什么意思?黑色星期五什么意思?

股市黑色星期一是指股市大跌经常出现在星期一的现象。 最著名的黑色星期一便是1987年10月19日&#xff08;星期一&#xff09;产生的全球股市暴降工作&#xff0c;当日全球股市在纽约道琼斯公司工业均匀指数带头暴降下全面下泻&#xff0c; 引发金融商场惊惧&#xff0c; 以及…

python 爬虫 selenium 笔记

todo 阅读并熟悉 Xpath, 这个与 Selenium 密切相关、 selenium selenium 加入无图模式&#xff0c;速度快很多。 from selenium import webdriver from selenium.webdriver.chrome.options import Options# selenium 无图模式&#xff0c;速度快很多。 option Options() o…

2024 go-zero社交项目实战

背景 一位商业大亨&#xff0c;他非常看好国内的社交产品赛道&#xff0c;想要造一款属于的社交产品&#xff0c;于是他找到了负责软件研发的小明。 小明跟张三一拍即合&#xff0c;小明决定跟张三大干一番。 社交产品MVP版本需求 MVP指&#xff1a;Minimum Viable Product&…

【C语言二级考试】循环结构设计

C语言二级考试——循环结构程序设计 五.循环结构程序设计 1.for循环结构 2.while和do-while循环结构 3.continue语句和break语句 4.循环的嵌套 知识点参考【C语言】循环-CSDN博客 文章目录 1.for循环2.while和do-while循环结构3.continue语句和break语句4.循环的嵌套 1.for循环…