本文作者: JOHN KOON

如何利用 AI 加速边缘计算?

人工智能正被设计到越来越多的边缘芯片和系统中,用于加快海量数据的处理速度,并通过划分和优先级来降低功耗。反过来,这使得系统能够更快地处理这些数据。

在边缘而不是在云中处理数据提供了许多有充分说明的好处。因为生成数据的地方和处理数据的地方之间的物理距离更短,所以延迟大大减少了。这也减少了移动数据所需的基础设施的数量,因为在初始处理之后路由的数据更少了。它还减少了移动数据所需的电量,以及存储数据的成本。然而,所有这些好处都可以通过利用某种形式的人工智能来扩展。

英飞凌互联安全系统部门总裁Thomas Rostock表示:“云肯定会发挥作用。“但必须有某种智能来减少进入云计算的数据量,并将其集中起来,然后得到答案。这是一个架构问题。”

人工智能是边缘设计的一个相对较新的转折点,它被用于识别芯片和系统级别的资源并确定资源的优先级。因此,虽然边缘计算已经广泛部署在许多不同的领域——包括多层处理,它可以跨越从传感器内部到内部和外部服务器层的所有内容——但人们认识到,可以从数据和处理数据的系统中提取更多的价值。

“如果我的汽车可以与我在屋顶上的太阳能系统进行通信,那么他们就可以同意何时为汽车中的电池充电,” Rostock说。“如果是多云天气,那可能不是最好的时间,所以我只加载到 50% 并等到天气条件好转后再进行其他操作。或者,如果我知道我明天要开车去较远的地方,我将需要一个充满电的电池,这样我就可以重写我的系统并说我需要超过 80% 的电量。在建筑物中,我们通过控制百叶窗遮挡阳光来节省能源。”

根据2021 年边缘状态报告,2019 年至 2028 年期间,边缘计算的累计投资将高达 8000 亿美元。这些投资中约有一半将用于边缘设备,另一半将用于边缘基础设施。如农业、航空、能源,包括石油和天然气勘探、现场服务管理、金融、医疗保健、制造业与智能工厂、电网监控、零售、智能建筑、智慧城市、供应链管理、监测、交通和运输、仓库管理等。

如何利用 AI 加速边缘计算?

图 1:边缘计算应用的细分市场。

其中一些支出将包括 AI/ML,这有助于优化边缘计算系统,特别是在推理方面。虽然大多数专家认为训练将继续在大型数据中心使用庞大的数据集进行,但推理可以使用各种处理元素在本地完成,包括 GPU、FPGA、eFPGA、NPU 和加速器/协处理器。这种本地多样性对于带宽有限或不一致以及处理受电池大小或类型限制的广泛应用非常重要。

Mixel创始人兼首席执行官 Ashraf Takla 表示:“边缘计算在消费者领域有许多应用,例如虚拟会议,可以使用笔记本电脑或会议平台。 ” “在虚拟会议期间,边缘处理可用于人脸检测、背景模糊、手势控制、智能静音和物体检测。消费者可穿戴设备还可以从边缘计算中受益,以检测用户周围的重要物体和声音,包括本地语音命令、用于简化设备 UI 的高级唤醒词以及面部和物体识别。然而,由于资源(包括电力)在边缘是有限的,人工智能是识别和优先处理最相关信息以进一步处理或传输到云端的关键。”

如何利用 AI 加速边缘计算?

图 2:边缘计算和云计算的比较

从上图我们可以看到,边缘计算在延时、带宽要求、能耗、安全性以及成本等方面都有着明显优势。

物联网设备的最初想法随着时间的推移而演变,融入更广泛的边缘计算概念。但是,不仅仅是一组通过网关将数据发送到云端进行处理的非智能传感器,许多边缘设备现在更加先进。

“我们已经看到我们的客户将 MIPI 用于为智能设备(如安全摄像头或其他依赖视频和音频输入的物联网设备)供电的 SoC。SoC 需要与外部源(视频和音频)连接,并将数据发送到预处理单元,以使图像和音频更适用于神经网络,”Takla 说。“神经网络集群和 SRAM 是主要处理发生的地方,包括分割、识别、推理以及其他功能发生的地方。”

