繼續(xù)Seeing Machines對DMS商業(yè)化落地遇到的挑戰(zhàn)的總結(jié)。
本節(jié)針對DMS系統(tǒng)中常見的三類任務(wù),檢驗Occula的設(shè)計效率。(i) 人臉檢測,(ii) 人臉跟蹤,(iii) MobileNet(一種常用的NN架構(gòu))的推理。
對標(biāo)方法
如前所述,Occula不是一個普通的NPU,而是與基于NN的算法相匹配(或共同設(shè)計)的加速硬件,而這些算法又可以在其上高效運(yùn)行。因此,重要的是要把Occula看成是一個NPU和一套算法,它們是不可分割的。
因此,為了使效率測試有意義,我們需要將Occula NPU+NN系統(tǒng)與其他潛在的NPU+NN系統(tǒng)進(jìn)行比較,例如那些Seeing Machines的競爭對手可能開發(fā)的系統(tǒng)。
為此,我們在候選的NPU上創(chuàng)建了人臉檢測和人臉追蹤的對標(biāo)算法,這些算法很適合這些NPU,我們認(rèn)為這些算法將代表任何負(fù)責(zé)在這些設(shè)備上實施最先進(jìn)的DMS軟件解決方案的機(jī)器學(xué)習(xí)專家工程師所采取的開發(fā)路徑。
我們的想法是比較Occula作為一個特定應(yīng)用的設(shè)計所實現(xiàn)的“開箱即用”的效果與在任何其他通用NPU上開發(fā)人臉檢測和人臉追蹤NN的結(jié)果。我們認(rèn)為,這種方法很好地代表了將“與硬件無關(guān)”的DMS軟件移植到隨機(jī)SoC上的現(xiàn)實,這也是我們的競爭對手必須做的。
人臉檢測任務(wù)
在人臉檢測方面,我們的對標(biāo)測試采用了使用TensorFlow的MobileNet SSD-V2,在人臉圖像庫中進(jìn)行訓(xùn)練。在撰寫本文時,SSD(Single-Shot Detectors)是使用NN進(jìn)行一般2D物體檢測的最先進(jìn)技術(shù)。此外,MobileNet NN架構(gòu)產(chǎn)生的模型很小,通常用于高性能的嵌入式解決方案。我們認(rèn)為這種方法是機(jī)器學(xué)習(xí)工程師為DMS解決方案開發(fā)人臉檢測時最可能選擇的方法。SM-DETECT和MobileNet SSD-V2網(wǎng)絡(luò)都是針對320*320分辨率的圖像運(yùn)行的。
人臉跟蹤任務(wù)
對于人臉跟蹤,我們的對標(biāo)測試采用了3D“人臉對齊(face alignment)”技術(shù)的開源實現(xiàn),該技術(shù)最初在ECCV 2020上提出。這篇論文的題目是“Towards Fast, Accurate and Stable 3D Dense Face Alignment”,追求使用NN技術(shù)實現(xiàn)最大效率的快速實時人臉對齊。ECCV的論文和3DFFA_V2 GitHub項目都是由Jianzhu Guo共同撰寫的,他是人臉處理領(lǐng)域中被高度引用和尊重的專家。在我們的對標(biāo)中,我們測量了人臉對齊階段所花費的時間,這與SM-TRACK在應(yīng)用于追蹤人臉時所做的工作有直接的可比性。每個方法都是在核心算法模型的原始分辨率下執(zhí)行的,以避免圖像縮放影響結(jié)果。3DFFA_V2代碼在128128分辨率的圖像上運(yùn)行,而SM-DETECT處理1280968分辨率的圖像。注意,這使得3DFFA_V2處理的輸入像素更少(因此有帶寬優(yōu)勢)。
通用的NN推理任務(wù)
對于通用的NN推理,同一模型在所有目標(biāo)設(shè)備上執(zhí)行,包括Occula。網(wǎng)絡(luò)架構(gòu)是MobileNet-V3,有一個由8位量化系數(shù)組成的10MB模型。任務(wù)是使用ImageNet11數(shù)據(jù)執(zhí)行簡單分類。
目標(biāo)設(shè)備
對于對標(biāo)測試,我們有意選擇(i)通用的NPU設(shè)計,(ii)因其低功耗的嵌入式性能而被認(rèn)為是“最先進(jìn)的”,但(iii)沒有出現(xiàn)在車載產(chǎn)品中。
排除任何出現(xiàn)在汽車SoC中的NPU的原因是Seeing Machines也在開發(fā)和提供車載NPU軟件,而這些設(shè)備的性能與Occula相比是商業(yè)上的敏感信息。簡而言之,我們不想給我們的任何SoC合作伙伴帶來麻煩。
在我們的研究中,我們選擇了Google Coral Edge TPU和NVIDIA Xavier NX,因為Google和Nvidia都可以說在高性能通用NPU設(shè)計方面處于市場領(lǐng)先地位,而且最近還發(fā)布了嵌入式版本。這兩款芯片還擁有業(yè)界領(lǐng)先的工具鏈。
功耗測量
Google Coral
Coral TPU是一個純粹的NPU設(shè)備(而不是一個帶有CPU和其他子系統(tǒng)的SoC)。Google提供的測試系統(tǒng)使用帶有USB Coral TPU加密狗的Raspberry Pi v4進(jìn)行操作。測量Coral TPU的功耗,只需觀察Coral TPU進(jìn)行處理時與移除Coral TPU加密狗時Raspberry系統(tǒng)功率的差異。
NVIDIA Xavier NX
我們在NVIDIA Xavier NX系統(tǒng)的兩個不同的子組件上運(yùn)行該對標(biāo)測試,(i)GPU(384核NVIDIA Volta™ GPU,帶48個Tensor Core),以及(ii)深度學(xué)習(xí)加速器(NVDLA引擎),在該系統(tǒng)上獲得的功耗測量結(jié)果如下:
上表通過考慮以下因素來比較設(shè)計效率:(i)NPU執(zhí)行任務(wù)的速度(FPS);(ii)NPU執(zhí)行計算的額外功耗(W);(iii)NPU內(nèi)核消耗的芯片面積(mm2)。請注意,對于Occula來說,該測試是在FOVIO芯片的環(huán)境下進(jìn)行的,它是一個28nm的FPGA設(shè)備,而Google和Nvidia的設(shè)備被認(rèn)為是12nm的部件,因此應(yīng)該更節(jié)能。
最右邊的一列是對Occula設(shè)計部署在12nm器件中的性能結(jié)果的模擬預(yù)測,它提供了一個更好的平行的效率比較。這個模型的細(xì)節(jié)將在下一節(jié)討論。
一個有趣的結(jié)果是,在所有三個任務(wù)中,Google TPU的性能明顯優(yōu)于Nvidia設(shè)備。我們注意到,Google設(shè)備顯然是為執(zhí)行量化的NN而優(yōu)化的,而Nvidia設(shè)備則保留了完整的浮點支持。
這些結(jié)果揭示了一個眾所周知的行業(yè)現(xiàn)象,即特定應(yīng)用的設(shè)計通常能夠比通用設(shè)計(在特定應(yīng)用領(lǐng)域進(jìn)行比較時)的性能至少高出一個數(shù)量級。事實上,這就是協(xié)處理器存在的原因。也許這里更深刻的認(rèn)識是,雖然NPU本身是遠(yuǎn)離更多通用的CPU的專業(yè)化,但大多數(shù)NPU(甚至是嵌入式的)仍然是高度通用的設(shè)計,可以被特定應(yīng)用的協(xié)同設(shè)計方法所超越。