Die neuesten Benchmark-Ergebnisse finden Sie unter: https://github.com/AI-performance/embedded-ai.bench/releases
Kompilierung mit einem Klick: Ziehen Sie den Framework-Code ab und kompilieren Sie die Bibliothek.
Konvertierung mit einem Klick: Ziehen Sie das Originalmodell, kompilieren Sie das Konvertierungstool und konvertieren Sie das Modell.
Geschwindigkeitsmessung mit einem Klick: Ziehen Sie das Rahmenmodell und messen Sie die Geschwindigkeit. Ziehen Sie das Framework-Modell ab. Das Framework-Modell wird in verschiedenen Code-Warehouses gespeichert. Der Geschwindigkeitstestvorgang schließt den Pull automatisch ab.
# tnncd ./tnn ./build_tnn_android.sh # Folgen und lesen Sie „./tnn/build_tnn_android.sh“, wenn der Build fehlgeschlagen ist. cd -# mnncd ./mnn ./build_mnn_android.sh # Folgen und lesen Sie „./mnn/build_mnn_android.sh“, wenn der Build fehlgeschlagen ist. cd -# ncnncd ./ncnn ./build_ncnn_android.sh # Folgen und lesen Sie „./ncnn/build_ncnn_android.sh“, wenn der Build fehlgeschlagen ist cd -# tflitecd ./tflite ./build_tflite_android.sh # Folgen und lesen Sie „./tflite/build_tflite_android.sh“, wenn der Build fehlgeschlagen ist. cd -# benchpython bench.py#, wenn die Ausführung in Ordnung ist: # ===> bearbeiten Sie ./core/global_config.py# === > Wert von „GPU_REPEATS=1000“, „CPU_REPEATS=100“ bearbeiten, `WARMUP=20`, `ENABLE_MULTI_THREADS_BENCH=True`# ===> ./clean_bench_result.sh# ===> python bench.py# siehe Benchmark-Ergebnis unten# ./tnn/*.csv# ./mnn/*. csv# ./ncnn/*.csv
Derzeit unterstützte Modelle sind begrenzt, siehe: tnn-models, mnn-models, ncnn-models, tflite-models.
MNN-Bankergebnis-Demo
Ncnn-Bankergebnis-Demo
TNN-Bankergebnis-Demo
Tflite-Bench-Ergebnis-Demo
Die folgende Abbildung beschreibt die Architektur dieses Projekts:
Klassen-Engine: Erstellen Sie eine Instanz jedes Frameworks mit engine_config
, laden Sie Modelle, kompilieren Sie die Engine-Bibliothek (TODO: zur Integration in das Py-Skript) und führen Sie die Benchmark-Ergebnisse aus.
BenchSum(TODO): Fasst die Bench-Ergebnisse jeder Engine-Instanz zusammen;
Common Model Repo (TODO): Ein Repository, das öffentliche Originalmodelle speichert. Wie Caffe, klassische Modelle des TensorFlow-Frameworks (MobileNetV1/V2 usw.).
Unabhängiges Modelllager für jeden Motor, z. B. tnn-models. Enthält das aus dem öffentlichen Modelllager konvertierte tnn-Modell, das Ein-Klick-Kompilierungsskript (TODO) des Modellkonverters, das Ein-Klick-Konvertierungsskript (TODO) der Modellkonvertierung und das Skript für die Ein-Klick-Aktualisierung des Modellversion zu README;
Das unabhängige Modelllager jedes Motors wird unabhängig und regelmäßig aktualisiert (TODO);
Während der Ausführung ruft jede Engine-Instanz Modelle aus ihrem eigenen unabhängigen Modelllager ab, um sie für den Prüfstand vorzubereiten.
Anderen Subjekten als der Open-Source-Organisation AI-Performance ist es untersagt, [Benchmark-Ergebnisse, die auf diesem Projekt basieren], öffentlich zu veröffentlichen, da dies als Verstoß angesehen wird und AI-Performance das Recht hat, rechtliche Haftung einzuleiten.
Die Open-Source-Organisation AI-Performance verfolgt Neutralität, Fairness, Unparteilichkeit und Offenheit als Organisationsprinzipien und setzt sich für die Schaffung und Formulierung von Benchmark-Standards im KI-Bereich ein.
Normalerweise ist der „Entwicklermodus“ nicht aktiviert. Nachdem Sie bestätigt haben, dass er aktiviert ist, kann er immer noch nicht gefunden werden, indem Sie die folgende Reihenfolge befolgen:
Die USB-Verbindungseinstellung wurde von „Nur Laden“ auf „Dateien übertragen“ geändert;
Ändern Sie die USB-Schnittstelle (evtl. Spannung);
Fügen Sie die Hersteller-ID zu ~/.android/adb_usb.ini hinzu und dann adb kill-server und dann adb start-server;
Starten Sie das Telefon neu.
Starten Sie den Computer neu.
Tauschen Sie das Datenkabel aus (ich habe festgestellt, dass dies schon einmal passiert ist);
Das CD-Laufwerk Hisuite von Huawei-Handys wird adb belegen. Werfen Sie das Laufwerk aus.
Flashen Sie das Telefon.
Um Code zum ersten Mal zu übermitteln, müssen Sie den folgenden Befehl ausführen, um den Hook zu installieren. Nach erfolgreicher Installation werden bei jeder Ausführung git commit
die in .pre-commit-config.yaml
festgelegten Prüfelemente automatisch überprüft. Die aktuelle Formatprüfung gilt beispielsweise für Python-Code.
# Die erste Ausführung des Hooks kann langsam sein. pre-commit install # Wenn er nicht gefunden werden kann, müssen Sie ihn zuerst installieren pre-commitpip install pre-commit # Wenn Sie eine Deinstallation durchführen möchten, führen Sie die Pre-Commit-Deinstallation aus
Wenn Sie Python3.8 nicht finden können, können Sie minconda3 installieren und den folgenden Befehl verwenden:
# Miniconda3 automatisch installieren und die Umgebungsvariable des aktuellen Benutzers schreiben.github/workflows/pre-commit-job.sh# Erstellen Sie vor dem Senden des Codes eine Umgebung mit dem Namen dev_env_py als Beispiel. Wenn Sie darauf stoßen, wählen Sie yconda create -n dev_env_py python = 3.8# Aktivieren Sie die neu erstellte Umgebung conda activate dev_env_py# Installieren Sie die Pre-Commit-Pre-Commit-Installation neu
Wenn CI hängen bleibt, überprüfen Sie das spezifische Protokoll der Github-Aktion, um zu sehen, ob es an einer Zeitüberschreitung wie z. B.
git clone
Warehouse liegt. Zu diesem Zeitpunkt können SieRe-run this jobs
.
.github/workflows/unit-test-job.sh