logo头像

不忘初心,奋力前行

Algorithm and Hardware Co-Design for Energy-Efficient Deep Learning

本文于320天之前发表,文中内容可能已经过时,如有问题,请联系我。

学术报告笔记整理(袁博)

报告简介

学术报告题目:From Matrix to Tensor: Algorithm and Hardware Co-Design for Energy-Efficient Deep Learning

主讲人:袁博,罗格斯大学电气与计算机工程系助理教授(Bo Yuan, Assistant professor in the Department of Electrical and Computer Engineering in Rutgers University)

报告内容笔记

深度学习应用广泛,但是目前强调的多以深度学习的软件应用为主。但是随着深度学习深入人们的生活,现有单纯依赖GPU的软件算法成本非常高,而且随着要求精确度的提高,数据量和模型也在变得越来越大,这对于存储量和计算量要求也越来越高,因此需要有专门应用于深度学习的芯片产生。

为了解决存储量和计算量非常大的问题,引入了Sparsification(模型压缩)这样一种方法,这是基于实际上模型有大量的冗余这一事实。模型压缩主要有两种方法:一是剪枝(如图1所示);二就是降低精度,例如ESE。如下图,Google的TPU-1也是用的这个,它是用的8bit量化。另外还有binarized model(1比特量化),例如YodaNN。但是这种方法压缩率有限,实践中精确度会损失较大。

1c19b0210ce21045940eb7b05ec7714b.png
图1

8bd54a7719e18284399813044b4451a1.png
图2
主讲人所在的实验室主要研究了解决这个问题的另外三种方法:

稠密矩阵构建神经网络

一是用稠密矩阵构建神经网络。稠密矩阵是每一个元素不一样,但是可以转换成某种有结构性的矩阵(例如循环矩阵,比如说每个大矩阵是3*3小矩阵的循环,那么就有3倍压缩率),由此提出了Low Displacement Rank Matrix(LDR矩阵)。如图所示。

905de3b093b2190a0ff05111bc51ec5b.png
图3

它符合下面的特性:
e3cf6c4ca159d09607503d564121a0f9.png
图4

它有以下优点:
①空间复杂度由O(n2)降为了O(n)。
②空间结构性更好,设计硬件的时候摆脱了要建立索引,可以节省空间。
③利用了LDR矩阵有快速运算方法。

在使用LDR矩阵之前,我们需要回答三个问题:

  • 通用近似属性是否仍然存在?(Does universal approximation property still exist?)
  • 近似误差的界限是什么?(What is the bound of approximation error?)
  • 我们应该如何获得LDR神经网络?(How should we get LDR neural networks?)

上面的答案分别是[1]:
(1)是的。可以证明得到LDR网络的通用近似理论:
f3dceab93df4992cf177be7db7df3856.png
(2)
cc0b3f8fad5c8df0ce102ff75595979f.png

基于LDR矩阵所提出来的方法叫CirCNN网络,其结构如下[2]:
0cb6be42d94d61be9e4db14cfc795da3.png
图5

Cir-LSTM与ESE性能比较如下[3]:
c54118eaec0bb9798147503583aaf878.png

总的来说,LdrNN的框架如下:

List Content
Theory Theoretical Properties for Neural Networks with Weight Matrices of Low Displacement Rank
Algorithm CircConv: A Structured Convolution with Low Complexity
Design Space Exploration Energy-efficient, high-performance, highly-compressed deep neural network design using block-circulant matrices
Computer Architecture CirCNN: Accelerating and Compressing Deep Neural Networks Using Block-CirculantWeight Matrices
FPGA Design C-LSTM: Enabling Efficient LSTM using Structured Compression Techniques on FPGAs
Chip Design 清华大学

基于稀疏矩阵构建神经网络

二是基于稀疏矩阵构建神经网络。提出来的就是PermDNN算法。它是Block-Permuted Diagonal Weight Matrix(结构压缩),非零元素只存在于对角线或者偏移对角线的地方。其优点是不需要存储索引,只需要存储偏移量(利用偏移量进行简单取模运算得到索引)。它收到了编码里面的LDPC编码启发,其优点见下表:

CirCNN PermDNN
Arithmetic Operation Complex Number-based Real Number-based
Comp Ratio for One Layer 2^n Flexible
Time-domain Input Sparsity NO YES
  • 从数值运算上说,第一种方法(CirNN)是基于复数的,而本方法基于实数,降低了整体系统的计算量。
  • 从每一层的复杂度上来说,CirNN计算都是2的n次方,但是PermDNN则是灵活的,这一点PermDNN更好。
  • 从时域输入压缩上来说,CirNN是没有压缩的,但是PermDnn是压缩的。

    TIE

    三是TIE:使用张量训练分解(Tensor Train Decomposition)的方法,如下图,基本上就是相当于对层的分解,具体因为目前不牵扯和自己相关的东西,所以没有做具体的整理。

a22bb81516200fe00caebb5bcd8b1bb0.png

本笔记所提到的论文包括以下:

  • Theoretical Properties for Neural Networks with Weight Matrices of Low Displacement Rank
  • CircConv: A Structured Convolution with Low Complexity
  • Energy-efficient, high-performance, highly-compressed deep neural network design using block-circulant matrices
  • CirCNN: Accelerating and Compressing Deep Neural Networks Using Block-CirculantWeight Matrices
  • C-LSTM: Enabling Efficient LSTM using Structured Compression Techniques on FPGAs

这些论文已经上传至百度云,下载地址为:https://pan.baidu.com/s/12OStk9Id5AIH8P7ty-mhMw

密码请关注我的个人微信公众号,回复“袁博论文”即可得到密码。

参考文献

[1] Zhao L , Liao S , Wang Y , et al. Theoretical Properties for Neural Networks with Weight Matrices of Low Displacement Rank[J]. 2017.

[2] Ding C , Liao S , Wang Y , et al. CirCNN: Accelerating and Compressing Deep Neural Networks Using Block-CirculantWeight Matrices[J]. 2017.

[3] Wang S , Li Z , Ding C , et al. C-LSTM: Enabling Efficient LSTM using Structured Compression Techniques on FPGAs[C]// Proceedings of the 2018 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays. ACM, 2018.

支付宝打赏 微信打赏 QQ钱包打赏

感觉不错?欢迎给我 打个赏~我将不胜感激!