了解可能限制理论峰值性能的瓶颈。
很多时候,您会听到供应商谈论他们的芯片有多少个TOPS,并暗示更多的TOPS意味着更好的推断性能。
如果你使用TOPS来选择你的AI推理芯片,你可能会对你得到的结果不满意。
最近,麻省理工学院的教授Vivienne Sze做了一个题为“如何评估有效的深度神经网络方法幻灯片也是可用。她的谈话比这个博客详细得多。
TOPS是什么?
TOPS =每秒数万亿次操作;其中乘法运算被认为是运算,加法运算被认为是运算。TOPS可以是4位整数、8位整数、16位浮点数等。通常,对于推理,关键的计算构建块是乘法-累加(MAC),它是2个操作。
通过查看有多少MAC硬件单元以及它们以何种频率运行,可以计算芯片的TOPS。如果你有1000台MAC以1ghz(每台MAC 1 ns)运行,那么你就有1台TOPS。
更多的TOPS意味着更多的硅面积和更多的成本。但这并不一定意味着更高的吞吐量。
还有许多其他瓶颈。例如,在Xilinx FPGA中,可能有数千个mac本身可以非常快地运行,但连接它们的FPGA互连是瓶颈。在ASIC中,mac在争夺总线、缓存存储器访问和DRAM访问时,可能会出现数据进出的瓶颈。正在运行但无法获取数据的mac不会做任何有用的工作。
因此TOPS仅仅是理论峰值推断性能的一个指标。
根据我们的经验,那些问“你有多少个TOPS”的客户会假设,对所有神经网络模型来说,更多的TOPS会带来更多的线性吞吐量。
对客户来说真正重要的是他们想要运行的模型。
事实上,对于边缘系统,神经网络处理可以很好地描述为特定于应用程序的推理,因为任何给定的客户只关心他们模型的性能。
你可能认为ResNet-50是TOPS不能预测性能问题的解决方案。但不幸的是,ResNet-50并不是客户真正想要运行的模型代表。原因是ResNet-50是分类224×224图像的基准,而客户通常希望处理更大的百万像素图像。
对于224×224图像,能够很好地运行ResNet-50的加速器在处理百万像素图像时可能会崩溃,因为中间激活所需的内存容量变得非常大,通常需要非常高的内存容量和/或带宽。
我们发现人们最常要求使用的模型是YOLOv3在100万或200万像素图像上的物体检测和识别。如果您打算选择一个开源模型来对加速器进行基准测试,YOLOv3是一个不错的选择。
下面是我们最近在AI硬件峰会上展示的一张图表,将我们的新InferX X1使用YOLOv3 INT8 batch=1在608×608对Nvidia Xavier NX, Nvidia Tesla T4和Blaize El Cano进行了基准测试。
更多的TOPS和更多的DRAM连接与更大、更昂贵的芯片和封装直接相关。
由于芯片的大小相差超过10倍,我们通过归一化每个DRAM连接数量的吞吐量(每秒推理)和每个TOPS数量的吞吐量来比较架构的效率。
你可以看到3个GPU解决方案大致集群,所以对他们来说,TOPS大致与吞吐量相关。但是InferX X1有一个非常不同的,更有效的解决方案,因此每个TOPS数量的吞吐量提高了约5倍。但即便如此,我们也看到客户模型具有不同寻常的卷积运算,其中InferX X1相对于Xavier NX的吞吐量比YOLOv3高出10倍。
TOPS会让你得出错误的结论。对加速器进行基准测试的唯一好方法是在它和替代方案上运行您的模型。
留下回复