• 正文
    • 神經網絡簡介
    • 內存帶寬和神經網絡
  • 相關推薦
申請入駐 產業(yè)圖譜

DMS嵌入式加速器和神經網絡(一)

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

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

神經網絡簡介

機器學習領域,如今也被稱為深度學習,對于許多類算法尤其是計算機視覺領域的算法來說,其性能已經發(fā)生了一步步的變化。“深度學習”這一術語最終包含了有效發(fā)現(xiàn)數據中存在的關系并將其編碼為神經網絡(NN)“模型”的技術。這些模型是由一組節(jié)點(或人工神經元)和節(jié)點之間的連接(或人工突觸)組成的數學構造。每個節(jié)點實現(xiàn)一個簡單的數學函數(或“激活”函數),應用于輸入并通過輸出傳遞給下一個節(jié)點。網絡的結構通常是共享一個共同激活函數的節(jié)點層。分層方法適合于這樣的實現(xiàn):各層作為處理pipeline中的離散階段進行處理,從輸入層到“隱藏”層,再到最后的輸出層。

深度學習網絡的“深度”是指可能有幾十個隱藏層。更奇特的網絡結構允許超越相鄰層的連接,或者可能有遞歸(或循環(huán))連接,允許反饋循環(huán)和有狀態(tài)的記憶效應。

網絡的設計維度包括:(i)每層激活函數的類型,(ii)應用于每個節(jié)點的輸入和激活函數的縮放和閾值系數,(iii)整體節(jié)點和層的連接(或拓撲結構),(iv)每層的節(jié)點數和整體層數。這些設計維度是算法開發(fā)和訓練過程中的“自由變量”。深度學習技術的神奇之處在于訓練算法能夠搜索這些自由變量的所有組合的廣闊空間,并且只用一點數據就能迅速收斂到網絡設計,將數據中的關系納入到NN模型中。因此,“訓練環(huán)境”往往是最先進的深度學習技術的關鍵成分,并被認為是任何技術公司的寶貴IP。

今天,有許多眾所周知的網絡“類別”。這些網絡拓撲結構已經被研究證明優(yōu)于其他傳統(tǒng)類別(當與該類別的專門訓練環(huán)境相配時)。網絡類別被賦予了一些名稱,這些名稱在機器學習界是眾所周知的(例如,LSTM、MobileNet、ResNet和其他許多名稱)。

在過去的十年里,網絡類別一直是研究熱點,并迅速發(fā)展。這種演變是由于網絡面臨的壓力:(i)在更少的計算周期內進行訓練,使用更少或更低質量的訓練數據,(ii)為現(xiàn)有類別提供卓越的性能結果,同時(iii)產生更小和執(zhí)行更快的網絡,從而減少嵌入式處理成本。這構成了Seeing Machines JGEP優(yōu)化周期的一個關鍵部分。

雖然深度學習和NN在學術界有很長的歷史,但它們大約在十年前開始進入商業(yè)產品。這是經典的技術顛覆“S曲線”的開始,它開始于自然語言理解和互聯(lián)網搜索引擎的圖像分類領域。緊隨其后的是用于數據中心(云)的定制NPU加速,包括主要由英偉達的GPU發(fā)展而來的設計、谷歌的定制ASIC解決方案,以及微軟FPGA實現(xiàn)。這些有助于推動“深度學習AI”在許多日常(在線)產品中的最初的大規(guī)模應用。

如今,深度學習的AI已經在很大程度上取代了計算機視覺領域中最好的經典技術。“AI”算法正在為許多新型產品提供動力,不僅在云端,而且在“邊緣”,在本地運行的智能手機和一些物聯(lián)網設備上。用于高效開發(fā)NN的工具包(如TensorFlow、Torch、ONNX和其他)現(xiàn)在已經非常成熟,并催生了一個巨大的開發(fā)者社區(qū),從而產生了一個通常被稱為“AI驅動”的全新產品類別。

雖然這些產品不是真正的智能(它們只是很好地檢測模式),但它們也許因為能夠在從復雜和嘈雜的數據中快速提取有意義和可操作的信息的任務中勝過人類而獲得“AI”的稱號。然而,大多數網絡仍然高度專業(yè)化,只執(zhí)行“有限”的任務,如人臉識別。因此,它們被更準確地稱為“狹義AI”,或者對那些老派的人來說,只是非常好的“專家系統(tǒng)”。

