中文 英语
18lickc新利
的意见

最佳AI边缘推断基准

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

受欢迎程度

在评估AI加速器的性能时,有一系列的方法可供您使用。在本文中,我们将讨论在直接运行您自己的模型进行评估之前,构建基准测试研究的一些不同方法。就像买车一样,研究只能让你走这么远,然后你就需要开车,给你未来的汽车试驾几次。通常情况下,许多可用的基准测试会告诉您信息,但不会告诉您模型在任何给定加速器上实际如何运行。

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

TOPs =每秒运算Tera次

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

微基准测试:卷积内核和单独的层

另一种方法是开发微型基准测试,为每个所需的子系统测试加速器的能力。推导一个与TOPs相关的精确利用率数字实际上比它的价值要麻烦得多。不同的加速器可能有非常不同的架构,很少有很好的文档,这可能会导致结果不一致。并非所有层都是平等创建的,因此您必须了解每个层的卷积核的不同内存和计算模式。最终,虽然像这样的“微观”基准测试方法很有前景,但在实践中,很难从这一级别的基准测试中得出真正有意义的结论,尤其是在没有加速器微观架构细节的情况下。

模型级基准

这就是基准测试开始有用的地方,因为在单个模型中,模型将具有不同层次的各种层,并且度量单位(每秒推论)将更直接地适用于您的工作负载。通常,这些基准测试是基于一组标准的通用cnn,比如ResNet、VGG、YOLO等等。有了这些类型的基准测试,至少现在所做的工作可以更直接地与最终应用程序联系起来,例如对象检测或图像分类。


图1:常见CNN模型的不同方面。

然而,这些模型仍然只是您自己模型的代理。其中一些模型是带有跳过连接的剩余网络,而另一些模型在其目标探测器头部中具有新颖的操作。它们都有不同的结构,这些结构极大地改变了在不同硬件解决方案可用时可以应用的优化类型。虽然这些模型可能在某些方面与您的模型相似,但可能没有一个模型与您的模型如此接近,以至于您可以自信地对性能做出结论。但是,如果您从开源基准测试中派生出自己的模型,那么该开源基准测试可能会成为定制模型性能的更好指示器。

其他需要考虑的因素

一些加速器实现了Winograd转换,可以将卷积加速2.25倍。Winograd加速的好处体现在推理/秒(吞吐量)上,在查看mac /秒或利用率时需要额外的步骤,因为Winograd是以不同的、更有效的方式计算的。

有些加速器会删除模型或跳过零权重来加快计算速度。前者可能会失去准确性,而后者则会减少mac。这些优化的影响在推论/秒中很明显,但在中间指标中可能不明显。

这些基准测试不能告诉你什么

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



留下回复


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

Baidu