神經網絡芯片的未來發展,路在何方?


神經網絡芯片NPU(Neural Processing Unit),是為了專門處理神經網絡算法而存在的。NPU的主要競爭對手,就是大家更熟悉的GPU、特別是英偉達的GPU。

說是競爭對手,不如說統治級的存在更貼切。事實上,在GPU面前,NPU就是個弟弟。GPU憑借成熟的生態和良好的易用性,已經占領了AI芯片領域的大部分市場份額。

面對GPU的統治,NPU能否破局?今天的文章,就為大家解讀四篇來自上一屆DAC大會的NPU論文,也算是為7月份即將召開的新一屆DAC預熱一波。一起來看看在研究者的眼中,NPU的破局之路究竟有哪些。

通用與專用:

不可兼得的魚與熊掌?


神經網絡芯片的未來發展,路在何方?的圖1

標題意譯:支持細粒度任務劃分的基于脈動陣列的神經網絡處理器

一句話總結在架構設計中引入少量的額外電路,使得脈動陣列能夠支持細粒度的任務劃分;通過讓一個神經網絡處理器同時完成多個網絡模型運算的方式,實現了硬件資源利用率的顯著提升。

技術細節:

對于神經網絡加速器設計,通用性與專用性間最佳的平衡點究竟在哪?這是學術界與工業界都頗為關注的難題。

之前介紹過的脈動陣列結構來說,當用脈動陣列來完成矩陣乘法時,數據流呈現出很規則、工整的特征,與之對應的是十分簡單的控制邏輯。得益于此,脈動陣列結構在神經網絡加速器架構中是非常常見的一個選擇,比如我們可以在Google TPU等產品中看到它的身影。

但這種簡潔其實是一把雙刃劍,脈動陣列在處理網絡模型時常常會面臨因靈活性差導致的硬件資源利用率不夠高的困境。而這篇論文便在這一問題上提供了一種新的思路。

神經網絡芯片的未來發展,路在何方?的圖2


在傳統的脈動陣列中,由于缺少復雜的控制邏輯,數據傳輸過程是很死板的:只有當數據從陣列的一側傳遞到另一側,整個傳遞過程才能被判定為結束。

而通過引入“水平邊界線”和“垂直邊界線”的概念,一個大的脈動陣列結構在功能上被劃分為二至四個子結構。“水平/垂直邊界線”分別定義了水平/垂直數據傳輸的終點/起點。通過設定這兩種分界線的位置,陣列能夠被根據目標應用的需求靈活地被劃分。

神經網絡芯片的未來發展,路在何方?的圖3


為了呼應動態劃分的思路,數據通路也被相應地擴展了:相鄰的處理單元間的數據傳輸原本只支持向右和向下兩個方向,如今則是四個方向都成為了可能。

如何用盡可能少的硬件資源實現上述邏輯呢?作者選擇了利用計數器來實現“水平邊界線”這個概念:當水平數據傳輸的次數達到了設定值,傳輸行為便會停止。

除了微架構創新本身,文章里還能看到很多頗具啟發性的“小心機”。

一方面是動態的硬件資源分配:當一個神經網絡模型的處理完成后,硬件資源將根據其余的處理任務重新進行分配,避免硬件資源的浪費。

另一方面是自動化的思想:通過開發調度器,根據待處理的神經網絡模型自動地尋找最佳的分界線設置,實現最佳的處理效果。

至于通用性,脈動陣列真的注定與通用性無緣嗎?此前一個取得了顯著進展的思路來自2020年HPCA的最佳論文SIGMA:用數個由網絡連接的鏈狀運算單元來取代二維的陣列,以實現更靈活的脈動式運算;而此研究提供了另一個思路,讓我們仍然可以相信脈動陣列能帶我們走向更高性能的神經網絡加速器設計。

NPU的自動設計:

無稽之談還是確有其事?

神經網絡芯片的未來發展,路在何方?的圖4

標題意譯:神經網絡加速器架構搜索技術

