如何对推理加速器进行基准测试

描述

  在过去的十年中,神经网络已经从有趣的研究发展到广泛应用于语言翻译、关键词识别和对象识别。

  长期以来,神经网络仅限于具有运行神经网络所需的计算资源的数据中心,最初是在微处理器上,然后越来越多地在 GPU 上,因为 GPU 具有运行神经网络所需的更多 MAC。

  英伟达最近宣布,其推理产品的销售额首次超过了培训产品的销售额。

  随着推理移动到电力和成本预算受限的边缘(数据中心之外的任何地方),客户正在寻找能够以他们能够承受的价格和电力提供所需吞吐量的推理加速器。

  本博客讨论如何对推理加速器进行基准测试,以找到最适合您的神经网络的加速器;以及客户在学习曲线上通常如何发展他们对基准测试的思考。神经网络推理令人兴奋但也很复杂,因此最初非常令人困惑。当客户解决问题时,灯会逐步亮起。

  首先让我们回顾一下推理加速器的常见元素以及它们运行的​​神经网络。

  所有推理加速器的共同元素

  所有推理加速器都有以下共同点:

  MAC(很多)

  片上 SRAM

  片外DRAM

  控制逻辑

  所有单元之间的片上互连

  推理加速器之间的元素和组织的数量差异很大;组织 MAC 的方法;MAC 与 SRAM/DRAM 的比率;以及它们之间的数据如何流动对于确定加速器的实际加速情况至关重要。

  所有神经网络模型的共同元素

  所有神经网络都包含以下元素:

  数值选择:32 位浮点(模型训练时使用的),

  16 位浮点、16 位整数或 8 位整数

  输入数据:图像、音频、文本等

  几十到几百层,每层处理前一层的激活,并将输出激活传递到下一层

  模型每一层的权重

  TOPS - 推理基准测试的第一阶段

  刚接触神经网络性能估计的客户几乎总是先问“你的芯片/模块/板有多少 TOPS?” 因为他们假设 TOPS 和吞吐量相关 - 但事实并非如此。

  TOPS 是每秒万亿次操作的首字母缩写词,可用 MAC 的数量(以千计)乘以 MAC 运行的频率(以千兆赫兹为单位)乘以 2(一个 MAC = 两个操作)。因此,简单来说,1GHz 的 1K MAC = 2 TOPS。

  更多 MAC 意味着更多 TOPS。

  重要的是内存组织和互连是否可以保持 MAC 的“馈送”,从而使它们得到高度利用,从而在模型上产生高吞吐量。

  ResNet-50 - 推理基准测试的第二阶段

  一旦客户意识到重要的指标是吞吐量,他们通常会继续询问,“ResNet-50 的芯片/模块/板的推理/秒吞吐量是多少?”

  MLPerf 最近发布了众多制造商提交的 ResNet-50 基准。

  ResNet-50 是一种流行的 CNN(卷积神经网络),用于对图像进行分类,多年来一直广泛用于基准测试。

  问题是,没有客户真正使用 ResNet-50。

  客户询问 ResNet-50 是因为他们假设他们模型上的芯片/模块/板的吞吐量将与 ResNet-50 吞吐量相关。

  这个假设的两个主要缺陷是:

  ResNet-50 使用 224x224 图像,但大多数客户希望处理 16 倍以上的百万像素图像。ResNet-50 对于 224x224 图像可能在芯片/模块/板上运行良好,但可能不适用于百万像素图像,因为较大的图像比较小的图像对内存子系统的压力更大。对于 2 兆像素的图像,中间激活可以是 64 兆字节,而对于 224x224 图像,中间激活最多为几兆字节。

  批量大小:制造商希望引用他们可以为基准测试的最大数字,因此他们的 ResNet-50 基准数字通常是他们可以运行的最大批量大小。但对于边缘应用程序,几乎所有应用程序都需要批量大小 = 1 以实现最小延迟。考虑一辆车:如果你正在寻找像行人这样的物体,你需要尽快意识到它们。因此,大批量可能会最大化吞吐量,但在边缘需要的是最小延迟,即批量大小为 1。

  如果 ResNet-50 在批量大小 = 1 的百万像素图像上运行,则它对于真实世界模型来说并不是一个糟糕的基准。但它不是通常使用的一个好的基准。

  真实世界模型和图像 - 推理基准测试的第三阶段

  客户在学习曲线中达到的下一个阶段是他们应该找到一个具有与他们相似特征的开源神经网络模型:相似类型的模型(CNN 或 RNN 或 LSTM),相似大小的图像(或其他输入类型),相似的层数和相似的操作。

  例如,对 CNN 感兴趣的客户他们最常问的问题是:“对于 2 兆像素(或 1 或 4),YOLOv2(或 YOLOv3)的每秒帧数是多少?”

  真正有趣的是,尽管大多数客户都想了解 YOLOv2/v3,但几乎没有制造商为其提供基准(一个例外是 Nvidia Xavier,它将 YOLOv3 的基准为 608x608 或 1/3 兆像素)。

  YOLOv3 是一个压力很大的基准测试,它很好地测试了推理加速器的鲁棒性:6200 万个权重;100+层;和超过 3000 亿个 MAC 来处理单个 2 兆像素图像。对该模型进行基准测试显示了加速器是否可以同时获得高 MAC 利用率、管理存储读取/写入而不会使 MAC 停滞,以及互连是否可以在内存和 MAC 之间有效移动数据而不会停滞计算。

  当然,不仅仅是吞吐量很重要,实现吞吐量的成本和功率也很重要。

  2000 美元和 75 瓦的 Nvidia Tesla T4 可能具有您想要的吞吐量,但可能远远超出您的预算。

  客户考虑的另一件事是他们计划运行的模型的吞吐量效率、吞吐量/美元和吞吐量/瓦特

  第 4 阶段:对吞吐量、功率和成本的实际模型进行基准测试

  客户对基准推理学习曲线的最后阶段是开发自己的模型,使用通常来自 Nvidia 或数据中心的训练硬件/软件,然后在可能的目标推理加速器上对该模型进行基准测试。

  通过这种方式,客户可以真正判断哪个加速器将为他们提供最佳的吞吐量效率。

  终点似乎很明显,但事后诸葛亮。神经网络推理非常复杂,所有客户都要经过学习曲线才能得出正确的结论。

  审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分