• 正文
    • 嵌入式NPU
    • 特定應(yīng)用的NPU
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

DMS嵌入式加速器和神經(jīng)網(wǎng)絡(luò)(二)

2022/02/22
538
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

DMS嵌入式加速器和神經(jīng)網(wǎng)絡(luò)(一)

繼續(xù)Seeing Machines對DMS商業(yè)化落地所遇到的挑戰(zhàn)的總結(jié)。

嵌入式NPU

在傳統(tǒng)CPU上執(zhí)行NN的尷尬適配,加上較小的晶體管設(shè)計節(jié)點的制造成本呈指數(shù)級上升(在可預(yù)見的未來,在對成本敏感的汽車領(lǐng)域,摩爾定律似乎已總結(jié)),導(dǎo)致了過去幾年中NPU加速器設(shè)計的寒武紀(jì)大爆發(fā)。

這些新的NPU協(xié)處理器有晶體管分組和內(nèi)存安排,試圖優(yōu)化執(zhí)行任何類別的NN,芯片設(shè)計者認(rèn)為這將受到算法開發(fā)人員的歡迎。不同的設(shè)計因產(chǎn)品所尋求的定位而不同。一些NPU作為獨立的協(xié)處理芯片出售,另一些是可授權(quán)的內(nèi)核。有些采用新的芯片技術(shù),如使用納米級電阻的內(nèi)存計算。

現(xiàn)在的嵌入式NPU設(shè)計在數(shù)學(xué)運算符的數(shù)量和種類、這些運算符的精度、網(wǎng)絡(luò)執(zhí)行時數(shù)據(jù)塊的排列、獲取、緩存和傳播方式,以及在不需要DDR內(nèi)存訪問或大量數(shù)據(jù)傳輸的情況下可在NPU內(nèi)核內(nèi)進行本地處理的最大網(wǎng)絡(luò)規(guī)模方面存在差異。一些設(shè)計還結(jié)合了多個處理pipeline,以增加并行性和吞吐量(當(dāng)然,這是以額外的芯片面積為代價的)。

嵌入式NPU的設(shè)計目的是在低成本、小尺寸、低功耗的“邊緣”設(shè)備上執(zhí)行NN。與云數(shù)據(jù)中心或工作站的設(shè)計相比,低成本、尺寸和功率的限制對NPU的能力有很大的限制,因此,嵌入式NPU必須根據(jù)具體應(yīng)用的需要做出妥協(xié)。

產(chǎn)品能夠在本地設(shè)備中部署NPU的優(yōu)勢和吸引力給SoC公司帶來了壓力,使其提供帶有NPU加速選項的設(shè)備。然而,這正是這些公司的困難所在。問題是,SoC的設(shè)計周期從概念到發(fā)布通常是2-3年,而NN的最新技術(shù)每幾個月就會發(fā)生變化。

芯片設(shè)計者面臨的風(fēng)險是,他們可以非常容易地鎖定一個不能充分預(yù)見最新技術(shù)發(fā)展的處理架構(gòu)。因此,當(dāng)芯片發(fā)布時(要記住,芯片還需要為市場服務(wù)多年),NPU的設(shè)計在開發(fā)人員希望部署的加速NN方面可能幾乎毫無用處。在這里,我們在前幾節(jié)描述的關(guān)于內(nèi)存帶寬和ISP限制的問題同樣適用;處理pipeline要么遇到效率瓶頸,要么根本無法執(zhí)行開發(fā)者所需的網(wǎng)絡(luò)。兩種結(jié)果都不好。

在今天的市場上,有兩種明顯的NN加速方法。(i)設(shè)計和構(gòu)建自己的定制NPU的公司,或者(ii)那些重新標(biāo)記和重新利用不同類型的處理加速器IP的公司,以更符合NN的處理需要。后者主要是通過重構(gòu)工具鏈來實現(xiàn)的,使它們能夠吸收NN模型。例如,DSP、GPU或矢量處理器經(jīng)常被包裝在“AI”的營銷方案中,并被定位為成熟的NPU。

不過我們必須提醒自己,加速器(一般來說)是SoC公司區(qū)分其產(chǎn)品的主要方式之一。因此,當(dāng)然可以理解為什么半導(dǎo)體公司采用這些“包裝”策略。然而,對于終端客戶和算法開發(fā)人員來說,要想看穿營銷的迷霧,可能非常困難。這是一個充滿陷阱的領(lǐng)域,有很多誤導(dǎo)性的統(tǒng)計數(shù)字和沒提及的內(nèi)容,直到被開發(fā)人員發(fā)現(xiàn)時已經(jīng)太晚了,此時,不幸的客戶發(fā)現(xiàn)自己身處經(jīng)典的“圍墻花園”,在這里,他們的財務(wù)支出、培訓(xùn)和代碼承諾已經(jīng)決定使用選定的SoC進行開發(fā),這意味著更換設(shè)備太昂貴且風(fēng)險太大。

