在过去的十几年间,得益于基础硬件计算能力的大幅提升与算法研究的逐步深入,基于深度学习的智能应用在各个领域如计算机视觉、语音识别、自然语言处理等得到了广泛的应用。在军事领域,如水下、水面目标识别、舰船智能运维、态势感知等场景也逐渐开始向智能化发展。由于需要进行广泛的样本学习并获取隐藏特征进行权重更新,深度学习任务大多依赖于强大的算力支持,在不同的硬件支撑平台上实现同样的深度学习任务往往会由于平台算力的差异而导致最终模型的性能有所不同。舰艇云平台资源有限、应用众多,如何优化资源配置而达到最佳效果是应用领域需要衡量的关键课题。业界对于深度学习算法性能的评估,在一定程度上也影响着深度学习的应用与技术发展。目前通用并公认的机器学习(深度学习)基准主要是MLPerf[1]。MLPerf是一套用于测量和提高机器学习软硬件性能的通用标准,主要用来测量训练和推理不同神经网络所需要的时间。在国内,中国电子技术标准化研究院也制定了《人工智能 深度学习算法评估规范》[2],包含7个一级指标和20个二级指标,可在实施评估过程中,根据可靠性目标选取相应指标。本文基于舰载云平台研究在不同的虚拟机配置中,Resnet模型执行目标识别任务时,每一次迭代更新所花的时间,分析国产化平台与商用平台舰载云中的目标识别应用性能。
1 实验数据及模型 1.1 MNIST数据集MNIST数据集(Mixed National Institute of Standards and Technology database)[3]是美国国家标准与技术研究院收集整理的大型手写数字数据库,包含60000个示例的训练集以及10000个示例的测试集。本文使用MNIST数据集作为目标识别任务的训练和测试样本。
Resnet[4]依据CNN模型和残差学习的理论将神经网络深度拓展到152层,通过短路机制加入了残差单元,虽然在一定程度上增加了计算量,但对于深度学习网络退化问题有很好的缓解,可以对样本进行更复杂的特征提取。本文使用Resnet作为目标识别任务的算法模型,其中 Batch size为128。
1.3 PyTorchPyTorch是基于Torch的深度学习框架[5],主要是由Facebook的AI研究实验室开发。本文使用的PyTorch版本为1.4.0,并在其上实现Resnet。
2 实验结果训练耗时与收敛速率是评估深度学习模型性能需要特别关注的指标[6],本文结合这2个指标,衡量比较在商用服务器和国产服务器上,Resnet在进行手写体识别时验证集准确率达到98%时,模型训练过程中每轮迭代的耗时情况。由于模型的随机梯度下降过程中收敛速度受初始化权重、正则化方法等因素影响,所以本文重复多次训练试验,取每次实验结果平均值作为最终试验结果。实验所使用的Dell服务器和海光服务器参数对比如表 1所示。
基于商用服务器和国产服务器搭载的舰载云环境,本文按照CPU核数以及内存的不同,创建20台虚拟机,操作系统均为银河麒麟(4.4.58),在PyTorch平台上使用Resnet模型实现手写体识别,商用服务器上的表现结果如表 2所示。
在商用服务器上,相同CPU核数不同内存的虚拟机所用的迭代时间和相同内存不同CPU核数的虚拟机所用迭代时间的对比图如图 2和图 3所示。可以发现,对于商用服务器,并不是虚拟机配置越高每次迭代所花费的平均时间越短。由图 2可知,对于不同内存的虚拟机,在CPU核数为四核时,均表现为每次迭代用时最短,其在进行手写体识别的任务中,比两核、八核以及16核所用的时间少。如图 3所示,对于两核的虚拟机,内存为64 G时用时最短;对于四核的虚拟机,内存为64 G时用时最短;对于八核的虚拟机,内存为32 G时用时最短;对于十六核的虚拟机,内存为8 G时用时最短。在商用服务器上,对于一定核数而内存不同的虚拟机配置,在本次实验中其迭代用时的最大最小值之差如表3所示。对于一定内存而核数不同的虚拟机配置,在本次实验中其迭代用时的最大最小值之差如表 4所示。可以发现,由于虚拟机核数变化所引起的迭代时间的变化比由于内存变化所引起迭代时间的变化大,迭代用时对于虚拟机核数的变化比较敏感,而对于非四核配置的虚拟机,其对于内存的变化是不敏感的,若要通过改变内存来提升虚拟机上目标识别任务的性能,需要先找到一个“最佳CPU核数”,并在此基础上对内存进行调优,而这个“最佳CPU核数”应当取决于云平台虚拟化技术以及所使用的深度学习并行算法。
在国产服务器上,同样,当ResNet手写体识别的验证集准确率达到98%时,停止学习,计算这期间每一次迭代更新所用的平均时间作为一次测试结果,之后继续取10次测试结果的平均值来衡量其目标识别性能。国产服务器上的表现结果如表 5所示。
在国产服务器上,相同CPU核数不同内存虚拟机所用的迭代时间和相同内存不同CPU核数的虚拟机所用迭代时间的对比图如图 4和图 5所示。可以发现,对于国产服务器,同样并不是虚拟机配置越高每次迭代所花费的平均时间越短。由图 4可知,对于不同内存的虚拟机,在CPU核数为四核时,每次迭代用时均处于较低水平,对于8 G,16 G,32 G和64 G的虚拟机,在CPU核数为四核时,得到最短迭代用时,而128 G的虚拟机在核数为八核时取到了最短的迭代用时,也是这20台虚拟机最短的迭代用时。如图 5所示,在虚拟机的核数不同时,内存均在128 G时得到了最短的迭代用时。
在国产服务器上,对于一定核数而内存不同的虚拟机配置,在本次实验中其迭代用时的最大最小值之差如表 6所示。对于一定内存而核数不同的虚拟机配置,在本次实验中其迭代用时的最大最小值之差如表 7所示。由于虚拟机核数变化所引起的迭代时间的变化比由于内存变化所引起的迭代时间的变化大,迭代用时对于虚拟机核数的变化比较敏感。同样在国产服务器上,若要通过改变内存来提升虚拟机上目标识别任务的性能,也需要先找到一个“最佳CPU核数”,并在此基础上对内存进行调优,而这个“最佳CPU核数”应当取决于云平台虚拟化技术以及所使用的深度学习并行算法。
将表 2和表 5中的数据差值统计如表 8所示,为模型在不同服务器及不同虚拟机配置下的所用迭代时间差。
如表 8和图 6所示,模型在国产服务器和商用服务器中不同虚拟机配置下的所用的迭代时间基本是在使用较大的内存配置时,差距最小,但是差值与内存、CPU核数的变化并不具有线性关系。
本文针对基于舰载云虚拟机运行目标识别任务的性能优化问题,分别在国产和商用服务器搭载的舰载云上建立不同CPU核数以及内存配置的虚拟机,并运行使用Resnet模型的手写体识别应用,对比分析国产和商用服务器上不同配置的虚拟机在进行目标识别时每次参数迭代更新的平均时间,有如下结论:在国产服务器实验环境中的迭代时间明显低于商用服务器,使用较大内存配置的虚拟机时,这种差距会较为减少;无论是国产化环境还是商用环境,平均的迭代更新时间对于虚拟机的配置,相比较于内存,对于CPU核数的变化更为敏感,针对不同的智能应用应当存在“最适合的”CPU核数或是完全可以满足应用的CPU核数,达到该条件之后,其上的内存配置调优才更有意义。另外,对于智能应用,如何在包括且不限于GPU,FPGA等异构平台上优化智能应用,充分使用计算资源,也是需要进一步研究的重要课题。
[1] |
MLPerf[EB/OL]. https: //www.mlperf.org.
|
[2] |
人工智能 深度学习算法评估规范[EB/OL]. http://www.cesi.ac.cn/201807/4058.html.
|
[3] |
LECUN Y, BOTTOU L. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324. DOI:10.1109/5.726791 |
[4] |
HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]// IEEE Conference on Computer Vision & Pattern Recognition. IEEE Computer Society, 2016.
|
[5] |
PASZKE, ADAM et al. PyTorch: An Imperative Style, High-Performance Deep Learning Library[R]. ArXiv abs/1912.01703 (2019): n. pag.
|
[6] |
S. SHI, Q. WANG, P. XU, et al. Benchmarking state-of-the-art deep learning software tools[C]// Proceedings of the 7th International Conference on Cloud Computing and Big Data, IEEE, Macau, China, 2016.
|