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

举报
RaceSnail 发表于 2025/05/18 11:38:15 2025/05/18
【摘要】 推理环境准备 ais_bench推理工具简介昇腾离线OM模型的推理后端是ACL(Ascend Computing Language),其底层采用C实现,后来在ACL基础上又做了一套Python接口,命名为pyACL,为了方便开发,华为工程师又基于pyacl开发出一款推理工具ais_bench,此工具支持使用命令进行快捷地推理,并测试推理模型的性能(包括吞吐率、时延),同时ais_bench...

推理环境准备

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](https://aisbench.obs.myhuaweicloud.com/packet/ais_bench_infer/0.0.2/aclruntime-0.0.2-cp39-cp39-linux_x86_64.whl)

[aclruntime-0.0.2-cp39-cp39-linux_aarch64.whl](https://aisbench.obs.myhuaweicloud.com/packet/ais_bench_infer/0.0.2/aclruntime-0.0.2-cp39-cp39-linux_aarch64.whl)

[ais_bench-0.0.2-py3-none-any.whl](https://aisbench.obs.myhuaweicloud.com/packet/ais_bench_infer/0.0.2/ais_bench-0.0.2-py3-none-any.whl)

推理工具安装

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

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

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

# 成功安装aclruntime
Successfully 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

推理结果:
01_纯推理场景

调试模式

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

python3 -m ais_bench --model ./inference/om/det.om --output ./output/ --debug 1

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

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

  • 详细的推理耗时信息
    03_推理耗时

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

文件输入场景

示例命令:

python3 -m ais_bench --model ./inference/om/det.om --input ./inference/image.npy

推理结果:
04_文件输入场景

文件夹输入场景

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

python3 -m ais_bench --model ./inference/om/det.om --input ./inference/input/

推理结果:
05_文件夹输入场景

特殊说明:
模型输入需要与传入文件夹的个数一致。
例如,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

推理结果:
06_多Device场景

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

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。