國家“千人”王中風教授:如何滿足不同應用場景下深度神經網路模型算力和能效需求
新智元專欄
基於神經網路的深度學習演算法已經在電腦視覺、自然語言處理等領域大放異彩。
目前,基於神經網路的深度學習演算法已經在電腦視覺、自然語言處理等領域取得了廣泛的應用。這其中,一方面要歸功於演算法研究者的堅持使演算法得以取得諸多突破,另一方面也是海量資料的出現和硬體運算能力的提升為演算法的有效訓練帶來了可能。
目前,使用 GPU 來進行神經網路的訓練幾乎已經成為了研究深度學習演算法的標配。但是,在進行實際部署時,由於深度神經網路模型往往伴隨著極高的存儲空間需求和計算複雜度,包括GPU、CPU在內的傳統通用計算平臺在大多數情況下並不能滿足實際模型部署對功耗和性能(或者能效比)的綜合需求,這也使得一些具有更高綜合能效比的硬體,如 FPGA 和面向 AI 應用的 ASIC(包括可重構ASIC)晶片逐漸獲得關注。
模型裁剪與優化
目前該領域的方法可以大概分為兩類:
1.針對某些精度較高但較複雜的網路模型,通過剪枝、量化、低秩分解等措施減少模型的參數和計算量。這類方法往往能大大減少模型的複雜度,實現對參數或者計算量很高的壓縮比,但其中不少方法都需要特定的硬體支援才能真正發揮其效用。此外,這裡面提到的某些方法也可以用於減少模型訓練過程中參數更新帶來的硬體開銷,加速訓練過程;
2.考慮直接設計更為高效(較少參數+低計算複雜度)的神經網路模型,同時模型的精度可以儘量接近複雜的網路模型,或是通過一些方法將複雜模型學習得到的知識遷移到小的模型上面,最終可以直接部署這些較為精簡的模型。
AI 晶片/加速器
在針對 AI 的高能效硬體架構設計方面,相關的工作大體可以分為以下幾個方面:
1.能夠支援主流深度學習演算法常見操作的專用處理器架構(ASIP),以及專用的深度學習指令集,如中科院計算所的 DianNao系列處理器和Cambricon指令集;
2.針對深度神經網路的資料複用方式、訪存的優化:探索適合於神經網路的計算模型,在計算時通過合理的資源調度實現對神經網路計算過程高效的加速;
3.近似計算/近似存儲:利用神經網路對雜訊和誤差具有一定的容錯性,在計算/存儲過程中通過一些具有較低硬體開銷的近似方法來提高網路的計算能效;
4.新型存儲結構,如通過非易失性電阻式記憶體(Non-volatile Resistive Memories),實現計算和存儲一體化(process-in-memory),直接在存儲裡面實現計算的功能;
5.軟硬體協同優化:在前面模型優化方法的基礎上,進一步設計相應的硬體架構,使得諸如剪枝、量化等模型壓縮方法的效果可以被充分的利用;
在這波 AI 浪潮中,國內也有不少高校和研究機構從事相關的研究,並在國際上取得了可觀的影響力。相應技術的落地也催生了不少 AI 晶片/加速器的初創公司,包括寒武紀科技、地平線機器人、深鑒科技等。作者的團隊(南京大學 ICAIS 實驗室)也在這方面取得了一些突出成果,包括:
基於有限衝擊回應演算法的高效可配置快速卷積單元
•基於並行快速有限衝擊回應演算法(FFA)對卷積計算進行演算法強度縮減,理論推導了3並行、5並行和7並行等N-並行的快速卷積演算法。設計了能高效完成3×3和5×5卷積計算的快速卷積單元(FCU)。進一步地,針對目前主流的CNN卷積核大小,設計了可以高效實現各種常見卷積操作的可配置卷積單元,並在硬體利用率、功耗和可配置性之間達到了最優的平衡。所設計的硬體結構可以配置實現2x2到12x12所有尺寸的卷積操作。
等間隔/K平均聚類非均勻定點量化方法
•提出了等間隔非均勻定點量化(Equal Distance Intra-Layer Non-Uniform Quantization)和K平均聚類非均勻定點量化(K-means Cluster Intra-Layer Non-Uniform Quantization)兩種量化方法,可以大大降低卷積神經網路中activation的存儲需求。相比於已有的針對activation的量化方法,可以在不損失精度的情況下提高壓縮率2倍以上。
深度卷積神經網路高效硬體架構設計與實現
•基於上述的FCU和動態計算流程,提出了高效的卷積神經網路處理和存儲架構。基於 VGG16的測試結果表明,所提出的層內按行交替存儲和層間輪回復用的方式相比于傳統按層順序計算的存儲架構可以節省大約14倍的片上存儲資源,在同樣的平臺下資源利用率比同類設計高出2倍以上。
適用於嵌入式系統的高能效二值參數卷積神經網路硬體架構
•提出了一種高能效的二值參數卷積神經網路的硬體架構。該架構利用了二值參數網路的魯棒性等特點,引入了多種近似計算技術。此外,該架構還採用了一種優化的計算流程,最大程度地減少了訪問DRAM的次數和頻寬需求。該架構在65nm工藝下能夠達到約2.08TOp/s/W的能量效率(已考慮片外DRAM訪存功耗)。相比於已有的二值網路ASIC實現在能效方面有超過2倍的提升。
遞迴神經網路的模型壓縮與硬體架構設計
•在演算法層面,通過在遞迴神經網路(RNNs)中引入結構化的參數矩陣(如迴圈矩陣),參數量減少為原來的 25%;進一步結合前向啟動函數近似,以及根據 RNN 中不同參數矩陣對量化的敏感程度上的差異,混合使用均勻量化和基於對數域的非均勻參數量化方法,在基本不損失模型預測精度的前提下均取得了超過20倍的參數壓縮率,計算複雜度也大大降低。
其它相關研究
此外團隊還研究了高能效的能耗-精度可伸縮(Energy-Quality Scalable)的卷積神經網路硬體加速器結構,基於隱私保護(Privacy-Preserving)的深度學習演算法及其硬體架構,基於張量分解(Tensor Decomposition)的神經網路的嵌入式硬體架構, 以及遞迴神經網路的負載均衡(Load-Balance)稀疏化方法等等。上述成果多數已經在IEEE Xplore 線上發表。
結束語
隨著學術界和工業界對人工智慧技術持續大力的推動,可以肯定的是在未來相當長的時間內,面向應用的基於演算法和硬體架構聯合優化方面的研究將會得到更加廣泛的關注和加速的發展。
作者介紹
王中風博士八十年代初自學考入清華大學,碩士畢業後赴美深造並獲得博士學位。是國家 “千人計畫”特聘專家和IEEE Fellow。王博士曾經擔任美國博通公司技術副總監,是超大規模集成(VLSI)電路設計領域裡的國際知名專家,在國際會議和期刊上發表過150餘篇學術論文,擁有數十項美國專利和發明,曾獲IEEE電路與系統學會2007年度VLSI 會刊的最佳論文獎。2016年全職回國後加入南京大學電子科學與工程學院,現任微電子學院副院長。
南京大學積體電路與智慧系統(ICAIS)實驗室組建於2015年底。目前,團隊一方面繼續在其傳統優勢領域,例如高速通信系統的設計與實現方面,深入發展;同時在一些新興領域,例如硬體安全系統和人工智慧系統的設計方面,努力開拓。特別是2016年以來團隊在深度學習演算法的模型壓縮和高能效硬體加速器設計方面取得了諸多技術性突破,2017年該團隊在IEEE電路與系統學會的主流期刊上共發表三篇長文(regular paper)。同年王博士在深度學習的硬體實現(VLSI for Deep Learning)方面合作的IEEE一類期刊論文達到四篇,在國際同行中處於領先。
2.考慮直接設計更為高效(較少參數+低計算複雜度)的神經網路模型,同時模型的精度可以儘量接近複雜的網路模型,或是通過一些方法將複雜模型學習得到的知識遷移到小的模型上面,最終可以直接部署這些較為精簡的模型。
AI 晶片/加速器
在針對 AI 的高能效硬體架構設計方面,相關的工作大體可以分為以下幾個方面:
1.能夠支援主流深度學習演算法常見操作的專用處理器架構(ASIP),以及專用的深度學習指令集,如中科院計算所的 DianNao系列處理器和Cambricon指令集;
2.針對深度神經網路的資料複用方式、訪存的優化:探索適合於神經網路的計算模型,在計算時通過合理的資源調度實現對神經網路計算過程高效的加速;
3.近似計算/近似存儲:利用神經網路對雜訊和誤差具有一定的容錯性,在計算/存儲過程中通過一些具有較低硬體開銷的近似方法來提高網路的計算能效;
4.新型存儲結構,如通過非易失性電阻式記憶體(Non-volatile Resistive Memories),實現計算和存儲一體化(process-in-memory),直接在存儲裡面實現計算的功能;
5.軟硬體協同優化:在前面模型優化方法的基礎上,進一步設計相應的硬體架構,使得諸如剪枝、量化等模型壓縮方法的效果可以被充分的利用;
在這波 AI 浪潮中,國內也有不少高校和研究機構從事相關的研究,並在國際上取得了可觀的影響力。相應技術的落地也催生了不少 AI 晶片/加速器的初創公司,包括寒武紀科技、地平線機器人、深鑒科技等。作者的團隊(南京大學 ICAIS 實驗室)也在這方面取得了一些突出成果,包括:
基於有限衝擊回應演算法的高效可配置快速卷積單元
•基於並行快速有限衝擊回應演算法(FFA)對卷積計算進行演算法強度縮減,理論推導了3並行、5並行和7並行等N-並行的快速卷積演算法。設計了能高效完成3×3和5×5卷積計算的快速卷積單元(FCU)。進一步地,針對目前主流的CNN卷積核大小,設計了可以高效實現各種常見卷積操作的可配置卷積單元,並在硬體利用率、功耗和可配置性之間達到了最優的平衡。所設計的硬體結構可以配置實現2x2到12x12所有尺寸的卷積操作。
等間隔/K平均聚類非均勻定點量化方法
•提出了等間隔非均勻定點量化(Equal Distance Intra-Layer Non-Uniform Quantization)和K平均聚類非均勻定點量化(K-means Cluster Intra-Layer Non-Uniform Quantization)兩種量化方法,可以大大降低卷積神經網路中activation的存儲需求。相比於已有的針對activation的量化方法,可以在不損失精度的情況下提高壓縮率2倍以上。
深度卷積神經網路高效硬體架構設計與實現
•基於上述的FCU和動態計算流程,提出了高效的卷積神經網路處理和存儲架構。基於 VGG16的測試結果表明,所提出的層內按行交替存儲和層間輪回復用的方式相比于傳統按層順序計算的存儲架構可以節省大約14倍的片上存儲資源,在同樣的平臺下資源利用率比同類設計高出2倍以上。
適用於嵌入式系統的高能效二值參數卷積神經網路硬體架構
•提出了一種高能效的二值參數卷積神經網路的硬體架構。該架構利用了二值參數網路的魯棒性等特點,引入了多種近似計算技術。此外,該架構還採用了一種優化的計算流程,最大程度地減少了訪問DRAM的次數和頻寬需求。該架構在65nm工藝下能夠達到約2.08TOp/s/W的能量效率(已考慮片外DRAM訪存功耗)。相比於已有的二值網路ASIC實現在能效方面有超過2倍的提升。
遞迴神經網路的模型壓縮與硬體架構設計
•在演算法層面,通過在遞迴神經網路(RNNs)中引入結構化的參數矩陣(如迴圈矩陣),參數量減少為原來的 25%;進一步結合前向啟動函數近似,以及根據 RNN 中不同參數矩陣對量化的敏感程度上的差異,混合使用均勻量化和基於對數域的非均勻參數量化方法,在基本不損失模型預測精度的前提下均取得了超過20倍的參數壓縮率,計算複雜度也大大降低。
其它相關研究
此外團隊還研究了高能效的能耗-精度可伸縮(Energy-Quality Scalable)的卷積神經網路硬體加速器結構,基於隱私保護(Privacy-Preserving)的深度學習演算法及其硬體架構,基於張量分解(Tensor Decomposition)的神經網路的嵌入式硬體架構, 以及遞迴神經網路的負載均衡(Load-Balance)稀疏化方法等等。上述成果多數已經在IEEE Xplore 線上發表。
結束語
隨著學術界和工業界對人工智慧技術持續大力的推動,可以肯定的是在未來相當長的時間內,面向應用的基於演算法和硬體架構聯合優化方面的研究將會得到更加廣泛的關注和加速的發展。
作者介紹
王中風博士八十年代初自學考入清華大學,碩士畢業後赴美深造並獲得博士學位。是國家 “千人計畫”特聘專家和IEEE Fellow。王博士曾經擔任美國博通公司技術副總監,是超大規模集成(VLSI)電路設計領域裡的國際知名專家,在國際會議和期刊上發表過150餘篇學術論文,擁有數十項美國專利和發明,曾獲IEEE電路與系統學會2007年度VLSI 會刊的最佳論文獎。2016年全職回國後加入南京大學電子科學與工程學院,現任微電子學院副院長。
南京大學積體電路與智慧系統(ICAIS)實驗室組建於2015年底。目前,團隊一方面繼續在其傳統優勢領域,例如高速通信系統的設計與實現方面,深入發展;同時在一些新興領域,例如硬體安全系統和人工智慧系統的設計方面,努力開拓。特別是2016年以來團隊在深度學習演算法的模型壓縮和高能效硬體加速器設計方面取得了諸多技術性突破,2017年該團隊在IEEE電路與系統學會的主流期刊上共發表三篇長文(regular paper)。同年王博士在深度學習的硬體實現(VLSI for Deep Learning)方面合作的IEEE一類期刊論文達到四篇,在國際同行中處於領先。