在過去十幾年里,深度神經(jīng)網(wǎng)絡(DNN)得到了廣泛應用,例如移動手機,AR/VR,IoT和自動駕駛等領域。復雜的用例導致多DNN模型應用的出現(xiàn),例如VR的應用包含很多子任務:通過目標檢測來避免與附近障礙物沖突,通過對手或手勢的追蹤來預測輸入,通過對眼睛的追蹤來完成中心點渲染等,這些子任務可以使用不同的DNN模型來完成。像自動駕駛汽車也是利用一系列DNN的算法來實現(xiàn)感知功能,每個DNN來完成特定任務。然而不同的DNN模型其網(wǎng)絡層和算子也千差萬別,即使是在一個DNN模型中也可能會使用異構(gòu)的操作算子和類型。
此外,Torch、TensorFlow和Caffe等主流的深度學習框架,依然采用順序的方式來處理inference 任務,每個模型一個進程。因此也導致目前NPU架構(gòu)還只是專注于單個DNN任務的加速和優(yōu)化,這已經(jīng)遠遠不能滿足多DNN模型應用的性能需求,更迫切需要底層新型的NPU計算架構(gòu)對多模型任務進行加速和優(yōu)化。而可重配NPU雖然可以適配神經(jīng)網(wǎng)絡層的多樣性,但是需要額外的硬件資源來支持(比如交換單元,互聯(lián)和控制模塊等),還會導致因重配網(wǎng)絡層帶來的額外功耗。
開發(fā)NPU來支持多任務模型面臨許多挑戰(zhàn):DNN負載的多樣性提高了NPU設計的復雜度;多個DNN之間的聯(lián)動性,導致DNN之間的調(diào)度變得困難;如何在可重配和定制化取得平衡變得更具挑戰(zhàn)。此外這類NPU在設計時還引入了額外的性能標準考量:因多個DNN模型之間的數(shù)據(jù)共享造成的延時,多個DNN模型之間如何進行有效的資源分配等。
目前的設計研究的方向大體可以分成以下幾點:多個DNN模型之間并行化執(zhí)行,重新設計NPU架構(gòu)來有效支持DNN模型的多樣性,調(diào)度策略的優(yōu)化等。
DNN之間的并行性和調(diào)度策略:
可以使用時分復用和空間協(xié)同定位等并行性策略。調(diào)度算法則大概可以分為三個方向:靜態(tài)與動態(tài)調(diào)度,針對時間與空間的調(diào)度,以及基于軟件或者硬件的調(diào)度。
時分復用是傳統(tǒng)優(yōu)先級搶占策略的升級版,允許inter-DNN的流水線操作,來提高系統(tǒng)資源的利用率(PE和memory等)。這種策略專注調(diào)度算法的優(yōu)化,好處是對NPU硬件的改動比較少。
空間協(xié)同定位則專注于多個DNN模型執(zhí)行的并行性,也就是不同DNN模型可以同時占用NPU硬件資源的不同部分。這要求在設計NPU階段就要預知各個DNN網(wǎng)絡的特性以及優(yōu)先級,以預定義那部分NPU硬件單元分配給特定的DNN網(wǎng)絡使用。分配的策略可以選擇DNN運行過程中的動態(tài)分配,或者是靜態(tài)分配。靜態(tài)分配依賴于硬件調(diào)度器,軟件干預較少??臻g協(xié)同定位的好處是可以更好的提高系統(tǒng)的性能,但是對硬件改動比較大。
動態(tài)調(diào)度與靜態(tài)調(diào)度則是根據(jù)用戶用例的特定目標來選擇使用動態(tài)調(diào)度或者靜態(tài)調(diào)度。
動態(tài)調(diào)度的靈活性更高,會根據(jù)實際DNN任務的需求重新分配資源。動態(tài)調(diào)度主要依賴于時分復用,或者利用動態(tài)可組合引擎 (需要在硬件中加入動態(tài)調(diào)度器),算法則多數(shù)選擇preemptive策略或者AI-MT的早期驅(qū)逐算法等。
對于定制化的靜態(tài)調(diào)度策略,可以更好的提高NPU的性能。這種調(diào)度策略是指在NPU設計階段就已經(jīng)定制好特定硬件模塊去處理特定神經(jīng)網(wǎng)絡層或者特定的操作。這種調(diào)度策略性能高,但是硬件改動比較大。
異構(gòu)NPU架構(gòu):
結(jié)合動態(tài)可重構(gòu)和定制化的靜態(tài)調(diào)度策略,在NPU中設計多個子加速器,每個子加速器都是針對于特定的神經(jīng)網(wǎng)絡層或者特定的網(wǎng)絡操作。這樣調(diào)度器可以適配多個DNN模型的網(wǎng)絡層到合適的子加速器上運行,還可以調(diào)度來自于不同DNN模型的網(wǎng)絡層在多個子加速器上同步運行。這樣做既可以節(jié)省重構(gòu)架構(gòu)帶來的額外硬件資源消耗,又可以提高不同網(wǎng)絡層處理的靈活性。
異構(gòu)NPU架構(gòu)的研究設計可以主要從這三個方面考慮:
1)如何根據(jù)不同網(wǎng)絡層的特性設計多種子加速器;
2)如何在不同的子加速器之間進行資源分布;
3)如何調(diào)度滿足內(nèi)存限制的特定網(wǎng)絡層在合適的子加速器上執(zhí)行。
審核編輯 :李倩
-
加速器
+關注
關注
2文章
827瀏覽量
39127 -
神經(jīng)網(wǎng)絡
+關注
關注
42文章
4814瀏覽量
103648 -
算力芯片
+關注
關注
0文章
54瀏覽量
4808
原文標題:ADS算力芯片的多模型架構(gòu)研究
文章出處:【微信號:iotmag,微信公眾號:iotmag】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論