专栏算法工具链工具链链使用:hbir仿真加速使用与测试

工具链链使用:hbir仿真加速使用与测试

Huanghui2026-03-12
10
0

在地平线 J6 平台,当前模型在转换&编译过程中,会生成 quantized.bc 和 hbm 两种定点模型,其中:

  • hbm 用于板端部署,在 x86 端的指令仿真推理速度比较慢

  • quantized.bc 主要用于 x86 端的仿真,其数值输出在无 CPU 算子的前提下理论和 hbm 保持 bit 一致

为在服务器端加速量化模型的精度初测,本文分享了测试过程依赖、脚本、实施流程和参考测试结果,供小伙伴们参考~

如何使用GPU运行hbir

  1. 安装 libdnn(Docker默认不安装):whl 包位于 OE 包 package/host/ai_toolchain 路径下
  2. 修改 session 的执行后端

如何使用CPU运行hbir

当前 hbir 默认 CPU 运行(对应session后端为ONEDNN),其中,每个算子默认使用 16 线程进行加速,也支持通过环境变量进行修改(通常用于限制CPU资源来控制成本):

用户还可以通过多进程的策略进一步提升仿真效率

测试数据获取和测试

测试脚本准备

模型下载

验证对比

download_model.sh

fetch_model_list.sh

resolve_ai_benchmark_qat.sh

batch_diff.sh

infer_script.py

测试过程:

  1. 下载BC文件(记得修改脚本中的版本信息)

    1.   fetch_model_list.sh -> download_models.sh

  2. 下载hbm文件

    1.   resolve_ai_benchmark_qat.sh

  3. 执行性能测试(修改脚本batch_diff.sh中的模型目录,然后执行,其中会自动调用infer_script.py)

    1.   ./batch_diff.sh

func.session.backend设置项可以是:

  • "":禁用加速,普通的CPU计算。

  • "HBDNN":使用GPU加速

  • "oneDNN":使用CPU的avx512指令集等加速

oneDNN使用cpu的avx512指令集,针对CPU推理过程进行了优化加速,如果CPU支持avx512指令集,应该会有较好的加速效果的。

检查CPU是否支持avx512指令集的方法:执行grep avx512 /proc/cpuinfo如果输出结果中包含avx512说明CPU支持avx512指令集;

注意事项

因版本差异,该测试流程和数据在J6_V3.0.31版本测试,测试结果仅供参考。v3.2.0和v3.2.5版本因策略调整,暂不提供加速功能; V3.7.0加速功能正常使用,用户可以自己测试性能。
算法工具链
官方教程征程6
评论0
0/1000