ISSCC-2020-GANPU论文解读
@论文笔记
GANPU: A 135TFLOPS/W Multi-DNN Training Processor for GANs with Speculative Dual-Sparsity Exploitation
一、背景和动机
1.背景
这篇论文是韩国KAIST大学Semiconductor System Lab的最新成果,KAIST大学在片上训练(On-chip-training)领域还是非常强的,已经在ISSCC发表过多篇相关论文。这篇论文是针对GAN生成对抗网络做的片上训练系统。
首先对GAN的背景以及应用做了些介绍,Gan广泛应用于图片的风格迁移,AI换脸,图片修复等场景,无非是应用广泛,值得一做。
生成对抗网络主要分为两个部分,一个生成器和一个判别器。生成器的任务是根据输入图片来生成一张“赝品”图片,而判别器则接受生成的赝品图片以及真实的标签图片,评估两者的差异并输出生成器生成的是赝品还是真货,如果生成器生成的图片没能成功“骗过”判别器,则会根据判别器的输出来更新或者优化生成器。
总而言之,GAN的两个网络相互配合,可以实现生成器生成的图片尽量像标签图片或者说目标图片靠拢。
2.动机
a. 本地VS云端
之后,论文提出了主要矛盾,在边际设备上,从云端下载下来的模型在本地针对不同用户的的使用场景表现出来明显的失真。因此需要做片上的训练。
GAN网络的主要分类。
b. 计算和存储瓶颈
不同类别的GAN的资源利用和计算量,存在明显的存储瓶颈和计算瓶颈。
一般判别器可以用传统的图像分类benchmark实现,判别器和生成器的计算量存在较大的差异,一半来说生成器的计算量普遍比判别器大几个量级。
c. 输入与输出稀疏性的不对称
另外,传统的稀疏性方法在反向传播时并不适用。当输入激活值存在0元素时,在卷积时可以直接跳过为0元素的乘累加,这就是所谓的IA (input actication) zero skipping : 输入稀疏性跳过。
而事实上,如果说我们能预先知道输出层的某个元素为0,那么其实可以直接跳过计算该元素的所有运算!在反向传播中,由于反传的公式特殊性,以及一般卷积之前都会经过Relu函数激活,导致在向前推断梯度时可以预先知道输出的哪个位置是0(具体原理下面会分析),因此可以直接跳过设计该位置的所有运算。这就是所谓的 OA (output activation) zero skipping :输出稀疏性跳过。
这边也提到了,反向传播具备的这种OA性质,只能加速反传,对前向的计算实际上没有帮助,因为前向过程无法预先知道输出的稀疏性。
下面这张图比较清楚地解释了为什么反传时OA可以提前确定:
实际上从 δ c \delta_c δc到 δ R \delta_R δR的推断时会乘上激活函数导函数在 X N X_N


551

被折叠的 条评论
为什么被折叠?



