自动驾驶领域控制器,要具备多传感器 融合、导航定位、路径规划、计算决策、V2X无线通讯、运动控制的能力。通常需要外接多个摄像头、毫米波雷达、激光雷达 、V2X模块以及IMU等设备,完成包含图像识别、数据处理等功能。
随着自动驾驶商业化趋势愈演愈烈,其所涉及的环境感知、控制决策、运动控制系统,以及与车身其他域控制系统的交互、车联网V2X的通讯信息处理,都需要一个强大的域控制器计算平台支持,而域控制器的处理能力取决于所选型 的核心AI 芯片的计算能力。
目前能够提供自动驾驶AI芯片的公司不多,业内仅有NVIDIA、华为 、瑞萨 、NXP 、TI 、Mobileye、赛灵思 、地平线等方案,且都未实现量产。不同的自动驾驶公司,会因为不同的客户以及需求,选择不同的方案。但中间也会有一些共性。
当前阶段,AI 芯片的主流仍然是GPU + CPU ,但随着机器视觉 、语音控制、深度学习 的算法在 FPGA 以及 ASIC 芯片上的不断优化,此两者也将逐步占有更多的市场份额,从而形成与GPU长期共存的局面,并逐渐实现反超。但从长远看,人工智能类脑神经芯片才是发展的终极方向。
FPGA 是在 PAL、GAL、CPLD 等可编程器 件基础上进一步发展的产物。用户可以通过烧入FPGA 的配置文件来定义这些门电路 以及存储器 之间的连线。这种烧入不是一次性的,比如用户可以把 FPGA 配置成一个微控制器 MCU ,使用完毕后可以编辑配置文件把同一个FPGA 配置成一个音频编解码器 。因此,它既解决了定制电路灵活性的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA 可同时进行数据并行和任务并行计算,在处理特定应用时有更加明显的效率提升。对于某个特定运算,通用 CPU 可能需要多个时钟 周期;而 FPGA 可以通过编程重组电路,直接生成专用运算电路,仅消耗少量甚至一次时钟周期就可完成运算。
由于FPGA的灵活性,很多使用通用处理器或 ASIC难以实现的底层硬件控制操作技术,利用 FPGA 可以很方便地实现。这个特性为算法的功能实现和优化留出了更大空间和可修改性。同时 FPGA 一次性成本(光刻掩膜制作成本)远低于 ASIC,在芯片需求还未成规模、深度学习算法暂未稳定,需要不断迭代改进的情况下,利用 FPGA 芯片具备可重构的特性来实现半定制的人工智能芯片是最佳选择之一。
功耗方面, FPGA 也具有天生的优势。CPU执行指令,都需要有指令存储 器、译码器、各种指令的运算器及分支跳转处理逻辑参与运行,而FPGA每个逻辑单元的功能在重编程时就已经确定,不需要指令且无需共享内存,从而可以极大的降低单位执行的功耗,提高整体的能耗比。
由于 FPGA 具备灵活快速的特点,因此在众多领域都有替代 ASIC 的趋势。尤其是在需要更多的灵活变更需求验证和支持扩展应用方面,FPGA 在人工智能领域的应用如图所示。
目前深度学习、视觉融合等人工智能计算需求,主要采用 CPU+GPU、FPGA 等已有的适合并行计算的芯片来实现。在自动驾驶应用没有大规模兴起之前,使用这类已有的通用芯片可以避免专门研发定制芯片(ASIC)的高投入和高风险。但是,由于这类通用芯片设计初衷并非专门针对深度学习,因而天然存在性能、功耗等方面的局限性。
因此,随着人工智能算法和应用技术的日益发展,以及人工智能专用芯片ASIC产业环境的逐渐成熟,全定制化人工智能ASIC也逐步体现出自身的优势,从事此类芯片研发与应用的国内外比较有代表性的公司有华为、地平线、深鉴科技、寒武纪 、中星微、英伟达 、谷歌、高通 、英特尔 等。
在ASIC芯片需求还未形成规模、深度学习算法暂未稳定,AI 芯片本身需要不断迭代改进的情况下,利用具备可重构特性的 FPGA 芯片来实现自动驾驶计算是成为选择之一。但由于FPGA的技术门槛较高,处于创业类自动驾驶公司而言在短期内掌握足够熟练的FPGA编程技术并实现硬件可靠性设计的难度太大,因此使用通用型CPU+GPU来做自动驾驶计算平台或域控制器的开发成为当前的主流,英伟达最近几年的火热足以说明一切,并且CPU+GPU组合,基于Linux 内核和ROS系统的架构,已经有较为成熟的生态,这样的选择目前还是最靠谱的,也是最容易落地的。