多款神经网络SoC铺就自动驾驶之路

多款神经网络SoC铺就自动驾驶之路,第1张

开发自动驾驶 SoC 相当于让三辆高速跑车从不同方向汇聚在同一个路口。每辆车都在一条任务关键的道路上,但驾驶员能否安全地通过十字路口而不会减速、停车或撞车?现在,不用汽车,想象三个相互冲突的设计要求在 SoC 设计的同一交叉点上汇聚:

1. 安全2. 近实时嵌入式性能3. 超级计算复杂性

开发自动驾驶技术对半导体行业来说是一个令人兴奋的增长机会,它将吸引来自传统和非传统 SoC 设计团队的许多开发人员。赌注很高,因为第一名的获胜者将主导市场。第二名和第三名的选手可能能够生存下来,但获得第四名到第 20 名的公司将没有太多值得庆祝的事情。

工程挑战是将所有三个特性(安全性、性能和复杂性)同时集成到一个设备中。这些要求可能会以个人计算机、移动电话和数据中心系统没有的方式困扰系统设计人员。自动驾驶芯片必须在经济上可行,并满足汽车 OEM 和监管机构的技术期望。

当前趋势和 ISO 26262

自动驾驶系统中的安全和超级计算要求极其复杂,并为提供近实时性能带来障碍。因此,如果仅通过软件添加功能安全机制,性能将受到影响。

高级驾驶辅助系统 (ADAS) 的设计者曾经试图通过创建更复杂的软件来解决这些挑战。这种方法对于自动驾驶来说是不可持续的,因为它会对系统延迟、处理带宽和安全性产生不利影响。此外,一旦在现场部署软件,升级和维护系统会产生更多的风险和成本。

幸运的是,ISO 26262 规范为 ADAS 设计的软件和硬件开发提供了指南,同时为 CPU、内存控制器和片上互连添加了安全机制。

ISO 26262 规范支持开发更复杂的自动驾驶 SoC。这些系统使用多个异构硬件加速实现神经网络。这有助于更高效的视觉处理、传感器融合和自动驾驶功能。

多款神经网络SoC铺就自动驾驶之路,poYBAGLzKKGAUW7sAAE0wGKiMEk197.jpg,第2张

图 1:当前的机器学习和 ADAS 芯片将算法处理拆分为多种硬件加速类型,以优化处理效率。

机器学习驱动复杂性

在这里,要了解复杂性的程度,您必须首先考虑硬件工程师在创建功能安全的超级计算系统时面临的挑战。对于自动驾驶 SoC 设计,响应物理世界中不断变化的条件是应对这一挑战的基本要求。

好消息是物理世界存在于微秒时间尺度上,而计算世界则在纳秒范围内工作。坏消息是,与移动和 PC 领域不同,自动驾驶 SoC 必须执行一种称为深度机器学习的人工智能。

为了避免依赖在复杂的物理世界中永远无法工作的预编程算法方法,实现神经网络的硬件架构正在成为实现深度机器学习的最佳方法之一。

机器学习需要多次计算才能为系统计算出有用的“答案”。为了在物理世界的时间预算内得到答案,需要对这些计算进行简化、并行化和硬件加速。

硬件加速

自动驾驶硬件将通过将 SoC 划分为执行特定算法任务的区域来驱动机器学习。它是通过优化和连接的处理节点完成的。这些处理节点是在神经网络中充当神经元的自定义处理元素或硬件加速。

多款神经网络SoC铺就自动驾驶之路,poYBAGLzKKWALaIlAADxG47KdQA498.jpg,第3张

图 2:在现代机器学习系统中,更大份额的算法处理被配置在自定义硬件加速上。

为了减少计算延迟,必须通过特定算法的硬件加速在 SoC 架构中实现更大份额的机器学习处理。它有助于管理处理节点之间通信路径中的延迟、带宽和服务质量 (QoS)。

