4.5.13. 2D GPU 性能测试
4.5.13.1. 测试原理
2D GPU 性能
记录
测试 起始 时间 2D GPU 处理函数
循环 执行 100 次 记录
测试 结束 时间 根据
测试 起始、结束 时间 和 执行 次数 计算 2D GPU 处理函数 的 平均 耗时 和 帧 率
4.5.13.2. 测试准备工作
BSP 镜像
中 默认 存放 了 可 执行 的 测试程序 , 可以 cd到如下 路径 查看 : cd /app/platform_samples/chip_base_test/10_gpu_2d_test/ ls bin performance_test.sh
如果
是 自定义 镜像 的 情况,可以 从 BSP 源码 目录 中 的 app/samples/platform_samples/chip_base_test/10_gpu_2d_test目录拷贝到 设备 中
4.5.13.3. 测试方法
执行
performance_test.sh./performance_test.sh
打印
如下 结果:
root@buildroot:10_gpu_2d_test# ./performance_test.sh
[Case copy ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1142191 us] [AverageConsume 11421 us] [FPS 87.6]
[Case multi_source_alphablend ] [Input 4*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 2046196 us] [AverageConsume 20461 us] [FPS 48.9]
[Case resize ] [Input 1*1920*1080] [Output 3840*2160] [TestTimes 100] [TotalConsume 1227924 us] [AverageConsume 12279 us] [FPS 81.4]
[Case resize ] [Input 1*1920*1080] [Output 960*540 ] [TestTimes 100] [TotalConsume 80673 us] [AverageConsume 806 us] [FPS 1239.6]
[Case stitch ] [Input 4*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1357203 us] [AverageConsume 13572 us] [FPS 73.7]
[Case stitch ] [Input 2*3840*2160] [Output 3840*1080] [TestTimes 100] [TotalConsume 688650 us] [AverageConsume 6886 us] [FPS 145.2]
[Case alphablend ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1146742 us] [AverageConsume 11467 us] [FPS 87.2]
[Case crop ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1141900 us] [AverageConsume 11419 us] [FPS 87.6]
[Case rectangle_fill ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1143476 us] [AverageConsume 11434 us] [FPS 87.5]
4.5.13.4. 测试指标
针对
| 测试 |
FPS | 说明 |
|---|---|---|
| copy | 87.2 | 使用 2DGPU 完成 |
| multi_source_alphablend | 48.9 | 输入 4 个 3840 * 2160 图像 |
| resize | 81.4 | 输入 1920*1080 的 |
| resize( 第 2 个 ) | 1239.6 | 输入 1920 * 1080 的 |
| stitch | 73.7 | 输入 4 个 3840 * 2160的 |
| stitch(第 2 个) | 145.2 | 输入 2 个 3840 * 2160的 |
| alphablend | 87.2 | 输入 2 个 3840 * 2160 的 |
| crop | 87.6 | 输入 1 个 3840 * 2160 的 |
| rectangle_fill | 87.5 | 输入 |
源码app/samples/platform_samples/sample_gpu_2d
4.5.13.5. 常见问题
多次
执行 的 结果 之间 有 比较 小 的 差别
问题
描述:如下 两次 执行 日志,测出 的 帧 率 是 不同 的 第一次 执行 日志: [Case copy ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1142191 us] [AverageConsume 11421 us] [FPS 87.6] [Case multi_source_alphablend ] [Input 4*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 2046196 us] [AverageConsume 20461 us] [FPS 48.9] [Case resize ] [Input 1*1920*1080] [Output 3840*2160] [TestTimes 100] [TotalConsume 1227924 us] [AverageConsume 12279 us] [FPS 81.4] [Case resize ] [Input 1*1920*1080] [Output 960*540 ] [TestTimes 100] [TotalConsume 80673 us] [AverageConsume 806 us] [FPS 1239.6] [Case stitch ] [Input 4*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1357203 us] [AverageConsume 13572 us] [FPS 73.7] [Case stitch ] [Input 2*3840*2160] [Output 3840*1080] [TestTimes 100] [TotalConsume 688650 us] [AverageConsume 6886 us] [FPS 145.2] [Case alphablend ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1146742 us] [AverageConsume 11467 us] [FPS 87.2] [Case crop ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1141900 us] [AverageConsume 11419 us] [FPS 87.6] [Case rectangle_fill ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1143476 us] [AverageConsume 11434 us] [FPS 87.5]
第二次
执行 日志: [Case copy ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1160530 us] [AverageConsume 11605 us] [FPS 86.2] [Case multi_source_alphablend ] [Input 4*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 2069446 us] [AverageConsume 20694 us] [FPS 48.3] [Case resize ] [Input 1*1920*1080] [Output 3840*2160] [TestTimes 100] [TotalConsume 1243849 us] [AverageConsume 12438 us] [FPS 80.4] [Case resize ] [Input 1*1920*1080] [Output 960*540 ] [TestTimes 100] [TotalConsume 80530 us] [AverageConsume 805 us] [FPS 1241.8] [Case stitch ] [Input 4*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1371815 us] [AverageConsume 13718 us] [FPS 72.9] [Case stitch ] [Input 2*3840*2160] [Output 3840*1080] [TestTimes 100] [TotalConsume 695384 us] [AverageConsume 6953 us] [FPS 143.8] [Case alphablend ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1160516 us] [AverageConsume 11605 us] [FPS 86.2] [Case crop ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1160381 us] [AverageConsume 11603 us] [FPS 86.2] [Case rectangle_fill ] [Input 1*3840*2160] [Output 3840*2160] [TestTimes 100] [TotalConsume 1149800 us] [AverageConsume 11498 us] [FPS 87.0]
问题
分析:性能 测试 的 逻辑 是 执行 100 次,计算 的 平均 时间,所以 存在 1 帧 左右 的 偏差 解决办法:可以
修改 测试 脚本 performance_test.sh中执行 次数(默认 是 100 次,为了 尽快 输出 测试 结果)