继续Seeing Machines对DMS商业化落地遇到的挑战的总结。
在12nm节点上搭建Occula NPU性能模型
在不同的半导体技术节点上对Occula性能建模以进行比较有三个部分。
首先,在Occula上运行的任何给定算法的处理速度以FPS衡量,主要取决于Occula的时钟频率和确定性pipeline。虽然由于系统级的内存带宽策略存在一些差异,但可以通过包含一个小的安全边际来解决。
第二,Occula所需的芯片面积取决于门的数量和内部buffer和cache实例化的总RAM比特数。这些完全由ASIC设计流程中的综合结果决定。
第三,Occula的功耗取决于技术节点的泄漏特性、芯片面积、时钟频率和Occula内部各子模块的动态开关活动。
Stillmaker和Baas对这些因素及其微妙的相互作用进行了简明的解释。正如他们在论文中所指出的,如果我们有某一特定节点(例如22nm)的时钟频率、面积和功率值,那我们就可以用比例方程来估计不同节点的等效量。
我们已经在上面右栏中列出了我们的建模结果(灰色阴影部分)。我们的结论是,在12nm节点上,Occula最大需要0.9mm^2的面积,在结温125℃的最坏情况下的开关活动需要0.3w的峰值功率(鉴于在这之前系统层面上几乎肯定会出现内存瓶颈,这实际上是极难达到的)。考虑到芯片的老化,Occula在这个节点上的性能预计会产生至少500MHz的时钟频率。
实际上,由于Occula采用了智能pipeline的方式,便于定时关闭,所以有可能大大提升频率,但必须与DDR内存接口的速度保持平衡,因为这是芯片中的宝贵资源(正如我们前面所阐述的)。如果Occula的时钟超过500MHz很多,那么它很可能在等待来自DDR内存的数据,而不是真正有效地利用芯片的空间。我们将在下一节进一步讨论这个话题。
芯片面积的价值在开发一款新的SoC时,最重要的初始考虑是芯片面积,因为它直接关系到边际单位成本,从而关系到设备的售价。作为一个参考点,一个针对单机DMS市场的SoC处理器(2-4颗A53级处理器)在16nm节点的芯片面积可能在15-20mm^2之间。这是一个现实的估计,我们可以用它来说明高效的芯片设计和如何利用它的重要性,我们认为这就是芯片面积的价值。
图10显示了一个完整的16nm SoC产品的芯片面积分解的实例。这个简单的说明是为了让人们了解设备中各种功能的芯片利用率的相对差异。在下图中:视觉加速器可能是一个定制的可编程协处理器、DSP或NPU;视频编解码器是一个H.264编解码器,ISP能进行RGB-IR处理以及其他可视的视频流处理;CPU子系统有4个64位内核(每个核实现矢量扩展),有512KB的共享L2 cache。
应该注意的是,在这个例子中,实际上有三个不同的“加速”子系统,每一个都是为了减轻CPU计算量大的工作负荷。它们是H.264编解码器、ISP和视觉加速器。那么,为什么选择这些功能硬件化到芯片上呢?答案很简单,但并不总是那么明显。它可以归结为以下几点考虑。
1. 该任务是否会被使用该芯片的大多数应用所使用(即对大部分客户来说,它不是dead silicon)?
2. 硬件化功能是否有明显的减硅优势(即它比在CPU上运行的芯片成本低)?
硬件化任何功能的主要缺点是会失去灵活性。毕竟,CPU中的软件是最灵活的解决方案。一般来说,基于“标准”和无处不在的功能是硬件化的完美候选者,因为SoC制造商几乎不可能在其定义中漏掉什么,例如H.264编码器就是一个理想的候选者。
考虑到上述芯片面积的细分,现在可以对频繁和实时任务的芯片成本进行深入的分析。例如,在硬件化的H.264编码器中压缩全高清1080p视频流时,与在CPU上纯粹用软件进行压缩相比,芯片的利用效率如何?
我们对表6中的数据进行了一个简单的实验。一个时钟为200MHz的硬件化的H.264编码器可以跟上60fps的视频流,尽管只有一半的帧是RGB。换句话说,尽管以30fps的速度处理,编码器仍然必须优于16.6ms的帧延迟,因为剩余的帧是IR,它们将达到同样的速度;否则,编码器会因为迫使每个RGB帧先在DDR内存中缓冲而变得效率极低(正如我们在本文前面所讨论的那样)。
另一方面,一个时钟为800 MHz的A53内核用纯内存到内存的数据流编码一帧需要130ms,因此它完全不能满足30fps的要求。我们使用开源的x264工具,该工具已针对ARMv8指令集中的NEON SIMD扩展进行了大量优化。该数据表明,在权衡芯片面积的价值时,硬件化标准H.264算法可以提供相同的功能,其效率是A53内核的5倍以上。
现在让我们来看看视线追踪任务(执行我们专有的SM_TRACK网络),进行与Occula NPU相关的相同分析。表7比较了执行SM_TRACK网络的A53内核(带NEON SIMD扩展)和运行相同工作负载的Occula NPU。我们比较了两者的单次延迟,然后将该延迟率与A53内核的芯片面积进行对比,得出相对效率(与表6相同)。这再次表明,相对于在A53内核上运行的完全优化的软件版本,硬件化的Occula在执行我们的视线追踪算法方面的效率。
上述数据表明,当涉及到像视线追踪这样的实时任务时,以500MHz(ASIC实现的典型时钟)运行的Occula比以800MHz运行的A53内核至少能更好地利用芯片的空间12倍。这一比率是可以预期的,相对性能以及本文中说明的先前数据表明,具有NEON SIMD扩展的A53内核作为一个嵌入式处理器实际上是多么的通用。值得注意的是,A53内核和Occula NPU都可以按照其设计的架构执行其他多项任务。问题仍然是,对CPU造成负担的关键实时工作负载应该直接在芯片中加速,以获得最大效率。
结束语
为汽车行业构建DMS是一门艺术,也是一门科学。有多种策略可以部署,且每一种策略都有很大的不确定性。多年来,Seeing Machines一直处于设计DMS解决方案的前沿,以满足低成本、低功耗、高性能和大批量应用的最苛刻要求和市场压力。
我们驾驭这一艺术和科学的策略一直集中于以通过部署协同设计方法解决嵌入式挑战。现在,Occula NPU已经进入第八代,基于我们自己的算法发明和该领域的专业知识,我们精心设计了Occula NPU来优化DMS技术。
展望汽车市场这一领域未来的可能性,以及扩展到其他必须采用DMS技术的行业,我们看到了将这一技术的前沿推向更远的机会。在设计DMS产品时,我们有一个世界级的团队来利用这些机会,这要归功于我们深厚的专业知识和技能(从上到下跨越了整个堆栈)。