神經網路可以被歸類為一組大致模仿人腦建模方式的演算法,能夠透過導入新資料來完成「學習」過程。事實上,開發專用的「運算高效型」神經網路模型能提供大量優勢。然而,為了確保模型的有效性,需要考慮幾項關鍵需求。
關鍵點之一是在實現推論加速器(或廣義的硬體加速器)時應採用何種方式訪問記憶體。在機器學習(ML)推論範疇內,特別需要考量如何將權重和中間啟動值一起儲存。過去幾年裡已有多種方法投入使用並獲得不同程度的成功。相關的架構選擇帶來的影響十分顯著:
・延遲:對L1、L2和L3記憶體的訪問表現出相對較低的延遲。如果與下一個圖形運算有關的權重和啟動值被快取起來,那麼就能保持合理水準的效率。然而,如果要從外部DDR提取資料,就會發生流水線停頓,進而影響延遲和效率。
・功耗:訪問外部記憶體的能耗至少比訪問內部記憶體大一個數量等級。
・運算飽和:一般而言,應用要不是受運算限制,便是受記憶體限制。這可能會影響給定推論範式中可實現的GOP/TOP,而且在某些情況下,這種影響不容小覷。如果被部署的具體網路的實際性能是1TOP,那麼使用能達到10TOP峰值性能的推論引擎價值就不大。
在此基礎進一步考量到訪問元件中內部SRAM的能耗大約在幾微微焦耳(Pico-joule),遠低於訪問外部DRAM的能耗。
可以考慮將TPUv1作為架構示例,TPUv1內建一個65,536INT8 MAC單元,與28MB的晶片記憶體結合,用於儲存中間啟動值。權重從外部DDR提取。TPUv1的理論峰值性能是92TOPS。
TPU是其中一種非常普遍的Tensor加速器(圖1),它使用複雜的編譯器來調度圖形運算,對於特定工作負載(引用CNNO的速率達到86TOPS)體現出較好的吞吐效率。然而,CNN的運算/記憶體引用比低於MLP和LSTM。因此可以看出這些特定的工作負載受到記憶體限制(圖2)。在必須將新權重載入到矩陣單元中時會導致流水線停頓,CNN1性能也就會隨之劣化(14.1TOPS)。
神經網路架構對性能有巨大影響,而且對於選擇推論解決方案而言,峰值性能指標的價值微乎其微(除非能為需要加速的特定工作負載實現高水準的效率)。如今,眾多SoC、ASSP和GPU廠商繼續為LeNet、AlexNet、VGG、GoogLeNet和ResNet等經典圖像分類模型推廣性能測試基準。然而,圖像分類任務的實際用例數量有限,而許多時候這種模型只是作為物件偵測與分割等更複雜的任務的後台特徵提取器。
更貼近現實的實際可部署模型的示例包括物件偵測與分割。儘管眾多市售半導體元件標榜可提供數十TOP的性能,而這又與不得不花長時間為YOLOv3和SSD等網路辛苦找尋正式IPS性能基準測試的現狀有何關聯?
大量開發者在首次嘗試設計帶有AI功能的產品時往往以不能滿足性能要求而告終,迫使他們在設計中途遷移到不同的架構上。如果這麼做意謂著需要同時重新構建SOM基板的軟硬體,難度將不可小覷。而本文提及的推論解決方案能在保持處理器和推論加速器架構不變的情況下,提供超過一個數量等級的性能縮放。
2017年Google的一個研發團隊發表了針對移動應用的一類新的模型。MobileNet的優勢在於它能在保持高精度水準的同時,顯著降低運算成本。MobileNet網路採用的重大創新之一是深度可分卷積。在經典卷積中,每個輸入通道對每個輸出通道都有影響。如果有100個輸入通道和100個輸出通道,就有100×100條虛擬路徑。然而對深度卷積而言,由於將卷積層劃分為100個群組,因此只得到100條路徑。每個輸入通道僅與一個輸出通道連接,這樣就能節省大量運算(圖3)。
其結果之一就是MobileNet的運算/記憶體引用比得以下降,這意謂著記憶體頻寬和延遲對實現高輸送量來說具有至關重要的作用。可惜的是,運算效率高的網路未必適合用硬體實現。在理想情況下,延遲應隨FLOP的降低而呈線性比例下降;然而天下沒有免費的午餐,根據圖4中比較,MobileNetv2的運算工作負載不及ResNet50運算工作負載的十分之一,但延遲並未體現出相同的降幅。
從上述的分析中可以看出,延遲並未隨FLOP的降低呈現等比的12倍下降。那麼該如何解決這個問題?如果比較片外通訊/運算比,會發現MobileNet的模式與VGG有很大不同。就DWC層而言,可以看到該比例為0.11。因為PE陣列中的眾多單元猶如資料中心內的「黑暗」伺服器,不從事任何有用的工作,只純粹消耗功耗並占用晶片面積,導致加速器受記憶體限制,效率水準下降(圖5)。
而DPUv1的推出是為了加速常規卷積(以及其他運算),常規卷積要求縮減輸入通道數量。這種縮減更適合用於硬體推論,因為它提高了運算/權重儲存比及運算/啟動值儲存比。從運算能耗與儲存能耗權衡的角度來看,這種做法較妥當。採用ResNet的網路在高性能應用中得到如此廣泛部署的原因之一在於,與眾多傳統的主幹架構相比,使用ResNet能提高運算/記憶體引用比。深度卷積無法實現這樣的通道數縮減,顯示記憶體性能變得更加重要。 為了開展推論,本文將DWC卷積與PWC卷積融合,並將DWC啟動值儲存在晶片記憶體裡,再立即啟動1×1PWC。就原始DPU而言,沒有提供DWC專門的硬體支援,因此效率低於理想水準(圖6)。
為了在硬體中提高DWC性能,針對DPU中的處理單元(PE)的功能進行了修改,並將DWC運算子與點卷積融合。第一層處理完畢一個輸出圖元後,啟動值立即流水線到1×1卷積(透過DPU中的晶片BRAM記憶體),而毋需寫入到DRAM。如此,可以運用這種專用方法顯著提高部署在DPU上MobileNet的效率(圖7)。
透過採用這種改進型DPUv2架構,能夠顯著提高MNv1推論的效率。此外,透過提高晶片記憶體的容量,還能進一步提高它的效率,使之可媲美在ResNet50上獲得的結果。所有結果都是在CPU和硬體架構不變的情況下實現的(圖8)。
較廣泛採用的做法是互不關聯地分別最佳化推論硬體和神經網路模型。應該注意到的是,網路一般使用GPU進行訓練,然後在邊緣部署架構顯著不同的SoC或GPU上。為真正最佳化性能,必須適配硬體,才能高效完成模型(不一定對硬體友好)部署。在這種情況下,自我調整硬體的主要優勢在於該元件提供在流片後繼續聯合演進軟硬體的特有能力。
為進一步理解這個問題,不妨考慮題為《彩券假說》的一篇論文的寓意。在該論文(摘得2019年國際學習表徵大會桂冠的兩篇論文之一)中,作者「詳細闡述了一種假說」,即「含有子網路(中獎彩券)的密集隨機初始化前饋網路,如果單獨訓練,測試精度可媲美經過類似數量(訓練)反覆運算的原始網路」(圖9)。顯然根據這個假說,網路剪枝(Pruning)的前景仍然光明,AutoML等技術將很快為人們指明網路發現與最佳化過程中的「中獎彩券」。
同樣地,為保證在邊緣實現高效、高精度的部署,當今較合適的解決方案仍保留著傳統主幹架構的通道剪枝。這些主幹架構的部署效率也許不高,但這些主幹架構的半自動化通道剪枝可提供較為高效的結果。因此可以將這個假說解釋成:只要選擇的下一個推論架構能讓自身的設計永不過時,便可以輕鬆地找到「中獎彩券」。它能幫助使用者充分發揮未來網路架構和最佳化技術的優勢。
據此,從「彩券假說」衍生出的未來研究有望引領人們開發出新一代剪枝技術,提升更多效率。此外,感覺只有採用可提供多維度可擴展性的自我調整硬體才能收穫這樣的成果。
(本文作者為賽靈思工業、視覺、醫療科學AI系統架構師)