存算一體化架構設計
以各種傳統工藝(如SRAM、NorFlash)或新型憶阻器工藝(如FeRAM、ReRAM、PCM和MRAM)制作器件構建存盤陣列,將神經網路權值引數直接存盤在陣列內部,并以模擬信號的形式并行執行大規模矩陣乘法,以典型的存算一體化硬體架構為例,向量以電壓形式驅動陣列字線(行),利用電壓乘以電導(按照DNN的權值對憶阻器阻值進行編程)等于電流,并且電流在位線(列)自然匯聚相加的電流定律,一次讀操作即可完成向量與矩陣的乘加操作,這種方法不但提高了矩陣乘法的并行度,而且避免了反復從DDR讀取DNN的權重,進一步提高了架構的能效比,然而,單純從硬體架構中挖掘并行性和資料可復用性,能效比很快就到達極致,性能提升將會遇到瓶頸;
基于存算一體架構的稀疏方案
存算一體化架構的執行單元通常以陣列的形式組織,非結構化剪枝產生隨機分布的零,難以通過編碼壓縮部署在陣列上,存盤權重的憶阻器件或者各種SRAM單元將同時參與計算流,這種運算元與運算器的硬體耦合導致無法實作跳零架構,因此我們主要以規則的行、列以及塊的規則形狀剪枝或量化DNN模型,
此外,為了進一步壓縮深度卷積神經網路模型的規模,還可以在剪枝稀疏后的網路基礎上進行知識蒸餾等操作;即在剪枝稀疏的程序中,增加通道剪枝的比例,這一步會導致模型的精度下降,但是可以通過知識蒸餾這一方法來retrain,讓模型精度有所回升;
上述的剪枝、知識蒸餾以及量化的方法都是彼此正交的,即這些方法可以疊加,用來同時優化模型,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/308715.html
標籤:其他
上一篇:總結HTTP協議詳解
下一篇:TCP/IP參考模型與標準協議
