「AI」】eFPGA更適用於AI?

「AI」】eFPGA更適用於AI?

人工智能(AI),特別是機器學習正在重塑世界的運作方式,也為工業和商業帶來了無數的機會,但支持神經網絡演進、多樣性、訓練和推理的最佳硬件架構尚未確定。本文針對這一領域,就嵌入式FPGA(eFPGA)的應用做一些探討。

人工智能應用領域涵蓋多個不同的市場,如自動駕駛、醫療診斷、家用電器、工業自動化、自適應網站、財務分析和網絡基礎設施。

這些應用(特別是在邊緣實施時)需要高性能和低延遲才能成功響應實時變化。它們還需要低功耗,這就使能源密集型雲解決方案無法使用。另外,更深層的要求是:這些嵌入式系統即使在沒有網絡連接到雲的情況下,也總是處於開啟狀態並準備好進行響應。這些因素的加在一起,需要改變傳統的硬件設計方式。

神經網絡

許多算法可用於機器學習,但當今最成功的算法是深度神經網絡。受生物處理過程和結構的啟發,深度神經網絡可以在前饋中採用10層或更多層。 每一層使用虛擬神經元對一組輸入執行加權求和,然後將結果傳遞給下一層中的一個或多個神經元。

雖然有一種常見的核心方法來構建最深的神經網絡,但目前還沒有一種適用於深度學習的通用體系結構。 越來越多的深度學習應用將合併不基於模擬神經元的元素。 隨著技術的不斷髮展,許多不同的架構將會出現。 就像有機大腦本身一樣,可塑性是任何旨在將機器學習融入其產品設計的組織的主要要求。

訓練和推理

有機大腦和人工智能之間的一個重要差異是,當訓練好的網絡被要求作出決定時,能夠區分諸如訓練和推理階段等活動。 在2000~2010年,人們發現了有效的技術,可以一次對多個層次進行訓練。這些技術依賴於通常由使用許多處理器來完成任務的服務器提供的巨大計算能力。訓練過程在後臺進行 - 通常在雲端進行 - 不需要實時生成結果。

對於推理,計算需求低於訓練,但通常需要在大多數現實世界的應用程序中提供實時響應。 高能效並行處理是推理系統的關鍵要求,因為許多系統不具備永久的外部電源。

通常,訓練要求用於計算神經權重的浮點運算具有高精度,在大多數情況下,32位浮點已被證明是足夠的精度需求。

對於推理來說,錯誤累積的可能性較小,通常,8位定點算術就足夠了,對於某些連接,4位分辨率不會顯著增加錯誤,系統將受益於重新配置數據路徑的能力,以便他們能夠以4位或8位的精度並行處理多個數據流。但是,設計人員希望保留在需要的地方結合高精度算術執行單元的能力。

顯然,機器學習系統需要提供高性能和可塑性組合的硬件基質。

機器學習基質

許多處理結構可用於支持高性能機器學習,但是對於實時嵌入式系統來說,由於功耗和性能的原因,有些將在早期階段被排除。

在2010~2015年期間,通用圖形處理單元(GPGPU)成為訓練和推理的熱門選擇。GPGPU提供數百個片上浮點單元,能夠並行處理多個神經元的輸入,比通用CPU集群的輸入快得多。

然而,將GPGPU應用於深度學習架構存在一些缺點,這些設備主要用於加速2D和3D圖形應用程序,這些應用程序使用均勻且可預測的內存訪問模式,它們的結構支持算術運算密集型算法,這些算法可以很容易地在存儲器中緊密地組合在一起,然後可以合理高效地處理卷積神經網絡層。然而,其他類型的層可能會有麻煩,因為他們更加強調神經元之間的數據傳輸,從而使本地存儲器架構效率降低,這樣就降低了性能和能效。

具有定製邏輯和內存管理器的ASIC可以克服GPGPU在實施深度學習系統時存在的挑戰和瓶頸。ASIC針對神經網絡代碼中遇到的不同訪問模式進行調整的內存管理單元可以在提高整體速度方面做得更好。在諸如卷積神經網絡(CNN)層的結構中,通過不將數據傳入和傳出本地或中間存儲器的方式,可以實現節能。

與基於軟件的處理器相比,ASIC的問題是其相對不靈活。我們可以對多種深度學習結構進行原型設計,然後選擇基於硅集成的優化選項。一個特定的應用程序可能需要部署更多的卷積層或增加濾波器內核的複雜性來處理特定類型的輸入,支持這種複雜性可能需要相對於其他硬件加速器而言增加數量龐大的濾波器內核處理器,這種結構可以通過ASIC實現,但它很可能不適合改變算法或相鄰應用。

FPGA具有實現定製處理器和內存管理技術的諸多優勢,它不需要將實現侷限在特定的不變硬件結構。今天,許多FPGA架構提供了完全可定製的邏輯和數字信號處理(DSP)引擎的整合,可支持固定和浮點運算。在許多情況下,DSP引擎採用由8位或16位單元組成的構建塊方法,這些方法可以將它們組合起來以支持更高精度的數據類型,通過在查找表(LUT)中實現的邏輯,可以適應低精度需求。

對邏輯陣列進行返工的能力使FPGA很容易調整並行處理器的結構和它們之間的路由,以滿足應用的特定需求。如果訓練結果指出如何擴展或重新佈置圖層以提高性能,那麼其自由度仍然有調整空間。然而,可編程邏輯陣列相對低的效率可能意味著,當應用程序確實需要網絡的某些高吞吐量專用功能時,用戶必須在神經網絡內不同層之間的性能共享功能上妥協。 一種方法是使用更小的ASIC來擴展FPGA,從而為常用功能(例如卷積內核或max-pooling計算)提供加速。

