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