Files
2026-07-13 13:33:03 +08:00

38 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Benchmark工具
## Linux / macOS / Ubuntu
[从源码编译](../compile/other.md),然后执行如下命令:
```bash
./benchmark.out models_folder loop_count warm_up_count forwardtype numberThread precision weightSparsity weightSparseBlockNumber testQuantizdModel
```
参数如下:
- models_folder: benchmark models文件夹,[benchmark models](https://github.com/alibaba/MNN/tree/master/benchmark/models)。
- loop_count: 可选,默认是10
- warm_up_count: 预热次数
- forwardtype: 可选,默认是0,即CPUforwardtype有0->CPU1->Metal3->OpenCL6->OpenGL7->Vulkan
- numberThread: 可选,默认是4,为 CPU 线程数或者 GPU 的运行模式
- precision: 可选,默认是2,有效输入为:0(Normal), 1(High), 2(Low_FP16), 3(Low_BF16)
- weightSparsity: 可选,默认是 0.0 ,在 weightSparsity > 0.5 时且后端支持时,开启稀疏计算
- weightSparseBlockNumber: 可选,默认是 1 ,仅当 weightSparsity > 0.5 时生效,为稀疏计算 block 大小,越大越有利于稀疏计算的加速,一般选择 1, 4, 8, 16
- testQuantizedModel 可选,默认是0,即只测试浮点模型;取1时,会在测试浮点模型后进行量化模型的测试
## Android
在[benchmark目录](https://github.com/alibaba/MNN/tree/master/benchmark/android)下直接执行脚本`bench_android.sh`,默认编译armv7,加参数-64编译armv8,参数-p将[benchmarkModels](https://github.com/alibaba/MNN/tree/master/benchmark/models) push到机器上。
脚本执行完成在[benchmark目录](https://github.com/alibaba/MNN/tree/master/benchmark/android)下得到测试结果`benchmark.txt`
## iOS
1. 先准备模型文件,进入tools/script目录下执行脚本`get_model.sh`
2. 打开demo/iOS目录下的demo工程,点击benchmark;可通过底部工具栏切换模型、推理类型、线程数。
## 基于表达式构建模型的Benchmark
[从源码编译](../compile/other.md),运行以下命令查看帮助:
```bash
./benchmarkExprModels.out help
```
示例:
```bash
./benchmarkExprModels.out MobileNetV1_100_1.0_224 10 0 4
./benchmarkExprModels.out MobileNetV2_100 10 0 4
./benchmarkExprModels.out ResNet_100_18 10 0 4
./benchmarkExprModels.out GoogLeNet_100 10 0 4
./benchmarkExprModels.out SqueezeNet_100 10 0 4
./benchmarkExprModels.out ShuffleNet_100_4 10 0 4
```
相应模型的paper链接附在头文件里,如`benchmark/exprModels/MobileNetExpr.hpp`