背景
目前神经网络应用在大多数的场景,包括计算机视觉(包括目标识别、检测),推荐系统,大型的科学计算等。神经网络的计算本质上是张量计算(tensor),因此为了加速神经网络的计算,我们就需要进行张量的加速计算。为了加速张量计算,我们需要软硬件协调。
张量计算有两个特征
- 计算密集(compute-intensive)
- 访存受限(memory-bound)
目前现存的一些技术
算法层面
稀疏性
所谓的稀疏,就是利用神经网络计算过程中的零值元素。提出的要求就是只取出非零数值送到PE中,然后进行运算。包括的方面:从稀疏性的表示方式中编解码非零数值;访存的方式;回填机制。神经网络的稀疏性具体解释
量化
神经网络的参数一般是以浮点数保存的,相比较整型,浮点数的计算需要更多的时钟周期,因此采用一些量化的方式的方式加速计算。
包括两种
- precision lowering:将参数(weights,
activations, gradients, weight updates