当前位置: 首页 > 科技观察

在边缘对深度学习设备进行基准测试:NVIDIAJetsonNano获胜

时间:2023-03-14 01:11:30 科技观察

边缘计算对于新兴的物联网至关重要。近日,机器学习和数据科学咨询公司Tryolabs发布了一份基准报告,对三款专为机器学习设计的边缘计算设备进行了测试和比较,分别是NvidiaJetsonNano、GoogleCoral开发板(内置EdgeTPU)和IntelNeuralComputingStick.以及与不同机器学习模型的组合。结果表明,Nvidia的JetsonNano在推理时间和准确性方面都是明显的赢家。此外,他们还给出了树莓派3B和Nvidia2080tiGPU上的结果供参考。为什么需要边缘计算?人类正在生成和收集比以往更多的数据。我们口袋里的设备会产生大量数据,例如照片、GPS坐标、音频以及我们有意或无意泄露的各种个人信息。此外,我们不仅会产生与个人相关的数据,还会从许多其他地方收集未知数据,例如交通和旅行控制系统、视频监控单元、卫星、智能汽车和其他不胜枚举的智能设备。数据增长的趋势已经存在,并将继续呈指数增长。在数据点方面,国际数据咨询公司(IDC)预计全球数据总量将从2019年的33ZB增长到2025年的175ZB,年增长率为61%。尽管我们一直在处理数据,首先是在数据中心,然后是在云端,但这些解决方案并不适合处理要求高且数据量大的任务。网络性能和速度不断突破新的极限,随之而来的是对新型解决方案的需求。现在是边缘计算和边缘设备时代的开始。该报告是五种新边缘设备的基准测试。我们使用不同的框架和模型来测试哪些组合表现最好。我们将重点关注边缘机器学习的性能结果。什么是边缘计算?边缘计算涉及将数据处理任务放置在网络边缘的设备上,尽可能靠近数据源。这种计算方式能够以极高的速度实现实时数据处理,这对于许多具有机器学习能力的复杂物联网解决方案来说是必不可少的能力。在此基础上,边缘计算可以缓解网络压力、降低能耗、提高安全性和提高数据隐私性。使用这种新范例,结合针对边缘机器学习优化的专用硬件和软件库,可以实现可大规模部署的尖端应用程序和产品。构建此类应用程序的最大挑战来自音频、视频和图像处理任务。事实证明,深度学习技术在克服这些困难方面非常成功。在边缘实施深度学习以自动驾驶汽车为例。自动驾驶汽车需要快速、持续地分析传入的数据,以便它们能够解读周围的世界并在几毫秒内采取行动。这种时间限制使我们无法依赖云端来处理数据流,而必须在本地进行处理。但本地处理有一个缺点:硬件不如云中的超级计算机强大,而且我们不能在准确性和速度上妥协。这个问题的解决方案要么使用更强大、更高效的硬件,要么不使用如此复杂的深度神经网络。为了获得最佳结果,必须在两者之间找到平衡。所以真正要回答的问题是:我们应该结合什么边缘硬件和什么类型的网络来最大限度地提高深度学习算法的准确性和速度?在寻找两者最佳组合的过程中,我们将比较各种最先进的边缘设备与不同深度神经网络模型的组合。对新边缘设备进行基准测试我们探索最具创新性的用例。在这里,我们将通过一次对一个图像进行分类来测量实时推理吞吐量,以获得大约每秒的帧数。我们通过评估ImagenetV2数据集特定子集上所有类的前一推理精度并将结果与??一些卷积神经网络模型进行比较来实现这一点。我们也尽可能地尝试了不同的框架和优化版本。硬件加速器尽管过去几年在改进现有边缘硬件方面做了大量工作,但我们选择了以下新设备进行试验:NvidiaJetsonNanoGoogleCoral开发板IntelNeuralComputeStickRaspberryPi(参考上限)Nvidia2080tiGPU(参考下限)实验将包括RaspberryPi和Nvidia2080ti,将测试的硬件与知名系统进行比较,其中RaspberryPi是边缘设备,Nvidia2080tiGPU通常用于云端。这个下界很简单,我们在Tryolabs设计和训练我们自己的深度学习模型。因此,我们有大量可用的计算能力。所以我们当然做到了。为了确定推理时间的下限,我们在Nvidia2080tiGPU上运行了测试。但是,由于我们仅将其用作参考,因此我们仅使用未优化的基础模型进行测试。至于上限,我们选择了卫冕冠军:最流行的单板机:树莓派3B。神经网络模型我们的benchmark评测主要包括两种网络:老牌知名的Resnet-50和谷歌今年新推出的EfficientNet。对于所有基准测试,我们使用公开可用的预训练模型并使用不同的框架运行它们。对于NvidiaJetson,我们尝试了TensorRT优化;对于RaspberryPi,我们使用了TensorFlow和PyTorch变体;对于Coral设备,我们实现了S、M和L型EfficientNet模型的EdgeTPU引擎版本;对于英特尔神经计算棒,我们使用通过OpenVINO工具包编译的Resnet-50。数据集由于所有模型都是在ImageNet数据集上训练的,因此我们使用ImageNetV2MatchedFrequency。它包含10000张图像,分为1000个类别。我们对每张图像运行一次推理,保存推理时间,然后取平均值。我们计算了所有测试的前1准确度以及特定模型的前5准确度。top-1准确度:这是传统的准确度,即模型的答案(概率最高的那个)必须等于确切的预期答案。top-5accuracy:也就是说,模型最有可能让前五个答案中的任何一个与预期答案相匹配。在比较结果时请记住,对于较快的设备模型组合,我们运行了包含整个数据集的测试,而对于较慢的组合,我们仅使用了一部分数据集。结果与分析下图为实验得到的指标。由于不同模型和设备之间的推理时间差异很大,因此平均推理时间以对数形式显示。推理时间第一名:JetsonNano在推理时间中,使用ResNet-50、TensorRT和PyTorch组合的Je??tsonNano获胜。该组合需要2.67毫秒来处理一张图像,或每秒375帧。这个结果非常令人惊讶,因为它超过了Nvidia公布的推理速度多达十倍。结果不同的原因很可能是Nvidia使用TensorFlow而不是PyTorch。推理时间第二名:Coralboard第二名是与EfficientNet-S配对的Co??ralboard。它在5.42秒内完成一幅图像处理,即每秒185帧。这个结果与谷歌公布的速度相似,完成一张图片需要5.5毫秒,每秒处理182帧。虽然这种组合的速度相当快,但是准确率并不好。我们无法知道谷歌用来报告准确性的确切验证集,但我们猜测他们使用了与我们不同的图像预处理转换。因为量化的8位模型对图像预处理非常敏感,这会对结果产生很大影响。准确率第一名:JetsonNano准确率,最好的成绩来自JetsonNano与TF-TRT和EfficentNet-B3的结合,达到了85%的准确率。然而,这些结果是相对的,因为在我们训练模型时,一些模型使用比其他模型更大的数据集。如您所见,当我们为模型提供较小的数据集时准确度较高,而使用完整数据集时准确度较低。出现这个结果的原因是我们没有对较小的数据集进行随机排序,因此其中的图像没有得到适当的平衡。硬件加速器的可用性关于这些设备的可用性,开发人员注意到一些重要的区别。在选择和部署预编译模型和框架时。Jetson是最灵活的。英特尔神经计算棒紧随其后,因为它提供了很棒的库、大量模型和很棒的项目。此外,这款计算棒的第二代相比第一代还有明显的改进。唯一的缺点是他们庞大的软件库OpenVINO仅支持Ubuntu16.04,不支持较新的Linux操作系统版本。与Jetson和IntelComputeSticks相比,Coral设备有一些限制。如果要在其上运行非官方模型,则必须将其转换为TensorFlowLite,然后针对EdgeTPU对其进行量化和编译。根据型号的不同,可能无法进行这种转换。尽管如此,我们仍希望谷歌能够改进该设备的未来版本。总结这里的研究基于我们对为深度学习算法设计的当前最佳边缘计算设备的探索。我们发现JetsonNano和Coral板在推理时间方面表现非常出色。在准确性方面,JetsonNano也表现非常出色,尽管这个结果是相对的。就整体性能而言,JetsonNano无疑是赢家。但是,必须注意的是,由于JetsonNano和Coral的设计不同,我们无法在两者上测试同一型号。我们相信每个设备都有自己的用例,这取决于要完成的具体任务。