1. 为什么要进行DNN性能测试
深度神经网络(DNN)是随着深度学习发展起来以后非常活跃的一类神经网络,在数据分类,图像识别等领域有广泛应用[1][2]。DNN的训练时间非常长,这一方面是由于它涉及到的数据量很大,确实处理起来需要耗费很多时间;另一方面是由于选择了不合适的计算方法(如矩阵乘法,激活函数,没有使用GPU加速)等造成的。因此当前亟待解决的问题是什么样的计算方法能在保证精度的情况下,尽可能地缩短计算的时间。
下面我们将深入考察DNN的训练和预测过程,从中找出其性能瓶颈,然后针对这些性能瓶颈,提出我们的解决方法。
2. DNN训练流程
DNN在GPU上训练需要经过三个阶段,,在模型训练阶段,DNN所进行的主要操作是矩阵加法,矩阵乘法和激活函数的计算。