AI驱动的设计应用
Synopsys ARC 处理器工程经理 Derya Eker
Synopsys ARC 处理器研发工程师 Diego Gonzalez Montes
当今的高端片上系统 (SoC) 需要处理日益增长的计算密集型工作负载,但同时必须谨慎权衡功耗与性能。广泛部署人工智能 (AI) 和深度学习的需求激增。人脸识别已成为手机中至关重要的功能,并已扩展到智能可穿戴设备。通过增强现实和虚拟现实耳机识别物体和周围环境进一步突破了技术极限。自动驾驶汽车运用深度学习来解读、预测并响应关于周围环境的数据,以实现更安全、更智能的自动驾驶。
为了同时优化功耗和性能,软硬件开始更加紧密地结合在一起。设计人员必须在产品开发的早期阶段就选好关键架构,例如软硬件工作负载分配和 IP 供应商选择。当今的 SoC 都需要数百万美元的投资,所以准确估算 SoC 的功耗是决定您芯片成败的关键因素。
深度学习应用的性质,决定了芯片中的大多数处理元件都会长时间进行繁忙的计算。无论是智能手机还是自动驾驶汽车,目标设备的功耗都必须符合其功耗预算。另外,电池寿命,以及影响可靠性、封装和冷却的散热问题都额外施加了限制。掐准预算进行设计成为关键所在,因此尽早做出可以预见的准确功耗估算变得日益重要。
在讨论尽早准确地估算功耗存在的难题之前,让我们简要了解一下设计人员如何计算功耗。一台设备的功耗 (Ptotal) 可分为两种:开关活动引起的动态功耗 (Pdynamic) 和静态功耗 (Pstatic)。图 1 总结了影响这两个组成部分的主要参数。
图 1:视觉 SoC 设计中需考虑的功耗变量
图 2 显示了工艺技术扩展对动态功耗和静态功耗的影响。随着我们的技术节点变得越来越小,动态功耗也随之下降。但是,由于漏电流增加,静态功耗的占比越来越突出(左图)。除此之外,同一技术节点(右)中电池的阈值电压也会影响频率/延迟和漏电功耗。
为了获得更高的频率和性能,设计人员可能希望使用低电压阈值的电池。这会增加漏电流,应当计入静态功耗。在设计过程中,一直都需要权衡取舍,以在功耗和性能之间取得平衡。
图 2:工艺技术扩展对动态和静态功耗的影响
设计人员可以应用各种降耗技术来降低功耗:
由于在 AI 和视觉领域中性能和功耗紧密关联,因此有关性能和功耗的单个指标无法提供全面的信息。有许多因素影响功耗估算的准确性和正确性。因此,必须明确说明估算功耗的条件。 我们首先来看一下常用的指标:
代表性图表中以焦耳/帧为单位的能量是评估 CNN 应用功耗的最准确指标。然而,很难计算每帧的平均功耗。很多时候,为了更大化吞吐量,系统会以批处理或流水线模式同时处理多个图像。由于功耗和性能密切相关,因此应以正确的批次数量且/或在流水线处于稳定状态时进行功耗测量。单是处理一帧就可能需要数亿次循环。还需要更多次循环才能达到可以测量的正确稳态,有时需要数十亿次。前沿先进的仿真工具也无法在合理的时间内处理此类工作负载,即使是最小的图形也无法做到。
取而代之的是,设计人员经常测量诸如多层 SegNet 图(图 3)之类的图中单个卷积层的能效。然而,通常遇到的陷阱是将结果外推到整个图形。采取这样的捷径可能出现误导,原因如下:
因此,在不同的位置或图形架构中,同一层可能需要不同的能量。另外,还需要考虑其他层,例如激活函数、元素级别运算和反卷积。
图 3:SegNet 架构实现了多个卷积层。在不同的位置或图形架构中,同一层可能需要不同的能量,因此无法通过外推任何一层来表示整个图形
功耗估算的准确性与所使用的刺激正交,受所采用的功耗估算方法以及所测量设计的抽象级别的影响极大:
实际实现中捕捉的细节越多,功耗估算就越准确。小型综合基准的 RTL 仿真可能只要几分钟即可完成,但对于网表,则可能需要几小时或几天的时间。仿真非常有深度的 CNN 图(包括所有实现细节)可能需要几周的时间。这种仿真时间带来的难题增加了风险,因为 IP 供应商可能跳过此类详细的功耗分析和准确的功耗估算。结果导致实际功耗可能会超出功耗预算;随后则会在 SoC 功耗签核阶段出现明显的产品风险。
为了能够在全版网表上执行数十亿次 CNN 图运算,以尽量准确地执行功耗测量,仅仅使用仿真工具是不够的。Synopsys 的 ZeBu 仿真平台提供了一种解决方案,可以帮助 IP 开发人员和 SoC 设计人员在几分钟或几小时内(无需几周或几个月)为数亿个处理循环准确地计算功耗。ZeBu 服务器还支持高级使用模式,包括能耗管理验证、利用 Synopsys 的验证生态系统进行综合调试和集成、利用虚拟原型进行混合仿真,以及架构探索和优化。因此,使用 ZeBu 仿真器不仅可以轻松地探索各种候选硬件架构中应用软件的功耗/性能权衡,而且还可以有效地实现签核质量的功耗估算,从而有助于在设计周期的各个阶段,调整系统所有元件的功耗。使用 Synopsys 的 DesignWare® ARC® EV7x 视觉处理器的设计人员正在采用 Zebu 基于软件的功耗估算和签核流程,以便在使用 EV7x 处理器处理高性能深度学习应用时获得准确而切实的功耗估算。
估算 SoC 中 AI 应用的 IP 模块的功耗非常困难。设计人员需要周密考虑功耗估算过程的方方面面,才能确保在过程初期做出的决策,使得回来的硅片,功耗不超出预算。相较于在各个卷积层分别获取估算值,在 ZeBu 服务器等仿真系统上实现设计,则是一种更加准确地估算和调整功耗的方法。