嵌入式系统中对神经网络的推理时间影响最大​​的方面是什么?

人工智能 神经网络 硬件 表现 嵌入式设计
2021-11-02 22:59:38

我使用神经网络在嵌入式软件上进行实时图像处理,并测试了不同的架构(Googlenet、Mobilenet、Resnet、自定义网络……)和不同的硬件解决方案(板卡、处理器、AI 加速器……)。我注意到,就推理时间而言,系统的性能不仅取决于处理器,还取决于其他因素。

例如,我有两块来自不同制造商的板,B1(带有便宜的处理器)和 B2(带有更好的处理器),以及两个神经网络,N1(非常轻,具有规则卷积和全连接层)和 N2(非常大,带有初始模块和许多层)。N1 的推理时间在 B1 上更好,而 N2 在 N2 上更好。此外,随着软件的执行,推理时间会随时间而变化。

所以我的问题是:在嵌入式系统中,影响推理时间的方面有哪些,如何影响?我不仅对硬件特性感兴趣,而且对神经网络架构(卷积滤波器大小、层类型等)也很感兴趣。

1个回答

您可以预期推理时间将在很大程度上取决于您平台上存在的特定硬件和软件。首先,配备 GPU 的设备(例如 NVidia TX)将优于未配备 GPU 的设备(例如 Intel Movidius)。其次,软件支持(例如 cudnn、TensorRT)将产生巨大的进一步影响。

例如,我们测量了两个卷积模型的推理时间。模型 A 需要比模型 B 多 250% 的浮点运算。然而,这两个模型在我们的设备上进行评估的时间大致相同,因为模型 A 的层在软件中得到了更好的优化。结论:特定计算平台上的算法复杂度和实际执行时间不再一定成正比。