最新のベンチマーク結果については、https://github.com/AI-performance/embedded-ai.bench/releases を参照してください。
ワンクリックでコンパイル: フレームワーク コードをプルしてライブラリをコンパイルします。
ワンクリック変換: 元のモデルを取得し、変換ツールをコンパイルして、モデルを変換します。
ワンクリック速度測定: フレームモデルを引っ張って速度を測定します。フレームワーク モデルをプルします。フレームワーク モデルは別のコード ウェアハウスに保存されており、速度テスト プロセスによってプルが自動的に完了します。
# tnncd ./tnn ./build_tnn_android.sh # ビルドが失敗した場合は `./tnn/build_tnn_android.sh` をフォローして読んでくださいcd -# mnncd ./mnn ./build_mnn_android.sh # ビルドが失敗した場合は `./mnn/build_mnn_android.sh` をフォローして読んでくださいcd -# ncnncd ./ncnn ./build_ncnn_android.sh # ビルドが失敗した場合は `./ncnn/build_ncnn_android.sh` をフォローして読んでください cd -# tflitecd ./tflite ./build_tflite_android.sh # ビルドが失敗した場合は `./tflite/build_tflite_android.sh` をフォローして読みますcd -# Benchpython bench.py# 実行が正常であれば:# ===> edit ./core/global_config.py# === > `GPU_REPEATS=1000`、`CPU_REPEATS=100`の値を編集します。 `WARMUP=20`、`ENABLE_MULTI_THREADS_BENCH=True`# ===> ./clean_bench_result.sh# ===> python bench.py# 以下のベンチマーク結果を参照# ./tnn/*.csv# ./mnn/*。 csv# ./ncnn/*.csv
現在サポートされているモデルは限られています。tnn-models、mnn-models、ncnn-models、tflite-models を参照してください。
MNNベンチ結果デモ
NCNNベンチ結果デモ
TNNベンチ結果デモ
tflite ベンチ結果デモ
次の図は、このプロジェクトのアーキテクチャを示しています。
class Engine: engine_config
によって各フレームワークのインスタンスを作成し、モデルをロードし、エンジン ライブラリをコンパイルし (TODO: py スクリプトに統合されます)、ベンチ結果を実行します。
BenchSum(TODO): 各エンジン インスタンスのベンチ結果を要約します。
共通モデル リポジトリ (TODO): 公開されているオリジナル モデルを格納するリポジトリ。 Caffe、TensorFlow フレームワークのクラシック モデル (MobileNetV1/V2 など) など。
tnn モデルなど、エンジンごとに独立したモデル ウェアハウス。パブリックのパブリック モデル ウェアハウスから変換された tnn モデル、モデル コンバーターのワンクリック コンパイル スクリプト (TODO)、モデル変換のワンクリック変換スクリプト (TODO)、およびモデル変換のワンクリック更新スクリプトが含まれています。モデルのバージョンは README に記載。
各エンジンの独立したモデル ウェアハウスは個別かつ定期的に更新されます (TODO)。
実行中、各エンジン インスタンスは、独自の独立したモデル ウェアハウスからモデルを取得して、ベンチの準備をします。
AI-Performance オープンソース組織以外の主体は、[このプロジェクトに基づくベンチマーク結果] を [公に] 公開することを禁止されており、公に公開した場合、侵害とみなされ、AI-Performance は法的責任を追及する権利を有します。
AI-Performance オープンソース組織は、中立性、公平性、公平性、オープン性を組織原則としており、AI 分野のベンチマーク標準の作成と策定に取り組んでいます。
通常、「開発者モード」がオンになっていないことを確認しても、次の手順で解決できます。
USB接続設定が「充電のみ」から「ファイル転送」に変更されます。
USB インターフェースを変更します (おそらく電圧)。
ベンダー ID を ~/.android/adb_usb.ini に追加し、次に adb kill-server、次に adb start-server を追加します。
電話機を再起動します。
コンピュータを再起動します。
データ ケーブルを変更します (これは以前にも発生したことがわかりました)。
Huawei携帯電話の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 の特定のログを確認して、
git clone
clonewarehouse などのタイムアウトが原因であるかどうかを確認してください。この時点で、Re-run this jobs
できます。
.github/workflows/unit-test-job.sh