本文作者: aiMotive 执行顾问Tony King-Smith
本文,我将尝试提炼我的所学,以便在涉及汽车 AI 硬件平台时帮助工程师寻找真正的解决方案。
爱因斯坦曾经说过:“我们不能用制造问题时的同一水平思维来解决问题。”
为什么我们喜欢大数字?
作为一名拥有 40 多年半导体业务研发总监和CMO管理经验的工程师,我认为我自己和我的同行都合乎逻辑。然而,我们中有多少人可以诚实地说我们没有被“我的产品比你的产品快”之类的说法所诱惑?恐怕这只是人性。
问题始终是定义之一:我们如何定义“更快”或“更低功率”或“更便宜”?这是基准测试试图解决的问题——它是关于拥有一致的上下文和外部标准,以确保你在比较的是同类测试。任何使用基准测试的人都非常清楚这一点(比如aiMotive就诞生于一家领先的 GPU 基准测试公司)。
在尝试比较汽车 AI 应用的硬件平台时,解决这种需求从未像现在这样紧迫。
什么时候 10 TOPS 不是 10 TOPS?
无论是否有专用的 NPU,大多数 SoC 都将其执行神经网络工作负载的能力称为 TOPS:代表每秒 Tera次的操作数。这只是 NPU(或整个 SoC)每秒可以执行的算术运算总数,无论是集中在专用 NPU 中还是分布在多个计算引擎(如 GPU、CPU 矢量协处理器、或其他加速器。)
但是,没有任何硬件执行引擎可以 100% 的效率执行任何工作负载。对于神经网络推理,某些层(例如池化或激活)在数学上与卷积非常不同。在卷积本身(或池化等其他层)开始之前,数据必须重新排列或从一个地方移动到另一个地方。其他时候,NPU 可能需要等待来自控制它的主机 CPU 的新指令或数据,每个层甚至每个数据块。这些都会导致进行更少的计算,从而限制了理论上的最大容量。
硬件利用率——不是它看起来的样子
许多 NPU 供应商会引用硬件利用率来表明他们的 NPU 执行给定神经网络工作负载的情况。这基本上是说,“这是我的 NPU的理论容量有多少被用于执行神经网络工作负载。”当然,这告诉我我需要知道什么。
不幸的是没有。硬件利用率的问题是定义之一:数量完全取决于 NPU 供应商选择如何定义它。事实上,硬件利用率和 TOPS 的问题在于它们只告诉你硬件引擎理论上能够实现什么,而不是它实现的程度。
这可能会导致一些误导性信息。下面的图 1 显示了我们在4 TOPS的 aiWare3P NPU 与另一个额定为 8 TOPS 的知名 NPU 之间进行的比较。
图 1:两个汽车推理 NPU 的利用率与效率比较(来源:aiMotive 使用公开可用的硬件和软件工具)
对于两个不同的知名基准,该NPU声称与 aiWare3P 的 4 TOPS 相比容量为 8 TOPS,这应该意味着它将提供比 aiWare3P 大约高 2 倍的 fps 性能。然而,实际上,情况正好相反:aiWare3P 提供了 2 到 5 倍的性能,尽管它只是声称的 TOPS 的一半!
结论是,TOPS 是衡量 AI 硬件能力的一种非常糟糕的方法;硬件利用率几乎与TOPS一样具有误导性。
NPU 效率和自治:优化 PPA 的关键
这就是为什么我认为您必须根据执行一组有代表性的工作负载时的效率来评估 NPU 能力,而不是原始的理论硬件能力。效率定义为在一帧内执行特定 CNN 所需的操作数,占声称的 TOPS 的百分比。这个数字是完全根据定义任何 CNN 的底层数学算法计算出来的,而不管 NPU 实际如何评估它。它比较了实际与声称的性能,这才是真正重要的。
表现出高效率的 NPU 意味着它将充分利用用于实现它的每平方毫米硅片,并转化为更低的芯片成本和更低的功耗。效率可以为汽车 SoC 或 ASIC 实现最佳的 PPA(性能、功率和面积)。
NPU 的自治性是另一个重要因素。 NPU 在主机 CPU 上放置多少 CPU 负载才能达到最高性能?这与内存子系统有什么关系?必须考虑 NPU作为任何 SoC 或 ASIC 中的一个大块——它对芯片和子系统的其余部分的影响不容忽视。
结论
在设计任何 SoC 或 ASIC 汽车时,AI 工程师必须专注于构建能够可靠地执行算法的生产平台,同时实现卓越的PPA:最低功耗、最低成本、更高性能。他们还必须在设计周期的早期就对硬件平台的选择做出承诺,通常是在最终算法开发完成之前。
效率是实现这一目标的最佳方式;无论是TOPS还是硬件利用率都不是好的衡量标准。如果要满足苛刻的生产目标,评估 NPU 的自主性也至关重要。
Tony King-Smith 是 aiMotive 的执行顾问。他在半导体和电子领域拥有 40 多年的经验,为松下、瑞萨、英国航空航天和 LSI Logic 等多家跨国公司管理研发战略以及硬件和软件工程团队。Tony曾经担任领先的半导体 IP 供应商 Imagination Technologies 的 CMO。