中文 英语

最好的AI Edge推论基准

实际工作负载的代理只能如此准确。

人气

在评估AI加速器的性能时,您可以使用一系列方法。在本文中,我们将讨论一些不同的方式来构建基准研究,然后继续进行评估,直接运行自己的模型。就像在买车时一样,在你需要靠在车轮之前只能让你到目前为止,给你未来的车辆几个测试驱动器。通常,许多基准都可以告诉您信息,但不要告诉您如何在任何给定的加速器上实际运行的模型。

让我们看看一些常见的指标如何帮助或妨碍您搜索最适合您的应用程序和标准的推理加速器。

每秒Tops = Tera操作

您将看到的最常见的数字是体系结构理论上可以实现的峰值操作(通过将硬件中相乘和累积单元的数量乘以名义时钟速度乘以2来计算,因为一个MAC就是两个操作)。但是你怎么知道加速器的其他部分(内存子系统、软件等)是否可以保持mac的良好利用呢?这个度量标准的缺陷是,如果不了解利用率(这些计算单元进行实际有用计算的频率),这个数字通常什么也不能告诉您!

微基准测试:卷积内核和各个层

另一种方法是开发微型基准测试,以测试所需的每个子系统的加速器的能力。得出与TOPs相关的准确利用率数据实际上可能比它的价值更麻烦。不同的加速器可能有非常不同的架构,这些架构很少有良好的文档记录,这可能导致结果不正确。并不是所有的层都是相同的,所以您必须理解不同的内存并计算每个层的卷积内核的模式。最终,虽然像这样的“微”基准方法有希望,但在实践中很难从这个级别的基准测试中真正得出有意义的结论,特别是在没有加速器微架构细节的情况下。

模型等级基准

这是基准开始有用的地方,因为模型将在单个模型中具有不同利用率水平的各个层,并且测量单位(每秒推断)将更直接适用于您的工作量。通常,这些基准基于一组标准的常见CNN,例如Reset,VGG,YOLO等。利用这些类型的基准,至少现在正在完成的工作可以更直接地绑定到诸如对象检测或图像分类的最终应用程序。


图1:普通CNN模型的不同方面。

但是,这些模型仍然只是您自己模型的代理。其中一些模型是具有跳过连接的剩余网络,而其他模型则在其对象检测器头中具有新颖的操作。它们都有不同的结构,可以大大改变可以在不同的硬件解决方案可用时应用的优化类型。虽然这些模型在某些方法中可能类似于您的模型,但机会不会有一个单一的模型,如此接近您的模型,您可以自信地得出表现。但是,如果您从开源基准测试您自己的模型,可能会使开源基准测试更好地指标您的自定义模型的性能。

其他因素需要考虑

一些加速器实施Winograd转换,可以加速卷曲2.25倍。Winograd加速的好处显示在推断/第二(吞吐量)中,并在查看MAC /秒或利用时需要额外的步骤,因为WinoGrad以不同,更有效的方式计算。

一些加速器简化模型或跳过零权重以加快计算速度。前者可能会失去准确性,而后者降低mac。这些优化的影响在推论/秒中很明显,但在中间度量中可能不明显。

这些基准是什么不会告诉你的

只有在解决方案上运行的实际模型才能提供最终的结果。没有其他方法可以在不运行工作负载的情况下准确地衡量您的性能!神经网络有很多不同的形状和尺寸,即使是少数模型的性能结果也不能充分说明你自己的模型的性能。更重要的是,运行您自己的模型将使您有机会探测解决方案的软件堆栈,并确定它是否足够灵活,可以处理不断变化的工作负载集。毕竟,即使你在买车时做了所有的调查,总有一些事情你在试驾前不知道该考虑。



发表评论


(注意:此名称将被公开显示)