国内外相关工作

今年来,深度学习神经网络芯片的测评指标与方法研究已经引起了学术界和产业界的高度重视,最近也涌现出一些用于对深度学习神经网络芯片进行评估和比较的工具和方法:

来自麻省理工学院的研究人员曾为了评估自己的Eyeriss[1]系列深度学习神经网络芯片而提出了一套测评套件,希望能够对不同的深度学习神经网络芯片进行评估和比较。这一测评套件中包括四个神经网络模型:AlexNet, VGG, GoogLeNet 和ResNet,以及相应的测试数据集:ImageNet数据集。他们的测评指标主要包括两个方面:可以对神经网络模型算法进行评估,测评的指标包括神经网络图片分类准确率、网络结构信息、权重的数量、乘加运算的数量等等,它也可以对深度学习神经网络芯片的性能进行评估,指标包括能效水平、存储带宽等等。但是作为一款测评深度学习神经网络芯片的工具来说,它的测评套件中所包含的神经网络模型极其有限,并且网络风格单一:都只是卷积类型的神经网络,并不适用于当前神经网络结构日新月异的当下。并且该测评套件中提出的测评指标数量也十分有限,并不能全面的对深度学习神经网络芯片进行评估。

DeepBench[2]是百度深度学习研究院针对自己的DeepSpeech深度学习智能语音识别平台而提出的一款深度学习神经网络芯片的测试集。该工具把深度学习平台看成是一个三层的结构:深度学习框架层、神经网络实现库层、硬件层。DeepBench还把神经网络分解成不同的基本操作,每一个基本操作又配置了不同的参数。DeepBench希望能找出在执行某一基本运算时,哪一款深度学习神经网络芯片能达到最优的性能。DeepBench的局限是十分明显的:首先,该测评套件只使用基本运算来作为测评的工具,然而神经网络中层与层之间是需要进行数据传输的,相互之间有着十分紧密的联系,把神经网络差分成单独的基本运算来作为测试集,并不能反映出深度学习神经网络芯片在整个神经网络结构上的性能。其次,DeepBench使用了中间层神经网络实现库层来测评不同的硬件,这也就意味着使用DeepBench进行测评所得到的硬件性能结果是受到了神经网络实现库层的影响,并不能代表硬件本身的实际性能,并且,DeepBench所提出的评测指标只有执行一次前向或反向过程的时间这一项,并不能全面的对深度学习神经网络的性能进行描述。

Fathom[3]是由哈佛大学的研究学者所提出的一组神经网络模型套件,该套件中包括了八款神经网络模型:MemNet、seq2seq、AlexNet、VGG、ResNet、autoenc、DeepSpeech、Deepq。并且他们提出了一套方法,来对这八款神经网络模型进行分析和比较,分析八款神经网络模型的运算操作组成,对八款神经网络模型的运算操作组成相似度进行比较,并且分析了八款神经网络模型在进行并行优化时所存在的瓶颈。他们把八款神经网络模型进行封装,并提供统一的接口,希望Fathom能成为量化神经网络硬件或系统好坏的标准。 Fathom虽然提出了一套比较完整的方法来对网络模型进行比较,但是在测评深度学习神经网络芯片时,它仍存在以下不足:1.Fathom并没有对其他类型(如反卷积,下采样类型)的神经网络进行分析。2. Fathom提供的测评指标只有延迟时间,并不适合对深度学习神经网络芯片进行全面的评估。3. Fathom测评的目标,主要还是针对CPU或者GPU平台,它并没有针对深度学习神经网络芯片提出一套完整、公正的测评指标和方法。

国内外虽然在深度学习神经网络芯片测评指标与方法研究方面有很多工作,但针对设计一款公正、全面的深度学习神经网络芯片测试集这一具体目标而言,依然面临下面两个重要需求:(1)一套全面、公平的深度学习神经网络芯片测评指标;(2)一套完整、公开的深度学习神经网络芯片测评方法。

[1]http://eyeriss.mit.edu/benchmarking.html

[2]https://svail.github.io/DeepBench/

[3]https://fathom.readthedocs.io/en/latest/