最新benchmark结果参见:https://github.com/AI-performance/embedded-ai.bench/releases
一键编译:拉取框架代码,编译库;
一键转换:拉取原始模型、编译转换工具、转换模型;
一键测速:拉取框架模型,测速。拉取框架模型,框架模型存放于不同的代码仓库中,执行测速过程会自动完成拉取。
# tnncd ./tnn ./build_tnn_android.sh # follow & read `./tnn/build_tnn_android.sh` if build failedcd -# mnncd ./mnn ./build_mnn_android.sh # follow & read `./mnn/build_mnn_android.sh` if build failedcd -# ncnncd ./ncnn ./build_ncnn_android.sh # follow & read `./ncnn/build_ncnn_android.sh` if build failed cd -# tflitecd ./tflite ./build_tflite_android.sh # follow & read `./tflite/build_tflite_android.sh` if build failedcd -# benchpython bench.py# if execution is okay:# ===> edit ./core/global_config.py# ===> edit value of `GPU_REPEATS=1000`, `CPU_REPEATS=100`, `WARMUP=20`, `ENABLE_MULTI_THREADS_BENCH=True`# ===> ./clean_bench_result.sh# ===> python bench.py# see benchmark result below# ./tnn/*.csv# ./mnn/*.csv# ./ncnn/*.csv
目前支持模型有限,见:tnn-models、mnn-models、ncnn-models、tflite-models。
mnn bench result demo
ncnn bench result demo
tnn bench result demo
tflite bench result demo
下图描述了本项目的架构:
class Engine: 由engine_config
创建每个框架的实例、加载模型models、编译引擎lib(TODO:待集成到py脚本),跑出bench结果;
BenchSum(TODO): 汇总各Engine实例的Bench结果;
common model repo(TODO): 存放公共原始模型的仓库。如Caffe、TensorFlow框架的经典模型(MobileNetV1/V2等)。
各引擎独立模型仓库,如tnn-models。包含从公共公共模型仓库转换得到的tnn的模型、模型转换器的一键编译脚本(TODO)、模型转换的一键转换脚本(TODO)、模型版本一键刷新到README的脚本;
各引擎独立模型仓库独立定期更新(TODO);
每个Engine实例在执行过程中会拉取各自独立模型仓库的模型,为bench做准备。
禁止除AI-Performance开源组织以外的主体,【公开】发布【基于本项目的benchmark结果】,若公开发布则视为侵权,AI-Performance有权追诉法律责任。
AI-Performance开源组织,以中立、公平、公正、公开为组织准则,致力于打造制定AI领域的benchmark标准。
一般是没开启「开发者模式」,在确认开启后,还是找不到,按照以下顺序一般都能解决:
USB连接设置从「仅充电」改为「传输文件」;
换USB接口(可能电压);
加vendor ID到~/.android/adb_usb.ini然后adb kill-server再adb start-server;
重启手机;
重启电脑;
换数据线(我之前发现有这个情况);
华为手机的CD 驱动器Hisuite会占用adb。弹出该驱动器;
手机刷机。
首次提交代码需执行以下命令,安装钩子。安装成功后,每次执行git commit
后会自动检查.pre-commit-config.yaml
里设定的检查项,如目前是针对Python代码做格式检查。
# 第一次执行钩子可能会比较慢pre-commit install# 若找不到则需要先安装pre-commitpip install pre-commit# 如需卸载则执行pre-commit uninstall
如若找不到python3.8,可以安装minconda3,使用如下命令:
# 自动安装miniconda3,并写入当前用户的环境变量.github/workflows/pre-commit-job.sh# 提交代码前先创建一个名为dev_env_py的环境为例,遇到选择yconda create -n dev_env_py python=3.8# 激活刚创建的环境conda activate dev_env_py# 重新安装pre-commitpre-commit install
若CI挂掉,查看Github Action的具体日志,是否由于timeout如
git clone
仓库,这时可以Re-run this jobs
重新运行。
.github/workflows/unit-test-job.sh