一句話總結:本文實現了對于神經網絡加速器的架構設計空間的高質量的自動探索:通過更好地為搜索問題建模,并有效地將對于調度方案的探索任務從架構設計的探索任務中解耦出來,NAAS生成的架構設計擁有非常優越的性能,成功實現了在功耗、時延等評價標準下超越一些具有代表性的既有設計。

技術細節:

芯片設計里有一個概念,叫設計空間探索。用大白話講,它的意思就是在很多種可能里,選擇最好的方案。

就拿神經網絡舉例,它有各種模型、各種參數,也會對應各種NPU芯片的實現方式。所以如何根據模型和參數,自動確定最優化的芯片架構,就是設計空間探索的重要意義

要想實現對于神經網絡加速器的架構設計空間的高質量的自動探索,目前主要的難點有兩個:如何有效地定義探索空間,以及如何高效地完成探索任務。

打個比方,如果將搜索的范圍局限于歐洲大陸,那么即使花上再多時間、找遍每一寸土地,也不可能發現新大陸。搜索的方式方法也非常重要:由于探索空間很大,啟發式的尋找(比如根據沿途收集的信息不斷調整航線)很可能比地毯式的搜索(比如根據經緯度一處處地排查)來得可行得多。

神經網絡芯片的未來發展,路在何方?的圖5


NAAS為什么能比現有的NPU自動化設計工具做得更好?因為它成功地將架構的探索任務與調度方案的探索任務相解耦,前者解決的是「架構該怎么定」的問題,而后者解決的是「定下的架構該如何完成運算」的問題。

定義前者時,又可以將探索任務其進一步地分為兩個子任務:硬件資源的數量、它涵蓋了處理單元的數量、一二級緩存的容量大小、硬件的連接方式,比如運算單元的連接方式等,而這是此前的研究所忽略的。因此,這樣的定義方式增大了探索空間,大大提高了“發現新大陸”的可能性。

此外,作者采用了一種基于生物學理論的進化算法來漸進式地尋找最優解。當硬件架構由工具自動地確定后,NAAS還研究了如何進一步地優化網絡模型,即軟件側,意圖在硬件表現不受影響的前提下實現更高質量的應用。

通過將NAAS與神經結構搜索技術(Neural Architecture Search, NAS)交互,軟硬件技術層面上的閉環或許會帶來更多可能:當客戶 數據成為了唯一的成本,神經網絡模型搭建和硬件實現都能由計算機高質高效地完成,這樣基于神經網絡的解決方案將在越來越多的應用場景中受到青睞。

近似計算:

沒人能拒絕免費的午餐

神經網絡芯片的未來發展,路在何方?的圖6

標題意譯:低硬件成本的近似乘法器誤差補償技術

一句話總結:作者分析了一種常用的近似乘法器設計所導致的誤差,引入了可控制變量的概念對該誤差進行補償,并給出了關于該變量的取值與補償效果間的關系的數學證明,能夠在不引入大量額外電路開銷的前提下,有效彌補近似乘法器帶來的神經網絡模型精度下降。

技術細節:

目前,大部分神經網絡模型都伴隨著巨大的運算量,而其中占比很大的計算類型是乘累加運算。一個熱點方向,就是用近似乘法器取代精確乘法器,從而立竿見影地降低功耗。

但是用這種“近似計算的方法”必然會引入計算誤差,進而導致神經網絡模型精度的下降,這無異于“撿了芝麻丟了西瓜”。

如何規避這部分負面影響?重新訓練神經網絡模型是一個較為主流的選擇。

重訓練的本質是:讓神經網絡模型通過參數的調整,自行“消化”掉近似乘法器帶來的誤差,保證最終的計算結果與之前的幾乎一致。

然而,重訓練也有不少缺點。首先,神經網絡模型的「訓練」過程往往伴隨著比「推理」大得多的計算量。因此,重訓練有悖于我們通過近似計算技術節約功耗的這個初衷。但最為致命的是,重訓練并不完全消除近似計算的誤差。這是因為誤差的產生與輸入數據有關,重訓練無法讓網絡模型掌握廣義上的抑制誤差的能力。

