当前使用S100P,BPU可以同时跑两个大模型吗?比例同时运行2个yolo2或者一个yolo2,一个resnet18模型

关于 VideoMAEv2 适配与 BPU 利用率为 0 的问题

结论

VideoMAEv2 目前官方 Model Zoo 未提供 S100P 的预编译 HBM 模型,需要自行转换。BPU 利用率为 0 说明模型实际在 CPU 上运行,未成功调用 BPU 加速。


BPU 利用率为 0 的核心原因

可能原因 概率 排查方法
模型未正确转换为 HBM 格式 检查是否有 .hbm 文件
算子不支持 BPU,回退 CPU 查看 hb_compile 日志中的算子分布
量化参数错误(如 FP16) S100P BPU 仅支持 INT8
推理调用方式错误 检查是否使用 hrt_model_exec 或正确 API
输入数据格式不匹配 检查 NV12/NHWC 格式

排查步骤

:one: 确认模型转换状态

# 检查是否有 HBM 文件
ls -lh *.hbm

# 查看编译日志中的算子分布
hb_compile --config your_config.yaml 2>&1 | grep -E "BPU|CPU"

关键点:如果日志显示大部分算子在 CPU 上运行,说明模型未成功映射到 BPU。

:two: 检查量化配置

# 正确的 S100P 量化配置示例
quantization:
  data_type: "int8"  # ⚠️ 不能用 float16
  calibration_method: "minmax"

:warning: 注意:从社区案例看,S100P 设置 float16 会导致所有算子回退到 CPU(参考 S100/S100P ONNX 算子 BPU 约束)。

:three: 验证推理调用

# 正确的板端推理命令
hrt_model_exec --model your_model.hbm --input input.nv12

# 同时监控 BPU 状态(新开一个终端)
hrut_somstatus  # 观察 ratio 是否变化

:four: 检查 VideoMAEv2 特殊算子

VideoMAEv2 包含大量 Transformer/Attention 算子,需确认:

  • MultiHeadAttention 是否支持 BPU
  • LayerNormGELU 等激活函数是否有 BPU 实现
  • 时序建模部分(3D 卷积/Temporal Attention)是否兼容

参考社区讨论:关于征程 S100 BPU 对 Transformer 算子支持的需求


VideoMAEv2 适配建议

方案 A:使用官方 LLM 工具链(推荐)

VideoMAEv2 属于视频理解模型,可参考 VLM 部署方案:

  1. 参考 SmolVLM 部署案例
  2. 将 VideoMAEv2 的视觉编码器部分单独转换为 HBM
  3. 时序处理部分可能需要 CPU 辅助

方案 B:算子级优化

# 伪代码:分离 BPU/CPU 计算
def inference(video_frame):
    # BPU 部分:空间特征提取
    features = bpu_model.run(frame)  # ViT backbone
    
    # CPU 部分:时序建模(如不支持 BPU)
    temporal_features = cpu_temporal_model(features)
    
    return classification_result

方案 C:简化模型

  • 使用 VideoMAEv2 的 Base/Small 版本而非 Large
  • 降低输入分辨率(如 224x224 而非 448x448)
  • 移除不必要的后处理算子

快速验证脚本

#!/bin/bash
# 检查 BPU 是否真正被调用

echo "=== 1. 检查 HBM 文件 ==="
ls -lh *.hbm

echo "=== 2. 查看模型元信息 ==="
hrt_model_info --model your_model.hbm

echo "=== 3. 启动推理(后台) ==="
hrt_model_exec --model your_model.hbm --loop 100 &
PID=$!

echo "=== 4. 监控 BPU 状态(5 秒) ==="
for i in {1..5}; do
    hrut_somstatus | grep -E "BPU|ratio"
    sleep 1
done

kill $PID

下一步行动

  1. 提供你的转换日志:将 hb_compile 的完整输出发到帖子中,我可以帮你分析哪些算子未映射到 BPU
  2. 确认模型来源:你是直接从 HuggingFace 转换,还是已有 ONNX 中间格式?
  3. 测试官方模型:先跑通 Model Zoo 中的 YOLO 模型,确认 BPU 调用链路正常

建议:VideoMAEv2 的 Transformer 架构在 S100P 上可能遇到算子支持问题,可以考虑先用 InternVLSmolVLM 等已有适配案例的模型验证流程,再迁移到 VideoMAEv2。

需要我帮你查找 VideoMAEv2 的具体转换配置示例吗?