计算平台是计算机系统硬件与软件的设计和开发的基础。其具有标准性和公开性的特点,同时也决定了该计算机系统的硬件与软件的性能。硬件的基础是计算单元,软件的基础则是操作系统。当传感器接收信息后,产生的数据被导入计算平台,由功能各异的芯片进行处理。因此,计算平台的选择会直接影响到自动驾驶系统的实时性和鲁棒性。工程师需要衡量的指标包括计算平台的性能、功耗和功能安全。为了保证自动驾驶的实时性,软件响应的最大延迟必须在要求的范围内,这对计算资源的要求相应也变得极高。
自动驾驶系统的计算量随着传感器数量和精度的提升而剧增,这使得开发者不得不重新思考对应的计算架构。由于自动驾驶系统对于安全性、实时性等方面的要求,能被行业普遍接受的解决方案主要有以下几种。
GPU为图形处理器,具有多核心、高内存带宽等优点,意味着它在并行计算、浮点运算时的性能是CPU的数十倍甚至上百倍。特别是当人工智能在自动驾驶领域广为应用后,使用GPU运行深度学习模型,在本地或云端对目标物体进行切割、分类和检测,不仅花费的时间大幅缩减,也无须更多的数据处理设备支持,可以实现比CPU更高的应用处理效率。所以,凭借强大的计算能力以及对深度学习应用的有力支持,GPU正逐渐成为自动驾驶技术开发的主流计算单元。
作为以生产研发GPU图形处理器起家的NVIDIA,在2016—2021年陆续发布了一系列针对深度学习的芯片,例如在2016GTC开发者大会上发布的Tesla P100(图3-9)以及后来推出的深度学习芯片Tesla P4和Tesla P40。
图3-9 NVIDIA的Tesla P100高性能GPU处理器
FPGA(即现场可编程逻辑门阵列)是一种高性能、低功耗的可编程芯片,用户可以通过烧录FPGA配置文件来自定义芯片内部的电路连接,以实现特定功能。而且这种烧录是可擦写的,用户完全可以根据产品需求进行任意化功能配置。自Xilinx在1984年创造出FPGA以来,这种可编程逻辑器件凭借在性能、开发时间、成本、稳定性和长期维护方面的优势,在通信、医疗、工控和安防等领域占据了一席之地,在过去几年也有极高的应用增长率。
对比GPU和CPU, FPGA的主要优势在于硬件配置灵活、能耗低、性能高以及可编程等,适用于感知计算。目前出现的针对编程的软件平台进一步降低了开发人员的应用门槛,使FPGA在自动驾驶感知技术领域的应用更广。以2017年7月上市的奥迪A8为例,这款车型搭载了量产版的NAS多域控制平台,其中由Altera提供Cyclone VSoC就是基于FPGA技术打造的视觉解决方案,针对传感器融合应用做了优化,可以实时高效地完成对目标物体的检测。
不过FPGA产品本身迭代比较慢,通常四年才会产生新一代的产品,所以它无法满足自动驾驶技术高速发展的需求。此外,当开发者对门阵列和内存的需求比较大时,FPGA的成本也会变得比较高。
DSP芯片(Digital Signal Processor)也称为数字信号处理器,是一种特别适合进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。其设计方案大幅提升了微处理器的运行效率。此外,DSP的架构设计特点使其在数学运算和数据处理方面有不错的表现,因此在时间关键型应用中,DSP具有超过通用处理器的强大数据处理能力和高运行速度,这也奠定了它在自动驾驶应用中的基础。
知名芯片供应商美国德州仪器公司(Texas Instruments, TI)是DSP解决方案的推动者。它面向高级驾驶辅助系统(ADAS)及自动驾驶技术领域推出了TDA2x汽车系统级芯片(System on Chip, SoC)系列。TDA2x在低功耗封装中将高性能、视觉分析、视频、图形以及通用处理内核进行结合,可实现包括前置摄像环绕视图以及传感器融合在内的ADAS应用。此外,德州仪器开发的Vision Celeration Pac还可补充TMS320C66x数字信号处理器(DSP)系列内核,让更多ADAS算法同步运行。TITDA2x还可作为融合雷达与摄像头传感器数据的中央处理器,帮助做出更稳健的ADAS决策。
值得一提的是,DSPIP平台授权厂商CEVA公司发布了第四代图像和计算机视觉处理器IP产品CEVA-XM4。它可以支持实时三维深度图生成和用于三维扫描的点云(Point Cloud)数据处理,单一CEVA-XM4内核可以完成典型的“目标检测与跟踪”用例,功耗大约只有现今最先进CPU簇的10%,芯片面积只有现今最先进CPU簇的5%。
ASIC(即专用集成电路)是为某种特定需求而专门定制的芯片。一旦设计制造完成,内部的电路和算法就固定了,无法再改变。它的优势在于体积小、功耗低、计算性能和计算效率高,并且芯片出货量越大,成本越低。
FPGA和ASIC的区别,类似用乐高积木搭建和去工厂开模定制生产的区别。FPGA上市速度快,一次性投入小,用户不需要介入芯片的布局布线和工艺问题,可以随时改变其逻辑功能,但性能差一些,量产后成本降不下来;ASIC芯片需要开模生产,流片成本很高,设计固化后不可更改,研发费时,上市速度慢,前期投入很高,但是性能优越,一旦产量提升后,单片成本就会很低。半导体业界无数的实例表明,FPGA往往是定制化ASIC的前哨,一旦某个应用的量足够大,定制化就会变得更经济。
目前比较知名的应用ASIC技术开发自动驾驶相关芯片的厂商是Mobileye,其已经于2017年被英特尔公司收购。它的下一代视觉SoC芯片EyeQ5如图3-10所示,装备有4种异构的全编程加速器,分别对专有算法进行优化,包括计算机视觉、信号处理和机器学习等。这种加速器架构尝试为每一个计算任务适配最合适的计算片单元,硬件资源的多样性应用程序能够节省计算时间并提高计算效能。
此外,同样被英特尔公司收入麾下的Nervana也属于ASIC芯片供应商。加入英特尔之后,其计划推出面向深度学习应用的定制芯片Nervana Engine。该芯片在深度学习训练方面的性能是CPU的10倍。
图3-10 Mobileye生产的EyeQ5芯片
以往处理器都是作为标准平台提供给业界,车辆工程师拼命优化编译器、代码、任务调度等来达到更高的性能表现。但是,这在现阶段已经无法满足产品快速上市的要求。新的自动驾驶计算平台,实际上是应算法和软件的需求而诞生的。例如,为了更好地支持深度卷积神经网络极大规模的矩阵运算,需要考虑如何使用二值化方法来降低对于硬件乘法器的需求等。而为了满足功能安全的需求,需要硬件级别的虚拟化,这就要求处理器构架设计方面考虑多核、VMM、设备I/O请求管理等。最终能否提供同时满足经济性和性能要求的计算平台,是自动驾驶技术商业化的关键因素之一。