在过去的十年中,神经网络已经从有趣的研究发展到广泛用于语言翻译、关键词识别和对象识别。
长期以来,神经网络仅限于具有运行神经网络所需的计算资源的数据中心,最初是在微处理器上,然后越来越多地在GPU上,这些GPU具有运行神经网络所需的更多MAC。
英伟达最近宣布,其推理产品的销量首次超过了其培训产品的销量。
随着推理转移到功耗和成本预算受限的边缘(数据中心以外的任何地方),客户正在寻找能够以他们所能承受的价格和功耗提供所需吞吐量的推理加速器。
本博客讨论了如何对推理加速器进行基准测试,以找到最适合您的神经网络的推理加速器;以及客户在学习曲线上通常如何发展他们对基准测试的思考。神经网络推理令人兴奋但很复杂,因此最初非常令人困惑。当客户解决问题时,指示灯会逐步亮起。
首先,让我们回顾一下推理加速器的常见元素及其运行的神经网络。
所有推理加速器的通用元素
所有推理加速器都具有以下共同点:
MAC(很多)
片上静态存储器
片外内存内存
控制逻辑
所有单元之间的片上互连
元素的数量和组织在推理加速器之间差异很大;组织 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+ 倍的百万像素图像。对于 224x224 图像,ResNet-50 可能在芯片/模块/板上运行良好,但对于百万像素图像可能不行,因为较大的图像会比较小的图像对内存子系统施加更大的压力。对于 200 万像素图像,中间激活可以是 64Mb,而对于 224x224 图像,中间激活最多为几兆字节。
批量大小:制造商希望为基准测试引用他们所能引用的最大数字,因此他们的 ResNet-50 基准测试编号通常针对他们可以运行的最大批量大小。但对于边缘应用程序,几乎所有应用程序都需要批量大小 = 1 才能将延迟降至最低。考虑一辆车:如果您正在寻找行人等物体,则需要尽快意识到它们。因此,大批量大小可能会最大化吞吐量,但在边缘需要的是最小延迟,即批量大小为 1。
ResNet-50 对于现实世界的模型来说不是一个糟糕的基准,如果它在批量大小 = 1 的百万像素图像上运行。但它不是通常使用的良好基准。
真实世界模型和图像 - 推理基准测试的第三阶段
客户在学习曲线中达到的下一个阶段是,他们应该找到一个与他们相似的开源神经网络模型:相似类型的模型(CNN或RNN或LSTM),相似的图像大小(或其他输入类型),相似的层数和类似的操作。
例如,对 CNN 感兴趣的客户最常问:“对于 200 万像素(或 1 或 4)的 YOLOv2(或 YOLOv3),您的每秒帧数是多少?
真正有趣的是,尽管大多数客户都想知道YOLOv2 / v3,但几乎没有制造商为其提供基准测试(一个例外是Nvidia Xavier,它将YOLOv3基准为608x608或1/3百万像素)。
YOLOv3 是一个非常紧张的基准测试,是对推理加速器鲁棒性的一个很好的测试:6200 万个权重;100+层;以及 》3000 亿 MAC 来处理单个 200 万像素的图像。对该模型进行基准测试可显示加速器是否可以同时获得高 MAC 利用率、管理存储读/写而不会使 MAC 停止,以及互连是否可以在不停止计算的情况下有效地在内存和 MAC 之间移动数据。
当然,重要的不仅仅是吞吐量,还有实现吞吐量的成本和功率。
售价 2000 美元和 75 瓦的 Nvidia Tesla T4 可能具有您想要的吞吐量,但可能远远超出您的预算。
客户考虑的另一件事是他们计划运行的模型类型的吞吐量效率、吞吐量/$和吞吐量/瓦特
第 4 阶段:对吞吐量、功耗和成本的实际模型进行基准测试
客户对基准推理的学习曲线的最后阶段是使用训练硬件/软件(通常来自 Nvidia 或数据中心)开发自己的模型,然后在可能的目标推理加速器上对该模型进行基准测试。
通过这种方式,客户可以真正分辨出哪个加速器将为他们提供最佳的吞吐效率。
终点似乎很明显,但一切都是事后诸葛亮。神经网络推理非常复杂,所有客户都要经历学习曲线才能得出正确的结论。
审核编辑:郭婷
-
gpu
+关注
关注
28文章
4702浏览量
128710 -
微处理器
+关注
关注
11文章
2247浏览量
82323
发布评论请先 登录
相关推荐
评论