2020/8/25

Bookmark: Android 11. Machine Learning in Android Studio with TensorFlow Lite.

最近的 Android 11 Preview.
UI 用起來沒什麼差別,結果差別在 platform 中..

這個好厲害,已經稿得這麼方便了。

新的Android Studio 已經把ML Kit 放進去了。
所以在android 中寫 ML 的 function 越來越簡單。

甚至example 都做得很無腦了,github clone 下來,用 Android Studio 開啟。
Android Studio 會自動下載需要的 SDK, NDK, plugin。
build 完,然後舊可以 run 在 手機上。

Example 已經把是用 CPU,GPU,NNAPI 的選擇都做好了。
也把inferer一張需要得時間寫出來。
同一個network 也分成 qualtize 跟 float 兩種。

分別用 Pixel 2 跟 Max Pro M1 來試。
這兩格都沒有run Android 11, 一格式 10, 一個是 9

結果...CPU 強時 (835),使用 CPU, NNAPI, 跟 GPU 差不多。
CPU 弱 (660) 時,使用 float 計算,CPU 與 GPU 相差20倍
但是 CPU 在 Qualtize 的 model 跟 GPU 在 float model 的時間還是差不多。

根據這一篇,tensorflow lite 使用 OpenCL,OpenGL ES 來存取 GPU 資源。
這一篇 delegates 說明tensorflow lite 使用 hardware 加速的部份。
NNAPI 應該最厲害,會用到所有 hardware (GPU, NPU, DSP/hexagon),但是要 Android 8.1 以上才 support
以前的 snpe (hexagon) 用在舊版本的 Android. 沒有support NNAPI 的裝置。

這個 github project : benchmark 剛好是用 GPU, NNAPI, hexgeon 來做benchmark,有詳細的 build step,run 在 android 上

沒有留言:

張貼留言