版权声明

本文档提供的信息属于上海燧原科技有限公司和/或其子公司(以下统称“燧原”)所有,且燧原保留不经通知随时对本文档信息或对任何产品和服务做出修改的权利。本文档所含信息和本文档所引用燧原其他信息均“按原样”提供。燧原不担保信息、文本、图案、链接或本文档内所含其他项目的准确性或完整性。燧原不对本文档所述产品的可销售性、所有权、不侵犯知识产权、准确性、完整性、稳定性或特定用途适用性做任何暗示担保、保证。燧原可不经通知随时对本文档或本文档所述产品做出更改,但不承诺更新本文档。

在任何情况下,燧原不对因使用或无法使用本文档而导致的任何损害(包括但不限于利润损失、业务中断和信息损失等损害)承担责任。燧原不承担因应用或使用本文档所述任何产品或服务而产生的任何责任。

本文档所列的规格参数、性能数据和等级需使用特定芯片或计算机系统或组件来测量。经该等测试,本文档所示结果反映了燧原产品的大概性能。系统配置及软硬件版本、环境变量等的任何不同会影响实际性能,产品实际效果与文档描述存在差异的,均属正常现象。燧原不担保测试每种产品的所有参数。客户自行承担对产品适合并适用于客户计划的应用以及对应用程序进行必要测试的责任。客户产品设计的脆弱性会影响燧原产品的质量和可靠性并导致超出本文档范围的额外或不同的情况和/或要求。

燧原和燧原的标志是上海燧原科技有限公司申请和/或注册的商标。本文档并未明示或暗示地授予客户任何专利、版权、商标、集成电路布图设计、商业秘密或任何其他燧原知识产权的权利或许可。

本文档为版权所有并受全世界版权法律和条约条款的保护。未经燧原的事先书面许可,任何人不可以任何方式复制、修改、出版、上传、发布、传输或分发本文档。为免疑义,除了允许客户按照本文档要求使用文档相关信息外,燧原不授予其他任何明示或暗示的权利或许可。

燧原对本文档享有最终解释权。

前言

版本信息

日期 版本 作者 新增功能
20230209 v1.0 Enflame

原理介绍

这是Loadgen测试框架使用说明和Loadgen在TopsInference上的测试说明。

测试框架和示例代码均由Mlcommons官方代码修改而来。 除了一些必要的调整,我们整体上沿用Loadgen的原始逻辑。

Loadgen是Mlcommons推理测试使用的一个负载生成器,它加载SUT(被测系统)并测试它的性能。 支持Offline、Server、SingleStream、MultiStream四种测试场景,根据预定义的场景生成请求的流量。

安装使用说明

为了使用Loadgen测试在不同模型、场景上的性能或精度,请按步骤执行操作。

需要提前安装好Topsinference的whl。

安装loadgen(whl for python3):

pip3 install --force-reinstall mlperf_loadgen-1.1-<python version>-linux_x86_64.whl

安装每个场景子目录中的其他依赖包:

cd <path/to/scenario/subfolder>
pip3 install -r requirements.txt

注:以下示例中使用topsinference backend的命令是GCU测试使用,onnxruntime backend的命令是为CPU测试使用。 如果你需要测试cpu,请安装原版onnxruntime而非onnxruntime-gcu。

用户使用说明

准备数据集和预训练模型

您可以根据下面文件中的步骤准备需要的数据集 topsmodels/inference/onnx/common/prepare_dataset/<dataset>/README.md

预训练的ONNX模型可以在topsmodels中找到。

存放数据集和模型的文件夹结构在每个场景和模型中有一定区别,具体使用方法请参考各模型使用示例。

配置与模式

  • user.conf中已经设置好了默认的基础配置。用户可以根据需要手动修改”min_duration”和”min_query_count”来控制每个场景或模型下程序整体的执行时间。更多设置可以参考mlperf.conf

  • 性能模式:默认,获得框架下测得的最佳性能。测试时间包括后处理时间。qps(每秒推理样本数)会被记录在控制台

  • 精度模式:使用--accuracy开启,获得模型测试的精度,此模式下,显示的qps和fps不准确

使用方法

各场景测试的使用方法有所区别,请参考各模型使用示例。