當(dāng)像Seeing Machines這樣的開發(fā)者需要跟上最先進的技術(shù)并開發(fā)新的網(wǎng)絡(luò)時,需要NPU(或任何加速器)無法支持的運營商或網(wǎng)絡(luò)連接架構(gòu)時,其結(jié)果是開發(fā)者無法將一流的算法實現(xiàn)到生產(chǎn)中,或者由于處理效率低下而必須在性能上做出妥協(xié),這需要在pipeline的其他地方加以考慮。

為了說明這一點,下圖顯示了一些SoC對我們開發(fā)的視線追蹤任務(wù)(觀察駕駛員或前座乘客的一只或兩只眼睛,并確定這個人最有可能盯著哪里)執(zhí)行相同的加速功能。值得注意的是,視線追蹤任務(wù)包含了一個具有非正統(tǒng)架構(gòu)的NN。作為參考,圖中還包括在A53 CPU(代碼完全優(yōu)化)上執(zhí)行的相同任務(wù),以及在FOVIO芯片上運行的Occula NPU。

各種SoC中視線追蹤的加速實現(xiàn)

執(zhí)行延遲顯示了加速器硬件的不同設(shè)計是如何對處理效率結(jié)果產(chǎn)生巨大影響的。請注意,在這個表格中,我們顯示了以毫秒為單位的延遲,作為最關(guān)鍵的衡量標(biāo)準(zhǔn),而不是TOPS。我們有意顯示了不同的NN加速器的TOPS數(shù)字的變化,以強調(diào)假設(shè)可以單獨使用這個數(shù)字進行任何有意義的和實際的資源規(guī)劃的危險。前面也提高過“吞吐量(或TOPS)可以買到,但延遲必須去爭取”。

例如,60Hz的處理速率要求在16.6ms內(nèi)完成所有的計算任務(wù);同樣,30Hz要求在33.2ms內(nèi)完成。為了把視線追蹤任務(wù)放到一個更廣泛的角度,下圖顯示了在60Hz和30Hz處理期限以虛線疊加的情況下,我們的pipeline中視線追蹤的總體時間分配情況。

視線追蹤與未分配的計算帶寬的例子

在這個圖中,每個黃條表示在視線追蹤之后可用于調(diào)度pipeline中所有其他任務(wù)的剩余時隙。這說明盡可能快地(和有效地)完成任務(wù)的目標(biāo)才是永遠(yuǎn)重要的。這都是為了確保黃條越大越好,以最大限度地保留足夠的資源來執(zhí)行DMS功能堆棧的其余部分,在設(shè)備選擇時,可能還包含尚未開發(fā)的客戶特定功能。

比較表明,有一些加速器和芯片架構(gòu)與我們的pipeline的這一特定部分非常不匹配,其中兩個明顯不能使用,第三個不比CPU好。還要注意的是,A53+NEON內(nèi)核在運行這個特定的處理任務(wù)時是相當(dāng)有效的,這主要是因為視線追蹤工作負(fù)載在Seeing Machines為ARM處理器進行了徹底的優(yōu)化(這在很大程度上得益于ARM指令集中的NEON SIMD擴展)。

在任何單機DMS嵌入式系統(tǒng)設(shè)計中,分配給整個DMS引擎的處理預(yù)算可能只有一個A53 CPU核,要求完整的算法堆棧總是在33ms以下執(zhí)行(考慮的不是平均而是最壞情況下的執(zhí)行路徑)。因此,為這項任務(wù)分配9.5ms的時間可能不會很好地利用可用帶寬(9.5ms/33.3ms=29%的CPU利用率)。因此,對加速器的需求很明顯,盡可能地從CPU上卸載處理任務(wù)。

上圖中的數(shù)據(jù),以及前面介紹的關(guān)于RGB-IR處理的內(nèi)存帶寬的數(shù)據(jù),顯示了不同的SoC對于特定任務(wù)的相對性能,目的是強調(diào)芯片營銷并不反映現(xiàn)實。事實是,不同的芯片設(shè)計以非常不同的方式處理NN處理需求,有很大的潛在結(jié)果范圍。在某些情況下,芯片設(shè)計者或算法開發(fā)者可能會很幸運,創(chuàng)造出一個良好的匹配,但在嵌入式世界中,這樣的偶然結(jié)果是非常罕見的。

