@okc964593517 你的问题和楼上 S100 的情况类似,核心都是 BPU 利用率下降导致帧数暴跌。从 39 帧掉到 10 几帧、BPU 使用率减半,这通常是系统配置或软件环境问题,而非硬件故障。
核心结论
重装系统后性能下降的常见原因:
- BPU 驱动/固件版本不匹配
- CPU 频率被限制(节能模式)
- 模型量化配置错误
- Python 环境依赖缺失或版本不对
快速排查步骤
检查 BPU 驱动和固件状态
# 查看 BPU 驱动版本
hb_tool --version
# 查看 BPU 设备状态
cat /sys/class/hb_bpu/device/status
# 查看 BPU 频率是否正常
cat /sys/class/hb_bpu/device/frequency
# 检查是否有 BPU 错误日志
dmesg | grep -i bpu | tail -20
正常情况:BPU 频率应该在满频状态(X5 约 1GHz+),无 error 日志。
检查 CPU 频率和功耗模式
# 查看 CPU 频率
cat /proc/cpuinfo | grep "cpu MHz"
# 查看 CPU 调度策略
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
# 如果是 powersave,改为 performance
sudo bash -c "echo performance > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor"
# 验证是否生效
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
关键:重装系统后可能默认是 powersave 模式,会严重限制性能。
验证模型和推理库版本
# 查看当前安装的 BPU 推理库版本
pip show bpu_infer_lib_x5
# 或者检查系统包
dpkg -l | grep horizon
# 查看模型文件信息
file /path/to/your/model.bin
对比:和你之前 39 帧时的版本对比,看是否有差异。
检查 Python 环境和依赖
# 查看 Python 版本
python3 --version
# 查看 OpenCV 版本
python3 -c "import cv2; print(cv2.__version__)"
# 查看 numpy 版本
python3 -c "import numpy; print(numpy.__version__)"
# 重新安装关键依赖(如果需要)
pip3 install --upgrade opencv-python numpy
使用官方 benchmark 工具测试
# 使用 hrt_model_exec 测试纯推理性能(不含摄像头读取)
hrt_model_exec perf --model_path /path/to/your/model.bin --thread_num 8
# 或者使用官方 benchmark 脚本
cd /mnt/ssd/rdk_model_zoo_s/samples/Vision/ultralytics_yolo26/
bash 03_benchmark.sh
对比数据:如果 benchmark 结果正常(~40 FPS),说明是摄像头读取或数据预处理的问题;如果 benchmark 也低,说明是BPU 或系统配置问题。
针对性解决方案
方案 A:恢复 CPU 性能模式(最常见)
# 创建开机自启脚本
sudo bash -c "cat > /etc/rc.local << 'EOF'
#!/bin/bash
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
exit 0
EOF"
sudo chmod +x /etc/rc.local
方案 B:重新安装 BPU 驱动和工具链
# 卸载旧版本
pip3 uninstall bpu_infer_lib_x5
# 清理缓存
pip3 cache purge
# 重新安装(使用官方源)
pip3 install bpu_infer_lib_x5 -i http://sdk.d-robotics.cc:8080/simple/ --trusted-host sdk.d-robotics.cc
# 或者使用 apt 安装系统包
sudo apt update
sudo apt install --reinstall horizon-bpu-tools
方案 C:检查模型量化配置
如果你是自己量化的模型,检查:
- 校准数据集是否和之前一致
- 量化参数(如输入尺寸、格式)是否正确
- ONNX 模型是否和之前版本一致
# 使用官方工具检查模型信息
hb_mapper checker --model /path/to/your/model.bin
社区相关案例
| 案例 | 问题 | 解决方案 |
|---|---|---|
| X5 BPU 负载测试 | BPU 利用率仅 11-12% | 检查数据预处理瓶颈 |
| 我训练的模型无法正确百分比使用 bpu | BPU 占用低 | 移除 CPU 算子,优化模型结构 |
| X3 与 X5 性能测试的疑问 | 性能不达标 | CPU 频率限制问题 |
请提供以下信息方便进一步诊断
# 执行后把输出贴出来
hb_tool --version
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
pip3 show bpu_infer_lib_x5 | grep Version
hrt_model_exec perf --model_path /path/to/your/model.bin --thread_num 8 | grep FPS
如果以上都正常,建议:
- 对比重装系统前后的
/etc/version版本号 - 检查是否有其他后台进程占用资源(
htop) - 尝试使用官方提供的预训练模型测试,排除模型问题
大多数情况下,CPU 节能模式是罪魁祸首,优先检查这个!