12.02 自动驾驶计算芯片选型,GPU还是FPGA?


自动驾驶计算芯片选型,GPU还是FPGA?

自动驾驶域控制器,要具备多传感器融合、导航定位、路径规划、计算决策、V2X无线通讯、运动控制的能力。通常需要外接多个摄像头、毫米波雷达、激光雷达、V2X模块以及IMU等设备,完成包含图像识别、数据处理等功能。

随着自动驾驶商业化趋势愈演愈烈,其所涉及的环境感知、控制决策、运动控制系统,以及与车身其他域控制系统的交互、车联网V2X的通讯信息处理,都需要一个强大的域控制器计算平台支持,而域控制器的处理能力取决于所选型的核心AI芯片的计算能力。

目前能够提供自动驾驶AI芯片的公司不多,业内仅有NVIDIA、华为、瑞萨、NXP、TI、Mobileye、赛灵思、地平线等方案,且都未实现量产。

不同的自动驾驶公司,会因为不同的客户以及需求,选择不同的方案。但中间也会有一些共性。

当前阶段,AI 芯片的主流仍然是GPU + CPU,但随着机器视觉、语音控制、深度学习的算法在 FPGA以及 ASIC芯片上的不断优化,此两者也将逐步占有更多的市场份额,从而形成与GPU长期共存的局面,并逐渐实现反超。但从长远看,人工智能类脑神经芯片才是发展的终极方向。

AI 芯片是人工智能时代的技术核心之一,决定了自动驾驶计算平台的软硬件基础架构和发展生态。

自动驾驶计算芯片选型,GPU还是FPGA?

AI 芯片按技术架构分类可分为GPU(Graphics Processing Unit,图形处理单元)、半定制化的 FPGA、全定制化 ASIC和神经拟态芯片等。

· GPU 通用性强、速度快、效率高,同样功耗也高,特别适合用在深度学习训练方面,但是性能功耗比较低。

· FPGA 具有低能耗、高性能以及可编程等特性,相对于 CPU 与 GPU 有明显的性能或者能耗优势,但对使用者技术要求较高,行业门槛不容易迈过。

· ASIC 可以更有针对性地进行硬件层次的优化,从而获得更好的性能、功耗比。但是ASIC 芯片的设计和制造需要大量的资金、较长的研发周期和工程周期,而且深度学习算法仍在快速发展,若深度学习算法发生大的变化,FPGA 能很快改变架构,适应最新的变化,ASIC 类芯片一旦定制则难于进行修改。

FPGA

FPGA 是在 PAL、GAL、CPLD 等可编程器件基础上进一步发展的产物。用户可以通过烧入FPGA 的配置文件来定义这些门电路以及存储器之间的连线。这种烧入不是一次性的,比如用户可以把 FPGA 配置成一个微控制器 MCU,使用完毕后可以编辑配置文件把同一个FPGA 配置成一个音频编解码器。因此,它既解决了定制电路灵活性的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA 可同时进行数据并行和任务并行计算,在处理特定应用时有更加明显的效率提升。对于某个特定运算,通用 CPU 可能需要多个时钟周期;而 FPGA 可以通过编程重组电路,直接生成专用运算电路,仅消耗少量甚至一次时钟周期就可完成运算。

由于 FPGA的灵活性,很多使用通用处理器或 ASIC难以实现的底层硬件控制操作技术,利用 FPGA 可以很方便的实现。这个特性为算法的功能实现和优化留出了更大空间和可修改性。同时 FPGA 一次性成本远低于 ASIC,在芯片需求还未成规模、深度学习算法暂未稳定,需要不断迭代改进的情况下,利用 FPGA 芯片具备可重构的特性来实现半定制的人工智能芯片是最佳选择之一。

功耗方面, FPGA 也具有天生的优势。CPU执行指令,都需要有指令存储器、译码器、各种指令的运算器及分支跳转处理逻辑参与运行,而FPGA每个逻辑单元的功能在重编程时就已经确定,不需要指令且无需共享内存,从而可以极大的降低单位执行的功耗,提高整体的能耗比。

由于 FPGA 具备灵活快速的特点,因此在众多领域都有替代 ASIC 的趋势。尤其是在需要更多的灵活变更需求验证和支持扩展应用方面,FPGA 在人工智能领域的应用如图所示。


自动驾驶计算芯片选型,GPU还是FPGA?