將FPGA架構嵌入片上系統(SoC)可以克服獨立FPGA和ASIC的缺點,以及在它們之間傳遞數據的問題。 嵌入到ASIC中的一個或多個FPGA提供了動態調整神經網絡性能的能力,提供了充分利用定製引擎所需的高數據傳輸帶寬。

eFPGA橫空出世

基於此,嵌入式FPGA應運而生。eFPGA概念第一次進入大眾視野是在2014年,由UCLA的Cheng C. Wang,Fang-Li Yuan和Dejan Markovic等人在ISSCC發表的文章,“A Multi-Granularity FPGA With Hierarchical Interconnects for Efficient and Flexible Mobile Computing”。

這篇文章中,作者通過創造性地設計互聯單元,一舉解決了FPGA的功耗、性能和成本受到佈線資源限制的問題,從而使得eFPGA集成到SoC中真正變為可能,而該論文也因其突出貢獻獲得了ISSCC Lewis Award。之後,Cheng C. Wang,Fang-Li Yuan和Dejan Markovic就利用該論文中的成果成立了Flex Logix,並推廣eFPGA的概念,力爭使其實現商用化。

到了2017年,eFPGA的概念已經獲得了業界的廣泛認可,而該領域的公司也在慢慢變多。到目前為止,業界主要供應商包括:Flex Logix、Achronix、Menta、QuickLogic、NanoXplore、Efinix和Adicsys。

以上這7家公司采采取3種商業模式和技術發展途徑:Achronix同時提供FPGA和eFPGA;Menta、NanoXplore和Adicsys提供軟IP eFPGA,Flex Logix全部是硬核eFPGA,QuickLogic採用了GloablFoundry工藝的硬IP,Efinix是硬IP技術。

據悉,中芯國際已經與QuickLogic合作,基於中芯國際40nm低漏電 (40LL) 工藝,推出了ArcticPro 嵌入式 FPGA技術,是業界首個在中芯國際40LL技術節點上提供的eFPGA IP。

與傳統實現方案相比,eFPGA可以實現吞吐量和可重編程性之間的最佳平衡,並提供真實世界機器學習系統所需的性能。

片上集成FPGA模塊的能力還通過以下方式節省了大量的硅片面積:

1)去除了與獨立FPGA關聯的耗電量大的I / O

2)將固定功能移至更高效的ASIC模塊

3)將重複功能轉換為自定義塊。

機器學習中的eFPGA

由於AI/機器學習屬於高端應用,其面臨著算法的變化,是一個高計算需求的應用。

eFPGA是一種高度靈活的解決方案,可支持高性能機器學習應用程序所需的數據吞吐量。 不同的架構為設計人員提供了按照應用程序的要求混合和匹配eFPGA功能的能力。 一些核心功能,包括基於四輸入LUT的邏輯,用於寄存器文件和類似用途的小型面向邏輯的存儲器(LRAM),較大的塊RAM(BRAM)以及可配置的DSP模塊。

核心功能還可以通過定製模塊進行增強,這些定製模塊提供了更多專用功能,這些功能在可編程邏輯中是硅密集型的,例如為流水線訪問優化的三態內容定址存儲器,超寬多路複用器和存儲器模塊。

通過可嵌入架構,SoC中的定製內核可以訪問可編程架構,而無需犧牲片外訪問的能耗和性能,無需FPGA架構周圍的可編程I / O緩衝器,因此,解決方案內的整個裸片面積就會減少。 此外,該架構的模塊化特性使得將該技術移植到各種工藝技術中變得很輕鬆,即使是新興的7nm節點也沒問題。

這些功能是為嵌入式系統提供實時AI加速的最佳起點,這些嵌入式系統涵蓋從消費類電子電器到高級機器人和自動駕駛汽車。

機器學習技術代表了嵌入式系統的新領域,實時人工智能將擴大各種應用,但只有在能夠以經濟高效的方式執行時才能實現市場化量產。諸如多核CPU、GPGPU和獨立FPGA之類的現有解決方案可用於支持高級AI算法,如深度學習,但它們無法滿足開發人員隨著機器學習體系結構發展而增加的硬件需求。

AI需要對數據和性能、內存延遲以及吞吐量進行仔細的平衡,這需要基於將盡可能多的功能引入ASIC或SoC的方法。 但是單芯片器件需要可塑性來處理機器學習項目中不可避免的結構變化。eFPGA技術則為市場所需的定製邏輯提供了靈活性和支持能力的完美整合。

eFPGA在AI應用中的挑戰

eFPGA有諸多優點,但作為一種新型技術,其在具體應用中,同樣面臨著一些挑戰,特別是對於AI而言,人工智能本身就是新興應用,它們組合在一起,在實踐當中自然會遇到一些難題。

比如,可靠性和良率問題,工程師在這方面有擔憂,純邏輯製程在這方面的優勢還需要進一步觀察;測試也是個問題,客戶需要用戶筆記來幫助設置、調試FPGA設計,當然,eFPGA在這方面是有先天優勢的,可以測完再配置為需要的文件;另外還有時序問題,集成硬核很容易,但是時鐘同步很難,因為不同於硅SoC的時序是不變的,eFPGA的時序是變化的,如何匹配是個問題。


分享到:


相關文章: