中文 英语
系统与设计
的意见

ADAS和自动驾驶SoC设计中的神经网络

为什么在将深度学习融入汽车设计时,互联至关重要?

受欢迎程度

汽车电子已经迎来了半导体设计创新的新浪潮,其中一项备受关注的新技术是神经网络(NNs)。先进的驾驶辅助系统(ADAS)和自动驾驶汽车设计现在依靠神经网络来满足复杂物体识别算法的实时要求。

自第二次世界大战以来,神经网络的概念就已经出现,预示着大脑启发的算法能够根据训练和环境进行学习,而不是明确的if-then编程。该技术最近才进入商业领域,作为实现机器学习(ML)的一种方式,主要是由于三个因素:

  • 训练所需的庞大数据集(“大数据”)的可用性
  • 硬件足够强大,可以用于“后端”和接近实时的推断/决策
  • 高效执行算法的新软件

退一步说,ML是人工智能这依赖于经验学习,而不是编程来做决定。深度学习(DL)是ML的一个子集,它能够获取没有任何意义的原始信息,并构建系统可操作的信息的有意义的层次结构表示。

神经网络已经成为自动驾驶系统中实现深度学习的主要手段,专门的硬件加速器运行车载神经网络来对行人和路标等物体进行分类。当车载神经网络系统难以识别一个物体时,它可以记录当时汽车的环境,并将该信息无线发送到数据中心,该数据中心使用新信息通过重新计算和更新汽车神经网络中的权重来(重新)训练系统。


图1:用于目标检测和分析的神经网络操作示例。(资料来源:Lee et al., 2011年ACM通讯)

以识别车前物体的神经网络训练操作为例(图1)。训练过程决定了每个神经元输入或物体的权重,一旦扩大和训练,能够识别物体的神经网络就会对输入或物体进行分类。为了在车辆中以接近实时的延迟实现这一点,在大型复杂的片上系统(SoC)设计中使用专门的处理和数据流功能实现了神经网络。

在许多方面,汽车电子正在推动机器学习和神经网络技术的发展。下面是将神经网络集成到汽车SoC设计中时真正重要的因素。

互连和内存架构
在基于ml的SoC设计中,ADAS和自动驾驶汽车架构师通过添加更多硬件加速器来提高神经网络的效率,从而将专门的处理和数据流功能切割得越来越细。随着处理单元的类型和数量的增加,连接这些处理单元的SoC互连和内存架构变得至关重要。

由于ADAS和自动驾驶车辆需要接近实时的系统响应,以及满足车辆功耗预算的需要,大量使用相对缓慢和耗电的片外DRAM访问对于神经网络架构来说是不可能的。为了保持处理元素附近的数据局部性并降低功耗,汽车芯片开发人员通常依赖两种设计技术:与硬件元素紧密耦合的内部sram和硬件缓存一致性。


图2:内存架构和互连是在汽车soc中实现神经网络加速器的关键。(来源:Arteris IP)

对于处理元素较少的较小设计,专用内部sram用作紧密耦合存储器通常就足够了。当架构师将系统扩展到数十或数百个硬件加速器时,问题就出现了。随着元素之间连接数量的增加,内存面积也随之增加,手动管理内存访问所需的软件复杂性也随之增加。

因此,对于较大的设计,架构师对部分或全部NN硬件架构使用硬件缓存一致性。高速缓存一致性还允许汽车SoC设计中的处理元素共享数据,而无需直接软件管理的开销。

Interconnect的数据流杠杆
接下来,除了内存访问机制之外,还必须在神经网络soc中优化整体数据流,以确保在ADAS和自动驾驶汽车设计中满足带宽和延迟要求。因此,无论是设计缓存一致性内存架构还是非一致性内存设计,SoC开发人员都必须正确配置片上互连。

在我们进一步讨论互连结构之前,值得一提的是,即使在非相干SoC设计上,也可以通过使用可配置的代理缓存实现缓存一致性。每个代理缓存的关联、连通性和行为可以针对特定用途进行优化,例如ADAS和自动驾驶汽车应用程序中的对象分类。

现在,回到片上互连,这对于处理处理元素的不同数据需求(包括大小、访问模式和频率)以及优化这些需求以满足整体SoC性能目标至关重要。数据流优化在确保服务质量(QoS)以满足带宽和延迟需求并避免性能下降方面也至关重要。

互联和功能安全
SoC互连在确保功能安全方面也至关重要,因为它可以看到芯片上传输的所有数据。片上互连可以发现并在某些情况下修复错误,以提高芯片的安全性,从而根据ISO 26262汽车功能安全标准促进诊断覆盖。


图3:互连结构如何确保功能安全的数据保护。(来源:Arteris IP)

互连技术可以通过两种方式帮助汽车soc通过数据保护技术实现功能安全:首先,通过对芯片中具有安全性或可靠性要求的所有数据部分进行错误码校正(ECC)和奇偶校验保护;其次,通过使用影响包内容的互连部分的智能硬件复制。

这些安全机制集成了自动生成的ECC发生器和数据检查器。此外,它们与一个可配置的片上故障控制器相连接,该控制器管理互连范围内的内置自检(BIST)功能,并将错误状态传递给运行时软件。

为什么网络互联很重要
神经网络是ADAS和自动驾驶汽车复杂SoC设计世界的最新成员之一。对于汽车SoC开发人员来说,理解片上互连的功能是导航这个复杂世界的关键,同时有效地管理运行ML算法的硬件加速器。选择正确的内存架构和互连技术是有效运行神经网络操作的关键。专用的处理和数据流特性使得硬件加速器非常适合于神经网络。在这里,互连骨干网成为集成这些神经网络功能的硬件加速器的中心。

了解更多内存技术,比如缓存一致性而且片上互连用于在汽车soc中使用神经网络实现机器学习。



Baidu