所以,通過近似計算降低功耗只能成為一紙空談了嗎?

在這篇論文里,就提出了抑制近似計算造成的誤差的算法,以及相應的硬件實現。

具體的思路是,我們可以在近似計算的結果上加上一個補償量來模擬精確結果,并將這個變量稱為“可控制變量”。通過嚴謹的數學推導,作者證明了:當這個可控制變量的取值滿足一定的條件時,經補償后的近似結果將非常接近精確結果(此時,誤差的均值為零,且方差可以取到最小值)。

同時作者指出,只需要極小的電路開銷即可實現對于該誤差補償技術的硬件支持。

以基于脈動陣列的神經網絡處理器作為目標案例:該補償技術的硬件實現僅需要往二維陣列中擴展一列處理單元。

神經網絡芯片的未來發展,路在何方?的圖7


根據測試結果,在模型的精度平均只下降了0.16%的微小代價下,NPU的功耗降低了24%。值得注意的是,近似乘法器的應用并不局限于某一特定的處理器架構,所以這種思路或許也可以擴展到其他的場景。

此外,研究的整體思路屬于非常典型的“軟硬件協同設計”。大到架構設計、小到NPU設計,軟硬件協同設計都稱得上是當下一大主流的設計理念,這也是和大家分享這篇論文的另一個原因。

如何評估一個NPU設計:

又快又準的那種?

神經網絡芯片的未來發展,路在何方?的圖8

標題意譯:支持系統級性能評估的NPU生成平臺

一句話總結:Gemmini的目的不僅僅是生成NPU本身,更是支持對于包括host CPU、存儲資源在內的整個硬件系統的配置,使用者能夠從系統的角度,便捷且準確地評估硬件性能,通過協調系統中各組件的配置來實現最優的設計。

技術細節:

有過裝機經驗的讀者朋友們肯定深有體會:單個組件的優異性能并能保證整個硬件系統就會有理想的性能——因為后者并不是前者的簡單疊加

同樣的,一個NPU在實際的應用中也不是獨立工作的,而是需要與系統中的其他硬件相配合。

“生淮南則為橘,生于淮北則為枳”,有沒有可能在NPU的設計階段就將其未來的工作環境考慮在內,從而設計出“實用”的NPU呢?

這個來自伯克利和MIT的工作給出了答案。

通過指定參數配置來便捷地生成NPU的軟件框架與平臺并不少見,但是Gemmmini顯然往前邁了一大步:可配置的不僅僅局限于加速器中的MAC陣列和池化單元,而是涵蓋了整個硬件系統的各組成部分——從host CPU到存儲體系均為可配置的對象。

神經網絡芯片的未來發展,路在何方?的圖9


Gemmini能夠評估生成的加速器的性能。這一評估是基于系統層面的,這意味著各種影響性能的潛在因素,比如組件間的資源沖突、緩存的一致性等問題都能夠被考慮在內,所以評估結果是相當可靠的。

從另一個角度來說,通過使用Gemmini平臺,我們能夠清晰、直觀地看到系統中的其他部分將如何影響、制約加速器達到理想的性能表現,進而通過不斷地調整各組件的配置,得到整體性能最優的系統設計。

伯克利作為RISC-V的搖籃,其在結構體系方面的輝煌歷史自然不必多言。由伯克利的研究團隊出品的Gemmini充分展現了研究者們扎實的技術積累,令人深感格局大開,而Gemmini也憑借其開創性,一舉奪得本屆DAC的最佳論文獎。

小結

面對GPU的統治, NPU能否破局?

這個問題,沒有人知道答案。但從學術會議和相關研究不斷攀升的熱度可以看到,盡管GPU目前贏得了市場,但我們還遠遠沒有進入蓋棺定論的階段。

AI時代的第一個十年,GPU占了絕對的上風。但下一個十年呢?

文章來源:老石談芯

免責聲明:本文系網絡轉載,版權歸原作者所有。如涉及版權,請聯系刪除!

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
1