高通SNPE - 基準測試概述(3)
架構支援
SNPE基準測試同時支援有Android ARM 32位和AARCH 64位。除Android外,對LinuxEmbedded的支援有限,其中僅支援計時的測量。
將執行時Runtime和度量Measurement連線起來,以形成完整的執行組合名稱,例如,
- “ GPU_timing”:GPU執行時,定時測量
- “ CPU_mem”:CPU執行時,記憶體測量
這裡請注意,對於每個指定的執行時,都有多組時序測量值,它們僅在張量格式上有所不同(使用ITensor和使用使用者緩衝區)。例如,對於DSP執行時,將進行以下時序測量:
- “ DSP_timing”:使用ITensor在DSP執行時上進行時序測量
- “ DSP_ub_tf8_timing”:使用帶有TF8編碼的UserBuffer在DSP執行時上進行時序測量
- “ DSP_ub_float_timing”:使用帶浮點編碼的UserBuffer在DSP執行時上計時測量
執行基準
執行基準測試的最簡單方法是指定-a選項,該選項將在連線到計算機的單個裝置上執行基準測試。
cd $ SNPE_ROOT /基準
python3 snpe_bench.py -c yourmodel.json -a
基準測試將在主機檔案(在JSON配置中指定的檔案)和裝置檔案上執行md5sum。由於md5sum檢查,基準執行所需的檔案必須在主機上可用。
對於主機和裝置上同時存在md5不匹配的任何檔案,基準測試會將檔案從主機複製到目標,併發出警告訊息,告知您本地檔案與裝置檔案不匹配。這樣做是為了確保您可以從基準測試獲得的結果準確反映JSON檔案中指定的檔案。
其他選擇
-
-v選項
允許您覆蓋配置檔案中指定的裝置ID,以便同一配置檔案可用於多個裝置。如果連線了多個裝置,則可以使用此選項代替-a。 -
-o選項
僅當為HostRootPath和HostResultsDir指定相對路徑時,結果輸出基本目錄覆蓋才適用。無論您從何處執行基準測試,它都可以合併輸出。 -
-t選項
作業系統型別覆蓋當前支援Android arm(armeabi-v7a),Android aarch64(arm64-v8a)和Linux嵌入式裝置。 -
-b選項
允許您指定輸入和輸出使用者緩衝區的型別。 -
-p選項
允許您分析不同操作模式下的效能。 -
-l選項
允許您指定效能分析的級別。
閱讀結果
在HostResultsDir / latest_results資料夾中開啟結果(CSV檔案或JSON檔案)以檢視結果。 (HostResultsDir是您在json配置檔案中指定的內容。)
測量方法
在所有情況下,snpe-net-run可執行檔案都用於載入模型並通過模型執行輸入。
表現(“時間”)
使用SNPE庫中的內部計時實用程式進行計時測量。當執行snpe-net-run時,庫會將計時資訊記錄到檔案中。然後將該檔案離線解析,以檢索總推理時間和每層時間。
總推斷時間包括每層計算時間以及開銷(例如層之間的資料移動以及進出執行時的開銷),而每層時間嚴格來說是每一層的計算時間。對於較小的網路,開銷相對於計算時間而言可能是相當大的,尤其是在解除安裝網路以在GPU或DSP上執行時。
同樣,在神經元conv-neuron或fc-neuron對的情況下,GPU / DSP上存在的進一步優化可能會導致層時間分配錯誤。在GPU上執行時,兩對的總時間將分配給conv,而對於DSP,則將它們分配給神經元。
基準依賴性
基準指令碼所依賴的二進位制檔案位於以下配置檔案中,具體取決於目標體系結構,編譯器和STL庫:
- Android 32-bit
- clang - libc++: snpebm/snpebm_artifacts.json
- Android 64-bit
- clang - libc++: snpebm/snpebm_artifacts_android_aarch64.json
- LinuxEmbedded: snpebm/snpebm_artifacts_le.json
相關文章
- 高通SNPE - OpenCL簡介(1)
- hadoop基準測試_Hadoop TeraSort基準測試Hadoop
- 基準測試:HTTP/3 有多快? - requestmetricsHTTP
- 基準測試
- TGI 基準測試
- benchmark 基準測試
- MinkowskiEngine基準測試
- MYSQL 效能測試方法 - 基準測試(benchmarking)MySql
- JMH- benchmark基準測試
- [轉帖]sysbench基準測試
- 【基準測試】BenchmarkDotNet介紹
- MySQL學習 - 基準測試MySql
- postgresql:pgbench基準效能測試SQL
- 效能測試-概述
- ubuntu 快速測試 cpu 基準水平Ubuntu
- Linkerd和Istio基準測試 - linkerd
- Lettuce和Jedis的基準測試
- 一、測試基礎(3)
- 技術基礎 | Apache Cassandra 4.0基準測試Apache
- Go 語言基準測試入門Go
- 資料庫基準測試工具 sysbench資料庫
- 公有云RDS-MySQL基準測試MySql
- 使用 JMH 做 Kotlin 的基準測試Kotlin
- 【總結】簡述 MySQL 基準測試工具MySql
- [總結] 簡述 MySQL 基準測試工具MySql
- Java基準效能測試--JMH使用介紹Java
- 利用sysbench進行MySQL OLTP基準測試MySql
- 精準測試
- VMmark 4.0.1 - 虛擬化平臺基準測試
- 基於 AI 大模型的精準測試分享AI大模型
- Python 3.11效能基準測試看起來很棒 - PhoronixPython
- MySQL效能基準測試對比:5.7 VS 8.0MySql
- 基於TPC-C基準的Python ORM的效能測試PythonORM
- 【軟體測試】(三)黑盒測試綜合策略概述
- 第1章 軟體測試概述線上測試
- 測試標準1
- 聊一聊資料庫基準測試那些事資料庫
- 使用Sysbench對滴滴雲MySQL進行基準測試MySql