AI公司通常都以更高的TOPS(每秒一万亿次操作)作为评判算力的标准。但芯片制造商在推销他们的TOPS指标时,都不会真正提供准确的引导。在大多数情况下,他们大肆宣传的数字并不是实际的 TOPS,而是峰值TOPS。换句话说,您认为能在板卡中获得的TOPS 算力,实际上是芯片在不可能存在的理想世界中的最佳表现。
本文将论述业界因错误标记性能指标而导致的问题,并阐述用户该如何独立评估真实环境中的TOPS。
真假TOPS
AI应用开发人员通常以衡量芯片制造商发布的TOPS性能数据是否足以支持他们的项目来开始进行审查。
假设要在U-Net神经网络上以10 fps(每秒帧数)的速度重新制作全高清图像。由于U-Net处理每个图像需要3 TOPS算力,简单的数学计算表明,共需要30 TOPS才能按所需的FPS完成项目。在购买芯片时,您可能认为,那些声称运行50、40 甚至 32 TOPS 的板卡对您的项目来说应该足够了。在理想世界中,的确是这样的;但您很快就会发现,这些板卡很少能达到所宣称的算力。而且我们谈论的不仅仅是几个TOPS的下降,其计算效率可低至所宣扬的10%。
当然,调整神经网络可以从板卡中“榨出”更多的性能,但永远不可能接近供应商给出的峰值TOPS。即使试图获得60%或70%的计算效率,也将耗费巨大的时间成本。如果神经网络发生任何变化,您将不得不返回原点以再次优化所有内容——而且,它甚至可能根本不适用于您的应用。这个问题在小规模样本处理中尤为明显;幸运的话,您也许能够获得峰值TOPS 15%的算力。
计算效率
现在,您也许很想知道该如何计算真实的TOPS?这其实很简单!
要了解一个板卡的实际TOPS是多少,首先需要确定板卡的计算效率。理想情况下,这在目标板卡上运行您需要的神经网络就可以完成。不过有可能此时您还没有板卡。但通过查看更多来自供应商的营销数字细节,您仍然可以进行估算。通常,ResNet50或类似神经网络的性能数据是可以得到的。假设这是一个典型的ResNet50实现,则可以通过GOPS(每秒十亿次操作),而不是TOPS,来计算单个图像的算力。然后,只需将其乘以供应商宣传的每秒图像数量 (IPS),瞧!这样获得的TOPS将更实际,或者说更真实。
而效率也只是真实值除以峰值TOPS所得的比率,即:
峰值TOPS x 计算效率= 真实TOPS
该公式使用户能够在购买芯片之前,对板卡运行神经网络时的真实效率进行比较。您可以重复使用该效率计算需要的TOPS,看看它是否符合需求。虽然功率和样本大小等因素也会影响结果,但如果知道板卡的效率,利用该公式将可以很好地估计其在实际用例中的真实性能。当然,供应商发布的神经网络IPS也令人存疑,但相对于在实际需要的TOPS和板卡峰值TOPS之间进行比较,这种估算方法已经非常有效。
还有一点也值得注意,这不仅仅是GPU的问题。大多数专用ASIC的实际效率也非常低,其宣传效率明显夸大其词。但我们用IPS、已知的网络GOPS和一个简单的乘法,就可以得到一个较实际的数字。
高效替代品
GPU和ASIC在效率和性能方面都存在问题,但有一种替代方案不涉及这两种芯片中的任何一种。
2020年10月的MLPerf结果表明,结合了推理加速的FPGA比其他方案更高效,可以更接近其他芯片制造商宣传的峰值TOPS数据。
根据已发布的每个TOPS数据,比较不同架构下的FPS(来源:Mipsology)
FPGA的高效不仅体现在计算上,还体现在其用于计算时的硅片利用率上。从本质上讲,这些板卡可以实现“事半功倍”,以极低的成本获得更佳的神经网络性能。
再提醒一次:不要落入TOPS的营销陷阱。这是大多数神经网络在现实条件下永远达不到的夸大的性能数据。相反,请利用这个公式:
峰值TOPS x计算效率=真实TOPS
这将帮助您快速、轻松、准确地比较性能需求和实际芯片性能,而不会被任何夸大的供应商声明所误导。
(参考原文:TOPS: The Truth Behind a Deep Learning Lie)
责编:Amy Guan
本文为《电子工程专辑》2021年9月刊杂志文章, 版权所有,禁止转载。点击申请 免费杂志订阅