这些设备中的许多设备可以在本地对数据进行分区和优先级排序,并且它们可以使用非常少的功耗来做到这一点。但它们的设计和制造难度更大,成本更高。

弗劳恩霍夫IIS自适应系统工程部设计方法论负责人Roland Jancke说:“需要进行多层次的模拟。”“你有一个反映所有功能的复杂模型,对于模型的不同部分,你需要更深入地研究细节。如果你只是引入数据或查看它如何与其他部分连接,你不需要这种细节,但你需要决定哪些部分需要详细建模。”

将 AI 设计到芯片

人工智能架构通常是围绕高数据吞吐量设计的,其中有大量并行工作的处理元素,通常使用较小的本地化内存。对于复杂的边缘设备,包括从汽车到智能手机的任何东西,设计工具利用AI来创造更好的AI芯片,这些芯片通常与其他芯片结合在一起。

“重要的不仅仅是芯片或设备,” Ansys半导体业务部副总裁兼总经理 John Lee 说。“这也是随之而来的软件。我们在这个领域看到的挑战是动态热管理,您正在设计芯片并且希望在某个时候获得最大性能。由于超出了温度限制,您需要降低该性能。如果您没有正确进行动态热管理,那么您的系统的性能可能会不合格。做到这一点的唯一方法是了解真正的工作负载是什么,即软件本身,然后使用仿真来启动并运行完整的工作负载。所以这非常重要。AI/ML 技术正在被用来应对这些挑战。”

尽管如此,使用 AI/ML 也会增加其他问题。“我们的客户利用各种能力的 AI/ML 为其ADAS系统增加价值,” Arteris IP高级技术营销经理 Paul Graykowski 说。“这些系统利用摄像头、激光雷达和其他传感器的功能来构建车辆周围的世界视图。例如,在读取限速标志时,机器学习可能会检测到新限速的存在。然后可以将新的限制馈送到云端进行额外的学习,然后可以将数据推送回路上的其他车辆。”

但是对于这些 AI 系统来说,什么是足够好的准确度,通常是根据数据分布以概率来衡量的,可能会因应用程序和用户而异。“在通过 ADAS 实现自动化的情况下,我们必须确保符合ISO 26262等标准,”Graykowski 说。“SoC 中的安全岛、冗余和故障模式分析只是其中的一些技术。所有这些都必须进行相应的测试。”

一般来说,精度越高,实现它所需的计算资源和能量就越多。这在汽车行业尤其明显,设计团队经常面临相互冲突的目标。西门子数字工业软件公司汽车和mil/aero混合物理和虚拟系统副总裁David Fritz说:“真正的问题是要满足欧洲、美国和日本的环境要求,因为它们都有不同的排放目标。”“与此同时,随着这些汽车变得更加智能,芯片制造商需要降低功耗,增加更多的计算能力。所以你必须平衡这两件事。但如何在不消耗更多能量的情况下让它更智能呢?”

其中许多系统具有固定的功率预算,这可以确定设备的使用方式,甚至可以确定使用哪种电池。

Arm公司的研发人员罗布·艾特肯(Rob Aitken)说:“如果你把摄像头之类的东西放在房子前面,你肯定不想经常更换电池。”“你只是想让它工作。这是一个相当孤立的应用,但它代表了在其他情况下会发生什么。如果一辆车有三种不同类型的电池,在不同的时间以不同的模式运行,你就必须设计包括传感器在内的系统,无论你在传感器上做什么或不做什么,都要将这些本地处理反馈给某种集中式计算系统。所有这些东西都有一些电池配置文件,但它在那里运行。电脑的运行方式-基本上是任务的划分,它们的编排-将取决于电池是什么。从Arm的角度来看,我们的主要立场是,‘告诉我们你的电池能做什么,我们就可以找出可能会优化其性能的东西。我们可以结合硬件/固件/软件,让你在特定的电池领域根据你想要优化的任何东西来定制你的操作。’”

预训练模型减少了 ML 训练时

