在MediaTek AIoT Genio1200平臺上,MediaTek 提供許多不同的軟件解決方案,伙伴們可通過CPU、GPU和APU來提供 AI 計算能力。在開發和部署廣泛的機器學習時,決大部分會為了推演自行開發出的模型,來提供硬件加速功能,伙伴們也可通過圖形處理器來啟用 TensorFlot Lite模型的硬件加速。
MediaTek AIoT Genio1200 board:
以MTK AIoT Yocto而言,目前已知下列三種方式(CPU、GPU和APU)
第一種是 ARM NN,是一組開源軟件,可在 ARM 的硬件設備上實現機器學習工作,它在目前常見的神經網路框架 Cortex-A CPU、ARM Mali GPU 之間橋接,透過 CPU 來運算和推演模型。
第二種是GPU Neural Network Acceleration,它使用的是設備上的 OpenGL ES(OpenGL for Embedded Systems)計算著色器來推演模型。
第三種是 APU Neural Network Acceleration(MediaTek Deep Learning Accelerator and Vision Processing Unit)。
讓小弟來為各位伙伴們介紹 MediaTek 專有的深度學習加速器,它是一款功能強大且高效的卷積神經網路(Convolutional Neural Network)加速器,MDLA能夠以高乘法累加(Multiply-Accumulate utilization, MAC)利用率實現高 AI 基準測試結果,此設計將 MAC單元與存用功能模塊集成在一起。
在開始演練之前,各位伙伴們是否還記得什么是 MediaTek NeuroPilot 呢?忘記的伙伴們,可以回過頭去了解 淺談MediaTek NeuroPilot
NeuroPilot是聯發科AI 生態系統的核心?;锇閭兛山橛蒒euroPilot在邊緣設備上,以極高的效率開發和部署 AI 應用程序。這使得各種各樣的人工智能應用程序運行得更快?;锇閭內蘸罂梢栽?NeuroPilot SDK內,使用 Neuron編譯器( ncc-tflite),用于將 TFLite 模型轉換為MediaTek 專有的二進制文件 (DLA, 深度學習存檔),以便在 Genio1200 平臺上部署。生成的模型非常高效,延遲減少,內存占用更少。 Neuron SDK 還提供了 Neuron Run-time API,它提供了一組 API,可以讓伙伴們從 C/C++ 程序中調用這些 API,以創建運行時的環境,解析編譯的模型文件,并執行設備上的神經網路推理。
由圖示可以知道,DLA檔是 MediaTek專有模型,它是 MDLA(MediaTek Deep Learning Accelerator) 和 VPU(Vision processing unit )計算設備的 low-level binary 檔案。使用 ncc-tflite 將 TensorFlow lite 模型轉換成可在 APU 上推演的 DLA文件,再供給圖像/物件識別的應用程序使用。
使用預先寫好的腳本來將 TensorFlow Lite模型轉換成 DLA 文檔,信息如下:
root@i1200-demo:~# lsconvert_tensorflowLite_to_DLA.sh demos test.tfliteroot@i1200-demo:~# ./convert_tensorflowLite_to_DLA.sh[apusys][info]apusysSession: Seesion(0xaaaae26f9910): thd(ncc-tflite) version(2) log(0)root@i1200-demo:~# lsconvert_tensorflowLite_to_DLA.sh demos test.dla test.tfliteroot@i1200-demo:~#
如圖所示,GstInference 是個開源項目,它提供了一個將深度學習推理整合到 GStreamer 中的框架??捎糜诒姸嗟纳疃葘W習架構進行推理,也可搭配實用的程序來支持自定義的架構。此框架使用 R2Inference,這是 C/C++ 中的一個抽象層,用于各種機器學習框架。單一個 C/C++ 應用程序就可以借助 R2Inference來使用不同框架上的模型。這對于利用不同的硬件執行推理時非常有用 (CPU、GPU、APU的加速器)。本次的演練是基于圖中的框架來實現即時影像識別的應用,將剛才轉換好的 DLA文檔來執行于圖像識別的推演。
接下來執行預先配置好的腳位來實現圖像和物件識別的演練。
root@i1200-demo:~# lsconvert_tensorflowLite_to_DLA.sh labels_objectD.txt test2.dlademos objectD.dla test2.tfliteimage_classification.sh object_detection.shlabels.txt test.tfliteroot@i1200-demo:~# ./image_classification.sh
執行結果將會顯示于 HDMI 屏上,可以看到所推演出的物件為 ballpoint pen
繼續執行物件識別的演示。
root@i1200-demo:~# lsconvert_tensorflowLite_to_DLA.sh labels_objectD.txt test2.dlademos objectD.dla test2.tfliteimage_classification.sh object_detection.shlabels.txt test.tfliteroot@i1200-demo:~# ./object_detection.sh
推演的結果,可以看到識別為 bottle
推演的結果可以看到識別為 monitor
推演的結果可以,可以看到識別為 chair
本次的演示就到此,有興趣的伙伴們可以一起來討論和研究,謝謝大家!
?場景應用圖
?展示板照片
?方案方塊圖
?核心技術優勢
雙核AI處理器單元(APU) 可處理基于 AI 的任務,支持深度學習(Deep Learning)、神經網絡(Neural Network)加速和計算機視覺(computer vision)應用。
?方案規格
CPU: Arm Cortex-A78 x4 Arm Cortex-A55 x4
GPU: Arm Mali-G57 MP5
APU: MediaTek AI Processor (dual core)
Video processing: Video encoding 4K60fps HEVC/H.264 Video decoding 4K90fps AV1/VP9/HEVC/H.264
Software: Android/Yocto Linux/Ubuntu/NeuroPilot SDK
Interface: HDMI 2.0 receiver (HDMI RX) PCIE3.0 USB3.1 GbE MAC ISP, 48MP@30fps/16MP+16MP@30fps
-
AI
+關注
關注
87文章
30887瀏覽量
269068 -
AIoT
+關注
關注
8文章
1408瀏覽量
30684
發布評論請先 登錄
相關推薦
評論