加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 嵌入式NPU
    • 特定应用的NPU
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

DMS嵌入式加速器和神经网络(二)

2022/02/22
657
阅读需 13 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

DMS嵌入式加速器和神经网络(一)

继续Seeing Machines对DMS商业化落地所遇到的挑战的总结。

嵌入式NPU

在传统CPU上执行NN的尴尬适配,加上较小的晶体管设计节点的制造成本呈指数级上升(在可预见的未来,在对成本敏感的汽车领域,摩尔定律似乎已总结),导致了过去几年中NPU加速器设计的寒武纪大爆发。

这些新的NPU协处理器有晶体管分组和内存安排,试图优化执行任何类别的NN,芯片设计者认为这将受到算法开发人员的欢迎。不同的设计因产品所寻求的定位而不同。一些NPU作为独立的协处理芯片出售,另一些是可授权的内核。有些采用新的芯片技术,如使用纳米级电阻的内存计算。

现在的嵌入式NPU设计在数学运算符的数量和种类、这些运算符的精度、网络执行时数据块的排列、获取、缓存和传播方式,以及在不需要DDR内存访问或大量数据传输的情况下可在NPU内核内进行本地处理的最大网络规模方面存在差异。一些设计还结合了多个处理pipeline,以增加并行性和吞吐量(当然,这是以额外的芯片面积为代价的)。

嵌入式NPU的设计目的是在低成本、小尺寸、低功耗的“边缘”设备上执行NN。与云数据中心或工作站的设计相比,低成本、尺寸和功率的限制对NPU的能力有很大的限制,因此,嵌入式NPU必须根据具体应用的需要做出妥协。

产品能够在本地设备中部署NPU的优势和吸引力给SoC公司带来了压力,使其提供带有NPU加速选项的设备。然而,这正是这些公司的困难所在。问题是,SoC的设计周期从概念到发布通常是2-3年,而NN的最新技术每几个月就会发生变化。

芯片设计者面临的风险是,他们可以非常容易地锁定一个不能充分预见最新技术发展的处理架构。因此,当芯片发布时(要记住,芯片还需要为市场服务多年),NPU的设计在开发人员希望部署的加速NN方面可能几乎毫无用处。在这里,我们在前几节描述的关于内存带宽和ISP限制的问题同样适用;处理pipeline要么遇到效率瓶颈,要么根本无法执行开发者所需的网络。两种结果都不好。

在今天的市场上,有两种明显的NN加速方法。(i)设计和构建自己的定制NPU的公司,或者(ii)那些重新标记和重新利用不同类型的处理加速器IP的公司,以更符合NN的处理需要。后者主要是通过重构工具链来实现的,使它们能够吸收NN模型。例如,DSP、GPU或矢量处理器经常被包装在“AI”的营销方案中,并被定位为成熟的NPU。

不过我们必须提醒自己,加速器(一般来说)是SoC公司区分其产品的主要方式之一。因此,当然可以理解为什么半导体公司采用这些“包装”策略。然而,对于终端客户和算法开发人员来说,要想看穿营销的迷雾,可能非常困难。这是一个充满陷阱的领域,有很多误导性的统计数字和没提及的内容,直到被开发人员发现时已经太晚了,此时,不幸的客户发现自己身处经典的“围墙花园”,在这里,他们的财务支出、培训和代码承诺已经决定使用选定的SoC进行开发,这意味着更换设备太昂贵且风险太大。

当像Seeing Machines这样的开发者需要跟上最先进的技术并开发新的网络时,需要NPU(或任何加速器)无法支持的运营商或网络连接架构时,其结果是开发者无法将一流的算法实现到生产中,或者由于处理效率低下而必须在性能上做出妥协,这需要在pipeline的其他地方加以考虑。

为了说明这一点,下图显示了一些SoC对我们开发的视线追踪任务(观察驾驶员或前座乘客的一只或两只眼睛,并确定这个人最有可能盯着哪里)执行相同的加速功能。值得注意的是,视线追踪任务包含了一个具有非正统架构的NN。作为参考,图中还包括在A53 CPU(代码完全优化)上执行的相同任务,以及在FOVIO芯片上运行的Occula NPU。

各种SoC中视线追踪的加速实现

执行延迟显示了加速器硬件的不同设计是如何对处理效率结果产生巨大影响的。请注意,在这个表格中,我们显示了以毫秒为单位的延迟,作为最关键的衡量标准,而不是TOPS。我们有意显示了不同的NN加速器的TOPS数字的变化,以强调假设可以单独使用这个数字进行任何有意义的和实际的资源规划的危险。前面也提高过“吞吐量(或TOPS)可以买到,但延迟必须去争取”。

例如,60Hz的处理速率要求在16.6ms内完成所有的计算任务;同样,30Hz要求在33.2ms内完成。为了把视线追踪任务放到一个更广泛的角度,下图显示了在60Hz和30Hz处理期限以虚线叠加的情况下,我们的pipeline中视线追踪的总体时间分配情况。

视线追踪与未分配的计算带宽的例子