人工智能可以在所有这些情况下提供帮助。问题是,训练人工智能做你想做的事情是非常耗时的。大量预先训练的模型简化了这一过程,即使它们并没有完全针对特定设备进行优化。集成一个预先训练的模型比从头开始的ML训练更划算。例如,对于一个零售应用来说,边缘设备需要经过广泛的视觉训练,才能学习人类的长相,以及如何在人类移动时计数。

对于ML来说,通过浏览数百万张图像来进行准确的预测并不罕见。此外,编程gpu可能也需要经历一个学习曲线。通过使用对YOLOv4对象检测进行预先训练的模型,开发人员可能可以绕过大部分训练过程。YOLOv4是一个灵活的、最先进的框架,使用底层语言编写,用于检测实时对象。

Flex Logix推理营销高级总监Sam Fuller说:“基于人工智能的边缘设备开发人员经常会遇到一个挑战,即想出一种具有成本效益的方法来训练设备。”“通过预先训练的模型,开发人员可以缩短设计周期,更快地进行测试。使用预训练的EasyVision平台与X1M芯片(50 FPS的YOLOv4检测),ML可以产生很好的结果。作为一个粗略的比较,这种组合将产生80倍的性能,在英特尔i5处理器上运行相同的算法,而不需要加速。”

了解 PPA 要求是关键

对于设计团队来说,最大的挑战之一是找出特定设计的各种可能性和权衡,并理解设备将如何使用。与过去不同的是,芯片主要是按照某种规格设计的,即使是无晶圆厂设计团队也常常很好地理解芯片将如何以及在哪里使用。在某些情况下,他们会直接与制造商合作,对解决方案进行微调。

Cadence公司Tensilica AI产品营销总监Suhas Mitra表示:“边缘部署场景可以产生各种潜在的解决方案。“要决定哪种硬件解决方案更适合应用,很大程度上取决于在设计阶段对关键功能、性能和面积(PPA)需求的理解。这可能导致许多不同的可能性或变体。例如,电池驱动的微型边缘设备(可听或可穿戴)可能需要非常低的功率和能量,但可能不需要高吞吐量。一个调优的AI加速器、DSP或MCU硬件都可以满足要求,但最终的选择可能取决于SoC的面积和功率预算。”

AI带来了全新的优化可能性,也带来了一些挑战。

Mitra说:“对于软件来说,终端用户必须用数据训练他们的网络,以微调AI工作负载。”“许多部署场景使用开源AI模型,可以减轻创建和迭代新AI模型的需求。在网络编译阶段,有两个处理AI工作负载的基本流程。一种涉及提前(AOT)编译,另一种更类似于基于运行时的流。这两种流目前都存在于基于应用程序需求的各种部署场景中。通过可编程IP,如dsp,最终产品也可以接收无线(OTA)更新,就像我们的手机和各种电子产品一样。通过这种方式,随着AI算法变得更加精细/调整/准确,它可以被发送到最终产品,从而带来更好的整体体验和性能改善。”

AI设计也涉及很多参数。开发人员必须考虑使用什么Arm或RISC-V控制代码来运行操作系统。然后必须考虑嵌入式cpu,包括DSP向量和NPU加速器。最大的问题是如何优化分区以获得最大性能。

一种方法是通过代码优化将所有这些功能集成到一个IP中。Quadric的首席营销官Steve Roddy说:“将NPU、DSP和实时CPU集成到一个IP中,为开发者节省了大量的编程时间和麻烦。”“深入研究一个函数来确定跨三个不同处理器IP块的最佳分区需要花费大量精力。在单核上运行性能关键控制和DSP和ML图形代码效率更高。”

边缘安全

连接到传感器和网络的边缘设备通常很脆弱,需要保护。最好的方法是合并具有内置安全性的解决方案,可以是被动的,也可以是主动的。它还会影响整体性能和功率,并最终影响成本。

Rambus产品管理高级总监Gijs Willemse表示:“预计大多数边缘设备将是自给自足的。”“尽管如此,由于它们的界面和接收软件更新的能力,它们很容易受到攻击。安全引导、设备身份验证和安全通信,以及对提供的关键材料的保护,对于在公共领域运行和/或可能被没收的设备至关重要。这需要一个信任的硬件根,并且根据应用的性能和延迟需求,硬件加速来加密/解密通过其接口传输的数据。这些硬件安全核心应该包括防篡改保护,以防止侧通道和故障注入攻击。”