處理成本的挑戰(zhàn)盡管在算法領域有上述的優(yōu)勢,然而,NN并不是沒有缺點的,最重要的是與經典技術相比,處理需求很高。

我們將處理成本(COP)定義為產品成本結構中由算法處理需求直接或間接驅動的那部分。在沒有實際建立競爭解決方案的情況下,COP可能是一個難以估計的數值,因為它不僅包括專門用于執(zhí)行數字計算的額外芯片的成本,還包括諸如額外的PCB空間、熱和電源管理方面的成本,如電容電感、電源管理IC、額外的板層、更多的引腳、更大的散熱片、外包裝材料,以及任何額外的IP許可(如第三方加速器設計)。

COP是一個主要障礙,它限制了NN的尺寸、性能,以及最終NN向低功耗、低成本產品的擴散。這一障礙是由于以下事實:(i)NN有數據流和運算符,無法在傳統(tǒng)的馮諾依曼CPU設計(如ARM或英特爾x86內核)上有效執(zhí)行,以及(ii)通用NPU不一定是良方,可能會給任何SoC增加成本和功率需求。

內存帶寬和神經網絡

現(xiàn)在讓我們把前一章的內存帶寬數字作為處理成本的主要維度之一來看。我們將考慮嵌入式系統(tǒng)中使用的一些常見的NN,并了解從內存帶寬的角度來看,在給定的處理速度下運行一個量化模型(8位)需要什么。請注意,我們將在下一節(jié)中更詳細地探討NN的執(zhí)行加速問題。

在沒有本地/內部緩存的情況下,使用INT8量化模型的普通NN對不同處理速率的原始內存帶寬要求

上圖代表了最壞的情況,因為它假設一個加速器沒有本地緩存可以被調用以減輕DDR內存的訪問。如果能巧妙地利用本地緩存,這些數字可以減少很多,有時至少減少50%或更多。當然,情況并不總是如此。事實上,除非整個網絡可以在緩存外執(zhí)行,否則這種緩存有時是無法使用的。很多時候,考慮到DMS在30fps(有時更高)下的實時處理的性質,網絡需要謹慎地調度,以滿足DMS結果的33ms的周期性限制(或當處理速率更高時,甚至更短的周期性期限)。這嚴重限制了在連續(xù)區(qū)塊中 “批量”運行網絡的可能性,而許多可用的加速器已經為此進行了優(yōu)化。理解這一點的另一種方式就是那句常被說的“吞吐量可以買到,但延遲必須去爭取”。加速器的設計是為了最大限度地提高吞吐量,但在這樣做的過程中,它們可能會延長實時任務的延遲,并經常無法按時完成任務。

拋開板載緩存對DDR帶寬的改善,可以很容易地看到,以更高的處理速度運行任何這些網絡,很快就會開始需要大量的內存帶寬。雖然Seeing Machines的算法并不完全是基于這個表格中列出的網絡,但它有助于說明在這些較高的處理速度下是多么容易迅速消耗這類設備的資源預算(這就是Occula NPU和我們開發(fā)在Occula上運行的定制網絡的原因)。有很多網絡(實際上是大多數)不需要運行任何接近“跟蹤”算法所需的速率。例如,一些DMS設計需要實現(xiàn)10個或更多的網絡,這些網絡以截然不同的速率并發(fā)執(zhí)行。

在不同的處理速度下分配給各種網絡的相對帶寬大小

上圖所示的是一個直觀的例子,每個框的大小代表了可用內存帶寬對不同網絡的相對分配(不同顏色)和它們所需的處理速率(不同層)。對于任何給定的任務,NN的類型不在本文的討論范圍之內,只是說不同的NN具有不同的性能特征,因此與所需特征的KPI直接相關。算法要求和性能將決定網絡的類型和所需的最低處理速率。處理pipeline必須確保每個網絡的執(zhí)行速度不低于其要求的處理速度,并始終能夠滿足其周期的時限(即批處理不是一個自動選項)。

相關推薦

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