在kunpeng 920 下的Altas 300I DUO 96G 推理卡测试

测试硬件配置

TW  G 6 2 0 X 4     平台硬件配置参见下表:

部件

配置

数量

服务器

双路鲲鹏92048核2.6GHz准系统(2*2000W电源)

2

     

Memory

32G DDR4 RDIMM 内存

8

硬盘

960G企业级 SATA SSD

2

NPU

Atlas 300I DUO 96G显存推理卡

2

     
     
     

系统版本信息

Kylin-Server-V10-SP3-2403-Release-20240426-arm64.iso

固定内核版本

输入unmae -sr查看内核版本

然后输入apt-mark hold 5.4.0-26-generic

image

驱动下载安装

显卡驱动安装参照文档

打开这个昇腾社区版驱动下载下载对应的驱动

image

然后把驱动和固件发到/opt/

创建用户

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

安装依赖

yum  install -y dkms make gcc net-tools
yum install -y kernel-headers-$(uname -r) kernel-devel-$(uname -r) --best --allowerasing

安装驱动

chmod +x (驱动文件名)   ./(驱动文件名) –check         ./(驱动文件名) –full                             (会很加载很慢)

然后重启后输入npu-smi info 查看信息

image

安装固件

chmod +x (固件名) ./(固件) –check  ./(固件) –full                              

根据提示reboot重启

升级BMC和BIOS

image

选择高版本的BMC和BIOS文件(高版本的BMC和BIOS文件已传到大磁盘下的E:\驱动程序\鲲鹏白盘bios版本)

然后点击开始升级,等待升级完成。

不知道npu什么型号可以输入:

lspci -n -D | grep -o '19e5:d[0-9a-f]\{3\}' | head -n1 | cut -d: -f2

看返回结果是多少然后输入到下面图片所示的网站所示空白之中

 

image

 

压力测试

访问ToolBox工具——性能测试

按照文档下载相对应的软件包

image

将安装包上传到服务器授权并安装

chmod u+x Ascend-mindx-toolbox_7.3.0_linux-aarch64.run

./Ascend-mindx-toolbox_7.3.0_linux-aarch64.run –check

./Ascend-mindx-toolbox_7.3.0_linux-aarch64.run –install

image

配置环境变量生效

source /usr/local/Ascend/toolbox/set_env.sh

执行压测

ascend-dmi -p --dur 1800 --it 5 --pm refresh

image

压测脚本

reboot重启压测脚本,文件命名设置为vim stress_npu.sh

#!/bin/bash

# --- 全局路径配置 ---
CONFIG_FILE="/root/npu_test_config.conf"
COUNT_FILE="/root/npu_test_counter.txt"
LOG_FILE="/var/log/npu_reboot_test.log"
DUMP_DIR="/root/npu_fault_dump"

# --- 深度日志抓取函数 ---
collect_fault_data() {
    local count=$1
    local reason=$2
    local timestamp=$(date +%Y%m%d_%H%M%S)
    local save_path="${DUMP_DIR}/reboot_${count}_${timestamp}"
    
    mkdir -p "$save_path"
    echo "[$(date)] 正在收集故障现场: $reason -> $save_path" >> "$LOG_FILE"
    
    # 抓取关键日志
    dmesg | tail -n 1000 > "$save_path/dmesg_kernel.log"
    lspci -d 19e5:d802 -vvv > "$save_path/pcie_detail.log"
    npu-smi info > "$save_path/npu_smi_full.txt" 2>&1
    [ -d /var/log/ascend_seclog ] && cp -r /var/log/ascend_seclog "$save_path/"
    
    echo "--- 现场抓取完成 ---" >> "$LOG_FILE"
}

# --- 模式判定:手动交互 vs 开机自动 ---
if [ -t 0 ] && [ "$1" != "--auto" ]; then
    # ================= 交互模式 =================
    echo "=========================================="
    echo "      昇腾 NPU 稳定性重启压测工具"
    echo "=========================================="
    read -p "请输入计划重启测试次数 (0-10000, 默认 30): " USER_INPUT
    MAX_COUNT=${USER_INPUT:-30}

    # 输入校验
    if ! [[ "$MAX_COUNT" =~ ^[0-9]+$ ]] || [ "$MAX_COUNT" -gt 10000 ]; then
        echo "错误:请输入 0 到 10000 之间的数字。"
        exit 1
    fi

    # 写入配置文件
    echo "MAX=$MAX_COUNT" > "$CONFIG_FILE"
    echo 0 > "$COUNT_FILE"

    # 配置开机自启
    chmod +x "$0"
    if ! grep -q "$(realpath $0)" /etc/rc.d/rc.local; then
        echo "正在配置开机自启 (rc.local)..."
        echo "/bin/bash $(realpath $0) --auto &" >> /etc/rc.d/rc.local
        chmod +x /etc/rc.d/rc.local
    fi

    echo "设置完成!计划重启 $MAX_COUNT 次。"
    echo "第一次检测将在 5 秒后开始..."
    sleep 5
else
    # ================= 自动模式 =================
    # 检查配置文件,不存在则说明未初始化,直接退出
    [ ! -f "$CONFIG_FILE" ] && exit 0
fi

# --- 核心检测与重启逻辑 ---
source "$CONFIG_FILE"
CURRENT_COUNT=$(cat "$COUNT_FILE" 2>/dev/null || echo 0)

echo "[$(date)] --- 第 $CURRENT_COUNT 次启动检测开始 (上限: $MAX) ---" >> "$LOG_FILE"

# 1. 启动延迟:等待驱动与 BMC 通信完成
sleep 60

# 2. 多维度健康检查
LINK_STATUS=$(lspci -d 19e5:d802 -vvv 2>/dev/null | grep "LnkSta:")
NPU_INFO=$(timeout 15s npu-smi info 2>&1)
NPU_RET=$?

IS_FAULT=false
FAULT_REASON=""

if [[ "$LINK_STATUS" == *"downgraded"* ]] || [[ -z "$LINK_STATUS" ]]; then
    IS_FAULT=true
    FAULT_REASON="PCIe_Link_Degraded"
elif [ $NPU_RET -ne 0 ] || [[ "$NPU_INFO" == *"WARNING"* ]]; then
    IS_FAULT=true
    FAULT_REASON="Driver_SMI_Error"
fi

# 3. 结果处理
if [ "$IS_FAULT" = true ]; then
    echo "[$(date)] 判定:异常 ($FAULT_REASON)" >> "$LOG_FILE"
    collect_fault_data "$CURRENT_COUNT" "$FAULT_REASON"

    if [ "$CURRENT_COUNT" -lt "$MAX" ]; then
        echo $((CURRENT_COUNT + 1)) > "$COUNT_FILE"
        echo "[$(date)] 准备执行自动重启..." >> "$LOG_FILE"
        sync
        reboot
    else
        echo "[$(date)] 已达到预设次数 $MAX,停止测试。请检查 $DUMP_DIR" >> "$LOG_FILE"
        # 任务完成后建议手动删除计数文件
    fi
else
    echo "[$(date)] 判定:正常。昇腾卡已就绪。" >> "$LOG_FILE"
    # 如果正常,建议清零计数,以免下次手动运行干扰
    echo 0 > "$COUNT_FILE"
fi

stress_npu.sh脚本可以放在/opt/或者/soft/下

chmod +x stress_npu.sh
./stress_npu.sh
© 版权声明
THE END
喜欢就支持一下吧
点赞30 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容