MIT「跨越性」AI晶片解密:真的是顛覆性創新嗎?

矽說發表於2018-02-18

近日,關於“MIT開發出跨越性專用晶片,功耗降低95%,手機也能執行神經網路”的文章刷遍了朋友圈。其中的技術是MIT Chandrakasan組發在今年ISSCC上的一篇論文。對於我們這樣喜歡打破沙鍋問到底的技術人員來看,看朋友圈的科技媒體文章猶如隔靴搔癢,於是找來了今年的ISSCC論文仔細閱讀,這裡把具體分析與大家一起分享。

首先上總體評價:論文是好論文,技術是具有獨創性的好技術,中ISSCC名至實歸,但是離工業界大規模應用還有一定距離

MIT「跨越性」AI晶片解密:真的是顛覆性創新嗎?

背景


報導中的“跨越性”AI晶片事實上是發表於ISSCC 2018的論文,標題為《Conv-RAM: An Energy-Efficient SRAM with Embedded Convolution Computation for Low-Power CNN-Based Machine Learning Applications》,具體的Session是31-Computation in Memory for Machine Learning。顧名思義,該Session主要討論的是如何在機器學習應用中直接使用記憶體內計算去改善效能和能效比。再經過數年的發展後,機器學習加速晶片社群基本都認識到了記憶體訪問是效能的瓶頸,因此想方設法想要把記憶體訪問造成的效能損失給最佳化掉,而記憶體內計算就是一種方法。事實上,一旦做到記憶體內計算,就已經超越了傳統的馮諾伊曼計算機架構,可以說是影響深遠。因此,今年ISSCC專門為Computation in Memory for Machine Learning開了一個Session。

本文的作者來自MIT Anantha Chandrakasan組。Anantha Chandrakasan在晶片領域可謂是鼎鼎大名,是數位電路經典教科書《Digital Integrated Circuits: A Design Perspective》的作者之一,同時也是低功耗數位電路設計、UWB系統等多個領域的先驅者,基本每年Chandrakasan組在ISSCC都會至少有一篇論文發表。

論文首先開宗明義,指出目前CNN加速晶片中,記憶體訪問已經成為效能瓶頸,其能量消耗遠大於用於計算的單元。

MIT「跨越性」AI晶片解密:真的是顛覆性創新嗎?

為了降低記憶體訪問能耗,可以在CNN中使用1-bit權重,並且根據相關論文1-bit權重AlexNet上能實現還不錯的效果。所以,本論文也將會使用1-bit權重,具體地說,CNN輸入是高精度數字,而權重則是binary(-1或1)。這裡需要提醒讀者的是,雖然1-bit在一些場合可以實現不錯的效果,但是選擇使用1-bit作為權重也大大限制了論文中描述架構的靈活性,因為1-bit權重目前使用的場合畢竟還比較有限。

MIT「跨越性」AI晶片解密:真的是顛覆性創新嗎?

如果做一些數學變換,卷積輸出實際上是輸入的加權平均。所以該論文使用Multiplication-And-Average (MAV)操作來實現記憶體內計算。

MIT「跨越性」AI晶片解密:真的是顛覆性創新嗎?

Conv-SRAM與MAV具體實現

Conv-SRAM的具體實現如下圖所示:權重(1-bit)儲存在SRAM中,輸入資料(7-bit數字訊號)經過DAC成為模擬訊號,而根據SRAM中的對應權重,DAC的輸出在模擬域被乘以1或者-1,然後在模擬域做平均,最後由ADC讀出成為數字訊號,這個操作即MAV。

這麼做能實現幾個特點:首先,這裡不再有明顯的“讀寫記憶體”的動作,因為根據當前記憶體的內容(即權重)直接對輸入資料進行操作,避免了之前的“從記憶體讀資料——從記憶體讀權重——權重與資料相乘——結果存回記憶體”的馮諾伊曼式計算過程。當然,不用讀寫記憶體這件事從另一個角度看是因為計算全部是在模擬域完成,做模擬訊號處理的時候不使用馮諾伊曼式的處理模型本來就很常見。第二個特點是,因為CNN中輸入資料是被帶不同權重的卷積核覆用的,因此一組輸入資料可以廣播給多組不同卷積核做並行處理。

MIT「跨越性」AI晶片解密:真的是顛覆性創新嗎?

而接下來的MAV則是Conv-RAM的核心操作。熟悉混合訊號電路的朋友們對於這一些操作應當相當熟悉,因為在經典的ADC和DAC中經常會用這些。具體來說,由於乘法的權重是1-bit(1或-1),因此可以簡單地用一個開關加差分線來控制,如果是權重是1就讓差分線一邊的電容充電到DAC輸出值,反之則讓差分線另一邊充到這個值。平均也很簡單,幾條差分線簡單地連到一起就是在電荷域做了平均了。

MIT「跨越性」AI晶片解密:真的是顛覆性創新嗎?

MIT「跨越性」AI晶片解密:真的是顛覆性創新嗎?

於是,使用Conv-SRAM和MAV,最終實現了在LeNET網路對MNIST資料集分類這個benchmark上60倍以的能效比提升,而分類精度降低了約2%。

MIT「跨越性」AI晶片解密:真的是顛覆性創新嗎?

產品化之困

看到這裡,可以說這是一篇非常高質量的學術論文,首先它佔了幾個時下非常熱門的關鍵詞,包括“人工智慧加速”,“記憶體內計算”,“非馮諾伊曼架構”等等,其次工作的質量也很不錯,在ISSCC上發表也屬名至實歸。

然而,這樣的結果想要真正實用化,還有許多的路要走。從論文的實測情況來看也是如此,晶片的benchmark是LeNET+MNIST,這樣的benchmark可以說是僅僅驗證了概念。具體地,我們認為該技術離實用化還需要克服的問題包括:

-1-bit權重的網路模型效能問題。目前低精度網路確實是深度學習領域最熱門的研究方向之一,但是1-bit權重的網路模型到底在哪些地方可以使用卻還沒有定論可言。論文引用了之前的結果,1-bit權重AlexNet可以實現準確率損失在1%左右,但是AlexNet是一個相對簡單的網路並且在目前已經使用不多,而一些更復雜的主流網路如ResNet在深度較深之後,1-bit權重造成的計算精度損失經過多級網路層之間的層層傳播累積最後可能會造成很大的誤差。這一點如何克服我們尚未看到明確方向。

-如何規模化的問題。論文中的核心操作MAV全部是在模擬領域實現,因此每一路輸入輸出都需要精度較高的DAC和ADC模組。這些模組其實佔據的晶片面積不小,因此規模化的成本代價不小;另外,類比電路的本質註定了在規模化的時候會遇到設計流程上的困難,包括輸入失調,模組間的引數失配等等,因此規模化的難度會遠遠大於數位電路。

-如果1-bit流行,真的需要這樣的專用加速器嗎?這其實也是個很重要的問題:假設我們能解決1-bit權重網路的精度問題,那麼網路可能可以直接使用SoC上的ARM核直接運算,為何還要另外新增這樣一個複雜的模組呢。

總結

《Conv-RAM:An Energy-Efficient SRAM with Embedded Convolution Computationfor Low-Power CNN-Based Machine Learning Applications》是一篇相當成功的論文,一方面概念非常新穎,另一方面在設計方面也屬紮實。然而,其中的記憶體內計算方法想要實用化還有不少距離。

相關文章