總之,嵌入式性能在很大程度上是關(guān)于軟件和硬件之間的匹配,或匹配程度。對于嵌入式NPU來說,NPU的設(shè)計如何與特定的NN技術(shù)相匹配才是至關(guān)重要的。

協(xié)同設(shè)計的方法在這一點上,我們很自然地會問,一個NN是否可以被重新開發(fā)以更好地匹配特定的加速器設(shè)計?在某種程度上,答案是肯定的,NN可以被機器學(xué)習(xí)專家重新設(shè)計以更好地適應(yīng)特定的加速器設(shè)計。然而,這條道路絕非易事,也不便宜,而且結(jié)果也很難提前預(yù)測。

一個更好的方法是軟硬件協(xié)同設(shè)計。在這個過程中,NPU和NN同步開發(fā),兩個設(shè)計團隊緊密合作,構(gòu)建一個由硬件和軟件組成的單一優(yōu)化“系統(tǒng)”。請注意,這是與前面討論的通用NPU方法相相反的。

這種方法的一個問題是,NPU的設(shè)計需要頻繁迭代,以跟上NN的發(fā)展。Seeing Machines為它的FOVIO芯片選擇了FPGA技術(shù),以便能夠快速探索DMS解決方案的成本與性能空間,我們知道所涉及的市場時間框架,也知道我們需要深入優(yōu)化嵌入,以便使單機DMS解決方案具有競爭力。

FPGA技術(shù)允許采用“算法優(yōu)先”的設(shè)計方法來應(yīng)對嵌入的挑戰(zhàn),并在某種程度上使我們的AI開發(fā)人員能夠?qū)⒆顝姶蟮腘N技術(shù)整合進來,并使這些網(wǎng)絡(luò)仍能非常有效地運行。

特定應(yīng)用的NPU

“特定應(yīng)用(application specific)”指的是旨在為有限和特定目的服務(wù)的芯片設(shè)計,因此能夠避免因試圖支持其他未知應(yīng)用而導(dǎo)致的設(shè)計臃腫。采取協(xié)同設(shè)計的方法自然會導(dǎo)致解決方案只做他們需要做的事情,因此傾向于與他們的目標(biāo)應(yīng)用領(lǐng)域匹配得很好。

相比之下,“通用”的NPU將被設(shè)計為服務(wù)于廣泛的(通常是不同的)網(wǎng)絡(luò)架構(gòu)和運營商。當(dāng)芯片制造商決定他們的通用NPU的需求時,他們最終采用的特征和功能是由研究領(lǐng)域的技術(shù)水平和他們的終端客戶在該時間點上使用的流行網(wǎng)絡(luò)所引導(dǎo)的。當(dāng)涉及到NN時,沒有任何“標(biāo)準(zhǔn)”本身可以使他們的需求捕獲成為一個簡單的過程,但在研究和創(chuàng)新方面肯定有一些長期運行的線索,它們針對某些應(yīng)用領(lǐng)域,如資源有限的嵌入式系統(tǒng)。最近的兩個例子是谷歌的MobileNetV3 和Meta(前Facebook)的RegNet。

當(dāng)定義一個通用的NPU架構(gòu)時,面臨的挑戰(zhàn)是建立一個小而高效的芯片設(shè)計,能夠預(yù)測NN的未來,盡管在工業(yè)界和學(xué)術(shù)界的研究和開發(fā)領(lǐng)域仍然是一個快速發(fā)展的領(lǐng)域,具有高度的不確定性。鑒于NN創(chuàng)新周期處于早期階段,芯片供應(yīng)商被迫廣撒網(wǎng),以確保在2-3年后,當(dāng)他們出樣時,應(yīng)用領(lǐng)域沒有發(fā)生地震式的變化。這當(dāng)然會導(dǎo)致相當(dāng)大的容量和能力,而這些容量和能力必然是次優(yōu)的和低效的。

另一方面,特定應(yīng)用的NPU可以以一種非常狹窄和有針對性的方式來定義。圍繞包括什么和排除什么的關(guān)鍵決定是由算法設(shè)計驅(qū)動的。這通常意味著對數(shù)學(xué)運算符集進行刪減,使之盡可能地與專有算法相匹配。我們?nèi)匀恍枰恍┛臻g和靈活性,以適應(yīng)未來的變化,但在采取共同設(shè)計方法時,這是一個完全可行的權(quán)衡,這也是我們在Seeing Machines多年來一直在做的。一個簡單的例子是,特定應(yīng)用的NPU的運行參數(shù)可以在不增加芯片面積的情況下實現(xiàn)運行時可編程。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