優化 YOLOv3 推論引擎並實現於終端裝置

Translated title of the thesis: Optimization of YOLOv3 Inference Engine for Edge Device
  • 紀 旻志

Student thesis: Master's Thesis

Abstract

近年機器學習深度神經網路蓬勃發展,造就?多很好的神經網路模型,市場也為了因應模型應用將模型壓縮、量化與設計硬體加速器,使其能運行於終端裝置,而本論文觀察到目前常見的神經網路框架普遍推論模型時會有大量動態記憶體配置需求,如在Caffe神經網路框架進行圖像辨識AlexNet推論應用時,最大動態記憶配置為931 MByte,如此大的動態記憶體配置大小不適合運行於嵌入式裝置與移動設備,故基於本實驗室建立之YOLOv3推論引擎(YOLOv3 Inference Engine)修改推論流程,使其降低動態記憶體配置大小,以建立MDFI(Micro Darknet for Inference)。 而為何常見的神經網路框架會造成如此龐大的動態記憶體配置,因為常見神經網路框架都在初始時建立/還原完整神經網路模型與配置所需的記憶體空間,再進行推論運算,故如此需要大量的記憶體,所以本論文將修改推論流程,將配置空間移至每層運算階段進行配置所需的大小與載入運算參數,且在每層運算結束後會將運算用記憶體配置釋放,達到逐層管理記憶體(Layer-wise memory management),而現今模型越來越複雜,非以往的單純網路加深,而是透過增加residual connection來使提升訓練效果,而residual connection對於Layer-wise memory management流程會有layer dependency問題需要被解決,故本論文在分析階段建立每層相依計數器來記錄相依程度,以決定是否釋放相依的記憶體。總結Layer-wise memory management方法在YOLOv3神經網路模型中,相比於原本Darknet神經網路框架能減少92 0% 最大動態記憶體配置,在終端設備Raspberry PI 3上推論一張416 × 416圖片,原本Darknet需要14 53秒,而MDFI僅需要13 93秒,在圖像辨識AlexNet運算時間由12 35秒加速至5 341秒。 原MDFI僅支援物件偵測之YOLOv3神經網路模型,為了擴增MDFI使用場域特此增加圖像辨識與其他神經網路運算層,而所支援的網路運算層數由6種增加到11種運算。 最後本論文為MDFI增加OpenCL異質性運算流程,並將卷積層運算中的矩陣乘法轉由OpenCL設備運算,採用OpenCL SGEMM Na?ve Implementation的派發運算方式,在原本為CPU i7 4770 @ 3 4GHz卷積層運算需要7 4秒,而加入OpenCL流程使用GPU NVidia GTX1080Ti 卷積層運算僅需1 4秒。
Date of Award2019
Original languageChinese
SupervisorChung-Ho Chen (Supervisor)

Cite this

'