最新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/g =lobal_config.py > edit value of `GPU_REPEATS=1000`, `CPU_REPEATS=100`, `WARMUP=20`, `ENABLE_MULTI_THREADS_BENCH=True`# ===> ./clean_bench_result.sh# ===> python b.pyr. 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