随着硬件加速数量的增加,实现自动驾驶的近实时性能变得越来越困难。因此,连接加速的片上互连成为提高效率的关键组件。相比之下,由于芯片到芯片或服务器到服务器的通信,数据中心神经网络可以承受相当多的延迟。

缓存一致性趋势

除了低延迟要求之外,神经网络和超级计算 *** 作还需要处理节点之间的高带宽通信,以保持它们的有效馈送。它允许尽可能快地完成信息的计算和共享。

共享信息的一种方法是将存储器(通常以内部 SRAM 的形式)耦合到每个处理元件或子系统。然后将该内存用作输出邮箱,为后续计算步骤提供输入。随着处理元素数量的增加,在软件中管理这种类型的通信变得难以维护并且增加了延迟。

处于创新前沿的自动驾驶 SoC 设计团队一直在采用异构缓存一致性。它是一种可扩展的方法,用于实现高带宽和低延迟的片上通信,因为它简化了软件。

自动驾驶竞赛正式开启了 SoC 设计中硬件加速的突出新时代。过去,主 CPU 或 CPU 集群是芯片上最重要的硬件块。

今天,硬件加速越来越受到重视,因为 SoC 架构师现在通过将复杂算法划分为更小的计算来进行创新。并且这些计算可以通过硬件加速和最好地连接和馈送该处理网络的架构来更有效地处理。

功能安全

功能安全为自动驾驶 SoC 开发增加了另一层复杂性。SoC 将在一个方案中执行所有自动驾驶功能,该方案将检测并在某些情况下纠正错误和故障。检测和纠正故障需要额外的系统逻辑,这可能会窃取超级计算功能的处理能力,特别是如果它是在软件中实现的。

设计团队的关键是分析他们的系统,并根据各种故障的危害和风险实现基于硬件的故障检测和修复能力。此外,它们可以补偿纯软件故障检测方法的复杂性。

多款神经网络SoC铺就自动驾驶之路,poYBAGLzKKiALU6zAABvEFsAaK0309.jpg,第4张

图 3:功能安全复制某些逻辑并比较结果以识别故障。

解决硬件故障将为 SoC 设计增加额外的逻辑。这将增加延迟和芯片面积,而这通常是满足系统 QoS 和功耗要求的唯一方法。例如,SoC 互连单元复制可以为 *** 作增加几个时钟周期的延迟,从而增加完成任务的纳秒时间。

然而,在软件中实现等效的功能安全机制不仅需要更多毫秒级的时间,而且还需要更多的功耗,尤其是对于任何片外 DRAM 访问。

支持硬件开发团队

要同时实现这些“油水相依”的要求,公司将需要功能安全、近实时嵌入式处理和高性能计算方面的专业知识。大多数公司可能拥有一两个领域的知识,但不是全部三个。因此,他们必须在缺乏经验的领域发展和招聘。

功能安全知识很难获得。这是因为缺乏具有功能安全知识的工程师。许多专家可能不精通汽车行业必须制造的高度复杂的半导体类型。

至此,通往自动驾驶 SoC 的道路要经过开发者的执行办公室。这些学科中的每一个都没有足够的技能可以从其他公司招聘,而且能够将它们组合在一起的人就更少了。

该软件将在自动驾驶时代引起媒体“热议”,因为它的进入门槛比硬件开发低,更容易被投资者理解。然而,真正创新的是半导体开发商,他们设计了经过微调的定制硬件来执行复杂的软件。

这些团队已经创建了 ADAS 系统,为成功集成三层复杂性提供了模型:安全性、延迟和性能。这些趋势为自动驾驶 SoC 的外观提供了线索:为高效代码执行而优化的紧密耦合的硬件-软件设计;支持深度机器学习的缓存一致的 SoC 架构;和多个异构处理元素。

以及在不牺牲电源效率、性能和面积的情况下实现功能安全的智能方法。你准备好了吗?启动你的引擎,不要害怕停下来问路。

审核编辑:汤梓红

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/3001131.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-27
下一篇 2022-09-27

发表评论

登录后才能评论

评论列表(0条)

保存