边缘安全性越来越受到关注。更多的连接设备扩大了其他连接设备的攻击面,以及最初发生攻击的设备。

Arteris公司的格雷科夫斯基说:“我们不希望有人干扰位于边缘的设备。“我们采用的技术之一是内置在芯片上的网络中,能够在网络中嵌入防火墙,以确保只有预定的流量到达关键系统。”

最新的基于 AI 的边缘设计测试方法

基于人工智能的边缘设计过程很复杂,因为它有很多活动部件。它包括机器学习、训练、推理和选择最佳AI芯片/解决方案和传感器。此外,从定义上看,AI系统应该是适应和优化的。在设计周期的早期选择正确的测试方法和模型以减少错误是至关重要的。

在现场使用的芯片越长,难度就越大,而在安全或关键任务应用中使用的时间越长,难度就越大。因此,一个适应了几十年的芯片可能会与它最初制造时看起来非常不同。如果它是与其他系统的接口,它的行为在一开始可能很难预测。

“从设计阶段开始,我们如何将这些硅内显示器添加到芯片本身——无论是单模还是多模系统——然后在从生产到现场操作的过程中收集数据?Synopsys公司硅变现集团高级副总裁巴里·比斯瓦斯问道。“这属于软件定义硬件的领域,我们不仅会监控,还会优化。我们用EDA设计软件做了类似的优化。有自主设计系统可以优化设计创造过程。现在想象一下,这些系统在现场运行,然后优化变量,允许配置gpu和cpu。”

尽管如此,在这个等式中还有很多变动的部分,要弄清楚一款设备随着时间的推移会如何运行是很困难的。Cadence的Mitra说:“总的来说,AI边缘设计的测试涉及到从模型训练到推断和部署阶段的各个方面。”“我们的目标是设计出更好、更健壮的人工智能网络。在试运行阶段监控各种kpi并在部署阶段之前检测异常是非常重要的。采用更连续的测试和监控周期有助于理解如何通过收集和监控正常和敌对的用例来构建更好的网络。”

随着芯片的边缘计算和人工智能功能越来越多,减少设计过程中的误差就变得非常重要。目前,寄存器传输电平(RTL)仍然是设计SoC、FPGA和ASIC时最常用的语言。无论是单纯的边缘设计还是基于人工智能的边缘设计,最终目标都是实现性能、功率和面积(PPA)优化。如果能够在设计周期的早期发现错误,就意味着可以节省大量的成本。

数字硬件设计已经从门级转向寄存器传输级。如今,高级合成(High-LevelSynthesis,HLS)被用来将c++或SystemC代码中的算法设计合成为RTL。在系统设计中,当功能验证在RTL成功完成时,错误率将会降到绝对的最低。

“在基于人工智能的边缘计算中,包括智能物联网在内的边缘决策是基于传感器输入和分析做出的。通过这种方式,除非需要大量的计算,否则不需要云服务器的参与,减少了云流量,”西门子EDA战略和业务发展高级经理AnoopSaha评论道。“虽然基于人工智能的边缘计算有很多好处,但设计这样的系统可能很有挑战性。由于AI和AI芯片的复杂性,在设计过程中可能会引入错误。为了降低重新设计的成本,使用正确的验证工具(如HLS)来仔细执行HLS前和HLS后验证是很重要的。通过这种方法,设计师将能够消除基于人工智能的算法和架构中的错误。

如何利用 AI 加速边缘计算?

图 3:一个好的 HLS 测试方法包括 pre-HLS 和 post-HLS 验证。资料来源:西门子 EDA

结论

边缘计算有很多好处,包括低延迟、减少云流量、本地决策和降低总体成本。虽然嵌入式 AI 将增强边缘计算性能,但其部署提出了一些挑战。现在,使用预训练模型、基于标准的模型和集成 IP 有助于实施 ML 训练和推理。优先考虑安全性并使用最新的基于人工智能的边缘设计测试方法也将有所帮助。

因此,人工智能有望成为边缘计算越来越不可或缺的一部分。