尽管 FPGA 倍受看好,部分AI芯片供应商纷纷采用FPGA来作为架构基础,甚至百度大脑也是基于 FPGA 平台研发,但其毕竟不是专门为了适用深度学习算法而研发,实际应用中也存在诸多局限:第一,基本单元的计算能力有限。为了实现可重构特性,FPGA 内部有大量极细粒度的基本单元,但是每个单元的计算能力(主要依靠 LUT 查找表)都远远低于 CPU 和 GPU 中的 ALU 模块;

第二,计算资源占比相对较低。为实现可重构特性,FPGA 内部大量资源被用于可配置的片上路由与连线;第三,速度和功耗相对专用定制芯片(ASIC)仍然存在不小差距;第四,FPGA 价格较为昂贵,在规模放量的情况下单块 FPGA 的成本要远高于ASIC芯片。

GPU

目前深度学习、视觉融合等人工智能计算需求,主要采用 CPU+GPU、FPGA 等已有的适合并行计算的芯片来实现。在自动驾驶应用没有大规模兴起之前,使用这类已有的通用芯片可以避免专门研发定制芯片(ASIC)的高投入和高风险。但是,由于这类通用芯片设计初衷并非专门针对深度学习,因而天然存在性能、功耗等方面的局限性。

GPU 作为图像处理器,设计初衷是为了应对图像处理中的大规模并行计算。因此,在应用于深度学习算法时,有三个方面的局限性:

第一,应用过程中无法充分发挥并行计算优势。深度学习包含训练和推断两个计算环节,GPU 在深度学习算法训练上非常高效,但对于单一输入进行推断的场合,并行度的优势不能完全发挥;第二,无法灵活配置硬件结构。GPU 采用 SIMT 计算模式,硬件结构相对固定。目前深度学习算法还未完全稳定,若深度学习算法发生大的变化,GPU 无法像 FPGA 一样可以灵活的配置硬件结构;第三,运行深度学习算法能效低于 FPGA。

因此,随着人工智能算法和应用技术的日益发展,以及人工智能专用芯片ASIC产业环境的逐渐成熟,全定制化人工智能ASIC也逐步体现出自身的优势,从事此类芯片研发与应用的国内外比较有代表性的公司有华为、地平线、深鉴科技、寒武纪、中星微、英伟达、谷歌、高通、英特尔等。

行业论证分析,ASIC芯片非常适合自动驾驶的应用场景。

首先,ASIC的性能提升非常明显。例如英伟达首款专门为深度学习从零开始设计的芯片 Tesla P100 数据处理速度是其 2014 年推出GPU 系列的 12 倍。谷歌为机器学习定制的芯片 TPU 将硬件性能提升至相当于当前芯片按摩尔定律发展 7 年后的水平。正如 CPU 改变了当年庞大的计算机一样,人工智能 ASIC 芯片也将大幅改变如今 AI 硬件设备的面貌。如大名鼎鼎的 AlphaGo 使用了约 170 个图形处理器(GPU)和 1200 个中央处理器(CPU),这些设备需要占用一个机房,还要配备大功率的空调,以及多名专家进行系统维护。而如果全部使用专用芯片,极大可能只需要一个普通收纳盒大小的空间,,且功耗也会大幅降低。

第二,下游需求促进自动驾驶芯片专用化。

从服务器,计算机到无人驾驶汽车、无人机再到智能家居的各类家电,至少数十倍于智能手机体量的设备需要引入感知交互能力和自动驾驶计算能力。而出于对实时性的要求以及训练数据隐私等考虑,这些应用不可能完全依赖云端,必须要有本地的软硬件基础平台支撑,这将带来海量的自动驾驶芯片需要。

在ASIC芯片需求还未形成规模、深度学习算法暂未稳定,AI 芯片本身需要不断迭代改进的情况下,利用具备可重构特性的 FPGA 芯片来实现自动驾驶计算是成为选择之一。但由于FPGA的技术门槛儿较高,处于创业类自动驾驶公司而言在短期内掌握足够熟练的FPGA编程技术并实现硬件可靠性设计的难度太大,因此使用通用型CPU+GPU来做自动驾驶计算平台或域控制器的开发成为当前的主流,英伟达最近几年的火热足以说明一切,并且CPU+GPU组合,基于Linux内核和ROS系统的架构,已经有较为成熟的生态,这样的选择目前还是最靠谱的,也是最容易落地的。

S>


分享到:


相關文章: