1. 程式人生 > >【AI計算】RANA框架——ISCA2018

【AI計算】RANA框架——ISCA2018

AI有三大驅動因素:演算法,算力,資料

近年來,由於深度學習的興起,計算機各種頂會都漸漸被深度學習演算法給攻佔。計算機結構頂會也不例外,很大一部分論文都是有關AI計算的研究。
在今年世界級的計算機結構頂會ISCA中,共收錄68篇paper,中國只有一篇一作。來自清華大學的魏少軍教授團隊。論文標題如下:


《RANA: Towards Efficient Neural Acceleration with Refresh-Optimized Embedded DRAM》

先以微電子背景介紹一下目前深度神經網路計算的一個困境,適用於各大公司(TPU,寒武紀,地平線,深鑑,華為等)的深度學習處理器:
以視覺任務(visual tasks)為例,任務越來越複雜,精度要求越來越高。這直接導致DNN模型非常龐大,就VGG網路來說,能夠做ImageNet千分類,取多種精度(8b,12b等),模型引數也能達到500Mb;再比如做20類Object detection的YOLO_small網路的引數都可以達到300Mb。對於一般DNN處理器來說,要處理這種視覺任務,該怎麼做呢?

根據散熱,時鐘頻率等限制,晶片chip面積不能做得很大。理論上限制了500M這種儲存體不能放在onchip。所以,引數需要放在片外memory上,片上小memory當快取用,這樣就以flow的形式實現大模型的AI計算。

這樣做呢,有若干缺點:
首先,從片外拿資料是一個耗時耗力(功耗高)的操作,即使現在有比較好的通訊(協議PCIe或者Nvlink等)。
其次,沒有更好的利用非馮結構數位電路的並行性。這個並行性,怎麼理解呢,就這麼說吧,如果不考慮芯片面積和儲存開銷以及物理限制,理論上可以通過一個時鐘週期計算整個CNN的inference操作,你怕不怕?

AI晶片的目的,無非就是加速計算。

所以很多研究就在想提高片上memory的容量。清華塗峰斌師兄的團隊在ISCA2018的論文,就成為了提高片上memory的典範。

用eDRAM代替SRAM成為片上memory
eDRAM就是嵌入式DRAM,DRAM的物理結構是單管加電容模式,如下圖:

DRAM

一個MOS管加一個電容就能儲存1bit資料。利用電容充放電機制,MOS負責開關。
而SRAM通常是六管後者八管來儲存一個bit,SRAM的示意圖如下:
SRAM

一個電容的體積相對一個MOS管的體積,可以說是忽略不計。所以DRAM在體積上有非常大的優勢

那為什麼一般的AI晶片用的內部memory還是SRAM呢
因為DRAM容易掉電,需要定期重新整理。
要用DRAM還要解決DRAM的缺點,這就是RANA框架的創新之處。
資料生存時間感知的神經網路加速框架(RANA)。框架採用 eDRAM 作為片上儲存器,相比於傳統 SRAM 具有更高的儲存密度,大幅減少片外訪存。同時,RANA 框架採用三個層次的技術:資料生存時間感知的訓練方法,神經網路分層的混合計算模式和重新整理優化的 eDRAM 控制器,分別從訓練、排程和架構三個層面降低 eDRAM 重新整理能耗,進而大幅優化整體系統能耗。
從多層面設計來解決一個問題:讓資料生存時間小於DRAM重新整理時間


在DRAM需要重新整理之前,資料就已經用完了。這樣一來,就可以不用重新整理DRAM了。將重新整理功耗降低了99%。

這也是軟硬體協同優化的一個例子。事實上,單獨優化硬體或者單獨優化軟體都是無法把系統做到最優,最好的系統一定是軟硬體協同優化!