X86 仿真
工具链支持在 X86 仿真环境中的应用开发能力,在不方便使用开发板的情况下,允许您在仿真环境快速完成程序的调试和计算结果的验证。
C++ 推理
使用 UCP 推理接口进行验证代码的开发,支持推理 quantized.bc 模型及 hbm 模型。UCP 仿真库接口与嵌入式接口完全一致,只是采用了不同的编译配置。UCP 推理接口使用示例请参考 模型推理应用开发指导 章节。
命令行工具
使用 X86 版本的 hrt_model_exec 工具进行模型信息查看和单帧推理,支持推理 quantized.bc 模型及 hbm 模型。hrt_model_exec 详细介绍与使用示例请参考 hrt_model_exec工具介绍 章节。
Python 推理
-
使用
horizon_tc_ui包封装的HBRuntime接口,支持推理 quantized.bc 模型及 hbm 模型。推理示例请参考 HBRuntime推理库 章节。 -
使用
hbdk API接口,支持推理 quantized.bc 模型及 hbm 模型。API 详细介绍与使用示例请参考 HBDK Tool API Reference - model inference 章节。
-
X86 仿真环境使用
UCP推理接口或hrt_model_exec工具推理 hbm 模型前,需要设置HB_UCP_SIM_PLATFORM_TYPE环境变量用以指定要模拟的 BPU 架构。环境变量配置说明可参考 UCP环境变量 章节。 -
使用
UCP仿真库推理 quantized.bc 时支持 GPU 加速,配置方法请参考 HBIR模型推理说明 章节。
quantized.bc 仿真加速与结果一致性
工具链支持在 X86 环境中对 hbm 模型进行指令仿真,但仿真效率较低,因此建议优先使用 quantized.bc 模型。 quantized.bc 模型中由 BPU 执行的部分,其 X86 仿真输出与 hbm 模型的板端推理输出保持位级一致。
使用 quantized.bc 模型进行仿真推理时,请注意以下加速能力和性能配置:
-
b30.Conv2d算子支持基于avx512_core_vnni和avx512_core的 CPU 硬件加速。运行时会根据宿主机 CPU 支持的指令集自动选择加速方式。设置DNNL_VERBOSE=1环境变量后,可查看运行时详细信息。 -
可通过
HBTL_THREAD_NUM环境变量设置仿真推理使用的 OMP 线程数,默认值为16。 -
对于 J6B、J6H、J6P 和 S6P 计算平台,当
b30.Conv2d算子输出float16或float32浮点数据时,为保证 X86 仿真结果与 hbm 模型板端推理结果位级一致,仿真速度会有一定程度的下降。
