飞桨 x 昇腾生态适配方案:11_ 静态 OM 推理
推理环境准备
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
推理工具安装
执行如下命令,进行安装:
分别提示如下信息则表示安装成功:
设置环境变量
静态 OM 推理
纯推理场景
该场景主要用于模型性能测试。默认情况下,构造全为 0 的数据送入模型推理。示例命令:
推理结果:

调试模式
开启 debug 调试模式。示例命令:
调试模式开启后会增加更多的打印信息,包括:
模型的输入输出参数信息

详细的推理耗时信息

模型输入输出等具体操作信息
文件输入场景
示例命令:
推理结果:

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

特殊说明:模型输入需要与传入文件夹的个数一致。例如,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"的输入
多 Device 场景
多 Device 场景下,可以同时指定多个 Device 进行推理测试。示例命令:
推理结果:

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