写点什么

飞桨 x 昇腾生态适配方案:11_ 静态 OM 推理

作者:小顺637
  • 2025-05-12
    北京
  • 本文字数:1382 字

    阅读完需:约 5 分钟

推理环境准备

ais_bench 推理工具简介

昇腾离线 OM 模型的推理后端是 ACL(Ascend Computing Language),其底层采用 C 实现,后来在 ACL 基础上又做了一套 Python 接口,命名为 pyACL,为了方便开发,华为工程师又基于 pyacl 开发出一款推理工具 ais_bench,此工具支持使用命令进行快捷地推理,并测试推理模型的性能(包括吞吐率、时延),同时 ais_bench 工具也对外开放推理相关的 API。

推理工具下载

下载 aclruntime 和 ais_bench 推理程序的 whl 包,aclruntime 包请根据当前环境选择适配版本:


aclruntime-0.0.2-cp39-cp39-linux_x86_64.whl


aclruntime-0.0.2-cp39-cp39-linux_aarch64.whl


ais_bench-0.0.2-py3-none-any.whl

推理工具安装

执行如下命令,进行安装:


# 安装aclruntimepip3 install aclruntime-0.0.2-cp39-cp39-linux_aarch64.whl# 安装ais_bench推理程序pip3 install ais_bench-0.0.2-py3-none-any.whl
复制代码


分别提示如下信息则表示安装成功:


# 成功安装aclruntimeSuccessfully installed aclruntime-{version}# 成功安装ais_bench推理程序Successfully installed ais_bench-{version}
复制代码

设置环境变量

source /usr/local/Ascend/ascend-toolkit/set_env.sh
复制代码

静态 OM 推理

纯推理场景

该场景主要用于模型性能测试。默认情况下,构造全为 0 的数据送入模型推理。示例命令:


python3 -m ais_bench --model ./inference/om/det.om --output ./output/ --outfmt BIN --loop 5
复制代码


推理结果:



调试模式

开启 debug 调试模式。示例命令:


python3 -m ais_bench --model ./inference/om/det.om --output ./output/ --debug 1
复制代码


调试模式开启后会增加更多的打印信息,包括:


  • 模型的输入输出参数信息


  • 详细的推理耗时信息


    • 模型输入输出等具体操作信息

    文件输入场景

    示例命令:


    python3 -m ais_bench --model ./inference/om/det.om --input ./inference/image.npy
    复制代码


    推理结果:



    文件夹输入场景

    使用--input 参数指定模型输入文件所在目录,多个目录之间通过“,”进行分隔。本场景会根据文件输入 size 和模型实际输入 size 进行组 Batch。示例命令:


    python3 -m ais_bench --model ./inference/om/det.om --input ./inference/input/
    复制代码


    推理结果:



    特殊说明:模型输入需要与传入文件夹的个数一致。例如,bert 模型有三个输入,则必须传入 3 个文件夹,且三个文件夹分别对应模型的三个输入,顺序要对应。 模型输入参数的信息可以通过开启调试模式查看,bert 模型的三个输入依次为 input_ids、 input_mask、 segment_ids,所以依次传入三个文件夹:


    • 第一个文件夹“./data/SQuAD1.1/input_ids",对应模型第一个参数"input_ids"的输入

    • 第二个文件夹"./data/SQuAD1.1/input_mask",对应模型第二个参数"input_mask"的输入

    • 第三个文件夹"./data/SQuAD1.1/segment_ids",对应模型第三个参数"segment_ids"的输入


    python3 -m ais_bench --model ./save/model/BERT_Base_SQuAD_BatchSize_1.om --input ./data/SQuAD1.1/input_ids,./data/SQuAD1.1/input_mask,./data/SQuAD1.1/segment_ids
    复制代码

    多 Device 场景

    多 Device 场景下,可以同时指定多个 Device 进行推理测试。示例命令:


    python3 -m ais_bench --model ./inference/om/det.om --input ./inference/input/ --device 1,2
    复制代码


    推理结果:



    输出结果依次展示每个 Device 的推理测试结果,其中结果最后展示包括 throughput(吞吐率)、start_time(测试启动时间)、end_time(测试结束时间)以及 summary throughput(吞吐率汇总)。


    用户头像

    小顺637

    关注

    还未添加个人签名 2023-01-19 加入

    还未添加个人简介

    评论

    发布
    暂无评论
    飞桨x昇腾生态适配方案:11_静态OM推理_飞桨_小顺637_InfoQ写作社区