01 文章背景介绍
在实车测试时,除了感知算法外,往往还会有别的 APP 在同时运行,从而挤压算法的资源占用,影响模型性能,降低部署效果。因此在项目早期做板端验证的时候,我们就可以使用一些工具对 CPU 和内存进行加压,再运行模型,以模拟实车测试的情况,得到模型在硬件资源受限时的性能数据,做到心中有数,及时调整优化,避免到了项目后期还要为节约性能开销而裁剪模型,得不偿失。
本文的重点在于向广大开发者介绍 stress-ng 工具,并探究该工具是否能明显影响模型的性能表现,以方便开发者在非实车环境下能做好性能验证工作。关于模型或工程的性能调优,可参考社区其他精品贴。因作者水平有限,文章如有错漏之处,欢迎指出并共同交流。
02 开发板加压工具介绍
2.1 stress-ng 简介
Stress-ng 可以在 linux 上产生系统负载,可加压 CPU、内存、磁盘 IO 等,且有多种加压策略,比如浮点运算、整数运算、矩阵运算、压缩、解压缩等,可以用来测试系统在高负载的状况下的稳定性。
Stress-ng 工具的 github 开源地址为:https://github.com/ColinIanKing/stress-ng
2.2 stress-ng 编译说明
-
首先进入 stress-ng 的 github 页面,下载源码到我们的 x86 服务器上
-
接下来进行源码编译。由于我们的加压测试环境是 arm 开发板,而 github 介绍的编译流程基于 x86,因此我们需要配置**环境变量来设置交叉编译器**,以编译出可在开发板运行的二进制文件,参考代码如下: