随着 AI 的爆炸式增长,人们开始高度关注能够提供 AI 所需性能的新型专用推理引擎。因此,在过去的六个月里,我们看到了一系列神经推理硬件的发布,所有这些都有望提供比市场上任何其他产品更好的加速。然而,挑战在于没有人真正知道如何从另一个衡量一个。这是一项新技术,像任何新技术一样,我们需要指标,我们需要真正重要的指标。
一切都与吞吐量有关
当推理引擎的性能出现时,供应商会抛出基准测试,引用TOPS(Tera-Operations/second)性能和TOPS/Watt等内容。研究这些数字的系统/芯片设计人员很快意识到这些数字通常毫无意义。真正重要的是推理引擎可以为模型、图像大小、批量大小和过程以及 PVT(过程/电压/温度)条件提供多少吞吐量。这是衡量其性能的第一标准,但令人惊讶的是,很少有供应商提供它。
TOPS最大的问题是,当一家公司说他们的发动机做X TOPS时,他们通常会引用这个而不说明条件是什么。在不知道这些信息的情况下,他们错误地认为X TOPS意味着它可以执行X万亿次操作。实际上,报价 130 TOPS 的公司可能只能提供 27 TOPS 的可用吞吐量。
另一个正在使用但不太常见的基准测试是ResNet-50。这个基准的问题在于,大多数引用它的公司都没有给出批量大小。当他们不提供这一点时,芯片设计人员可以假设这将是一个大批量大小,以最大限度地提高他们的硬件利用率百分比。这使得 ResNet-50 作为基准测试不是很有帮助。相比之下,例如,YOLOv3 需要 100 倍以上的操作来处理 200 万像素的图像。硬件利用率在“现实世界”模型上将面临更大的挑战。
如何正确测量神经推理引擎
在评估神经推理引擎时,有几个关键事项需要考虑。以下是最重要的考虑因素以及它们真正重要的原因。
定义什么是操作:一些供应商将乘法(通常为 INT 8 乘以 INT 8)计为一个运算,将累加(加法,通常为 INT 32)计为一个运算。因此,单个乘法累加等于 2 个运算。但是,一些供应商在其TOPS规范中包含其他类型的操作,因此必须在开始时进行澄清。
询问操作条件是什么:如果供应商在没有提供条件的情况下给出 TOPS,他们通常使用室温、标称电压和典型工艺。通常他们会提到他们指的是哪个工艺节点,但不同供应商的运行速度不同,大多数工艺都提供 2、3 或更高的标称电压。由于性能是频率的函数,而频率是电压的函数,因此芯片设计人员在0.9V下可以获得比0.6V时两倍以上的性能。频率因条件/假设而异。有关此方面的更多信息,请参阅本应用笔记。
查看批量大小:即使供应商提供了最坏情况的TOPS,芯片设计人员也需要弄清楚所有这些操作是否真的有助于计算他们的神经网络模型。实际上,实际利用率可能非常低,因为没有推理引擎始终对所有 MAC 具有 100% 的利用率。这就是为什么批量大小很重要的原因。批处理是为给定层加载权重并同时处理多个数据集。这样做的原因是提高吞吐量,但放弃的是更长的延迟。ResNet-50 有超过 2000 万个权重;YOLOv3 有超过 6000 万个权重;并且必须获取每个权重并将其加载到每个图像的MAC结构中。有太多的权重,无法将它们全部驻留在 MAC 结构中。
查找您的 MAC 利用率:并非所有神经网络的行为都相同。您需要以所需的批大小找出要部署的神经网络模型的神经推理引擎的实际 MAC 利用率。
深入了解 TOPS
如果你是一个正在研究神经推理引擎的设计师,希望这篇文章能阐明要寻找什么。请记住,吞吐量才是最重要的。重要的是不要陷入无意义的基准测试,如TOPS和ResNet-50,除非你知道要问的事情。首先提出以下问题:在批量大小= A和XYZ PVT条件下,特定模型(例如YOLOv3)可以处理多少图像/秒。一旦你开始指定条件和假设,你就会开始了解任何神经推理在现实世界中的表现。归根结底,这才是最重要的。
审核编辑:郭婷
-
芯片
+关注
关注
454文章
50430浏览量
421887 -
神经网络
+关注
关注
42文章
4764浏览量
100545 -
AI
+关注
关注
87文章
30172浏览量
268438
发布评论请先 登录
相关推荐
评论