版权声明

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

在任何情况下,燧原不对因使用或未使用本文档而导致的任何损害(包括但不限于利润损失、业务中断和信息损失等损害)承担任何责任。除非另行书面同意,燧原不对本文档承担任何责任,不论该责任因任何原因而产生或基于任何侵权理论。

本文档所列的规格参数、性能数据和等级基于特定芯片或计算机系统或组件测试所得。经该等测试,本文档所示结果反映了燧原产品在上述测试环境中的性能表现。测试系统配置及软硬件版本、环境变量等的任何变化都会影响产品或服务的实际性能,如产品或服务的实际效果与本文档描述存在差异的,均属正常现象。燧原不担保测试本文档中每种产品或服务的所有参数的准确性和稳定性。您自行承担对本文档中产品或服务是否适合并适用于您计划的应用进行评估以及进行必要测试的责任。您的使用环境、系统配置、产品设计等特性可能会影响燧原产品或服务的质量和可靠性并导致超出本文档范围的额外或不同的情况和/或要求,燧原对此不做任何担保或承担任何责任。

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

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

本文档可能保留有与第三方网站或网址的链接,访问这些链接将由您自己作出决定,燧原并不保证这些链接上所提供的任何信息、数据、观点、图片、陈述或建议的准确性、完整性、充分性和可靠性。燧原提供这些链接仅仅在于提供方便,并不表示燧原对这些信息的认可和推荐,也不是用于宣传或广告目的。

您同意在使用本文档及其内容时,遵守国家法律法规、社会公共道德。您不得利用本文档及其内容从事制作、查阅、复制和传播任何违法、侵犯他人权益等扰乱社会秩序、破坏社会稳定的行为,亦不得利用本文档及其内容从事任何危害或试图危害计算机系统及网络安全的活动。

您同意,与您访问或使用本文档相关的所有事项,应根据中华人民共和国法律解释、理解和管辖。您同意,中国上海市有管辖权的法院具有相关的管辖权。

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

前言

版本信息

日期 版本 作者 新增功能
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不准确

使用方法

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