在这个图中,每个黄条表示在视线追踪之后可用于调度pipeline中所有其他任务的剩余时隙。这说明尽可能快地(和有效地)完成任务的目标才是永远重要的。这都是为了确保黄条越大越好,以最大限度地保留足够的资源来执行DMS功能堆栈的其余部分,在设备选择时,可能还包含尚未开发的客户特定功能。

比较表明,有一些加速器和芯片架构与我们的pipeline的这一特定部分非常不匹配,其中两个明显不能使用,第三个不比CPU好。还要注意的是,A53+NEON内核在运行这个特定的处理任务时是相当有效的,这主要是因为视线追踪工作负载在Seeing Machines为ARM处理器进行了彻底的优化(这在很大程度上得益于ARM指令集中的NEON SIMD扩展)。

在任何单机DMS嵌入式系统设计中,分配给整个DMS引擎的处理预算可能只有一个A53 CPU核,要求完整的算法堆栈总是在33ms以下执行(考虑的不是平均而是最坏情况下的执行路径)。因此,为这项任务分配9.5ms的时间可能不会很好地利用可用带宽(9.5ms/33.3ms=29%的CPU利用率)。因此,对加速器的需求很明显,尽可能地从CPU上卸载处理任务。

上图中的数据,以及前面介绍的关于RGB-IR处理的内存带宽的数据,显示了不同的SoC对于特定任务的相对性能,目的是强调芯片营销并不反映现实。事实是,不同的芯片设计以非常不同的方式处理NN处理需求,有很大的潜在结果范围。在某些情况下,芯片设计者或算法开发者可能会很幸运,创造出一个良好的匹配,但在嵌入式世界中,这样的偶然结果是非常罕见的。

总之,嵌入式性能在很大程度上是关于软件和硬件之间的匹配,或匹配程度。对于嵌入式NPU来说,NPU的设计如何与特定的NN技术相匹配才是至关重要的。

协同设计的方法在这一点上,我们很自然地会问,一个NN是否可以被重新开发以更好地匹配特定的加速器设计?在某种程度上,答案是肯定的,NN可以被机器学习专家重新设计以更好地适应特定的加速器设计。然而,这条道路绝非易事,也不便宜,而且结果也很难提前预测。

一个更好的方法是软硬件协同设计。在这个过程中,NPU和NN同步开发,两个设计团队紧密合作,构建一个由硬件和软件组成的单一优化“系统”。请注意,这是与前面讨论的通用NPU方法相相反的。

这种方法的一个问题是,NPU的设计需要频繁迭代,以跟上NN的发展。Seeing Machines为它的FOVIO芯片选择了FPGA技术,以便能够快速探索DMS解决方案的成本与性能空间,我们知道所涉及的市场时间框架,也知道我们需要深入优化嵌入,以便使单机DMS解决方案具有竞争力。

FPGA技术允许采用“算法优先”的设计方法来应对嵌入的挑战,并在某种程度上使我们的AI开发人员能够将最强大的NN技术整合进来,并使这些网络仍能非常有效地运行。

特定应用的NPU

“特定应用(application specific)”指的是旨在为有限和特定目的服务的芯片设计,因此能够避免因试图支持其他未知应用而导致的设计臃肿。采取协同设计的方法自然会导致解决方案只做他们需要做的事情,因此倾向于与他们的目标应用领域匹配得很好。

相比之下,“通用”的NPU将被设计为服务于广泛的(通常是不同的)网络架构和运营商。当芯片制造商决定他们的通用NPU的需求时,他们最终采用的特征和功能是由研究领域的技术水平和他们的终端客户在该时间点上使用的流行网络所引导的。当涉及到NN时,没有任何“标准”本身可以使他们的需求捕获成为一个简单的过程,但在研究和创新方面肯定有一些长期运行的线索,它们针对某些应用领域,如资源有限的嵌入式系统。最近的两个例子是谷歌的MobileNetV3 和Meta(前Facebook)的RegNet。

当定义一个通用的NPU架构时,面临的挑战是建立一个小而高效的芯片设计,能够预测NN的未来,尽管在工业界和学术界的研究和开发领域仍然是一个快速发展的领域,具有高度的不确定性。鉴于NN创新周期处于早期阶段,芯片供应商被迫广撒网,以确保在2-3年后,当他们出样时,应用领域没有发生地震式的变化。这当然会导致相当大的容量和能力,而这些容量和能力必然是次优的和低效的。

另一方面,特定应用的NPU可以以一种非常狭窄和有针对性的方式来定义。围绕包括什么和排除什么的关键决定是由算法设计驱动的。这通常意味着对数学运算符集进行删减,使之尽可能地与专有算法相匹配。我们仍然需要一些空间和灵活性,以适应未来的变化,但在采取共同设计方法时,这是一个完全可行的权衡,这也是我们在Seeing Machines多年来一直在做的。一个简单的例子是,特定应用的NPU的运行参数可以在不增加芯片面积的情况下实现运行时可编程

相关推荐

电子产业图谱

C.A.S.E.及大出行领域学习及知识分享。欢迎业内朋友交流~!