编者按
通过软硬件融合的“纽带”,认识了很多汽车界的朋友。最近半年来,跟很多汽车界的大佬深入交流了汽车底层的软硬件发展。惊奇地发现,汽车软硬件的相关技术,跟数据中心大同小异,非常接近。
例如,一切皆服务,云计算是由IaaS、PaaS、SaaS等组成的分层服务体系,而车端最近几年也在推SOA。再例如,云计算的基础是虚拟化,而车端的完全集中的自动驾驶芯片,其核心也是通过虚拟化技术实现多域系统的融合。
汽车大算力平台软硬件的发展趋势,可以简单的总结为:在数据中心已经成熟多年的技术,在逐步的下沉到自动驾驶汽车终端。
上图是BOSCH给出的汽车电气架构演进示意图。从模块级的ECU到集中相关功能的域控制器,再到完全集中的车载计算机。
从系统架构角度分析,汽车的电气架构经过了三个发展阶段:
汽车从机械化到电气化,再到智能化、网联化,如今的汽车越来越像一台电脑,更准确的说,是一个超级计算机。
“超级”体现在:自动驾驶汽车系统是一个非常复杂的系统,因此会把这个复杂系统按照不同的功能域划分为一个个简单小系统;相关的软硬件也需要划分成多个小系统的逻辑软硬件。反过来说,自动驾驶汽车是多个域控小系统融合的复杂大系统。
云计算是最典型的复杂系统计算场景,也因此,我们可以清晰的看到这个显著的趋势,就是已经在云计算数据中心成熟的技术,在逐步的下沉到汽车终端。
这些技术主要包括:
当然,如果仅仅只是数据中心技术栈下沉,那问题要简单很多。更全面的趋势/挑战在于数据中心技术栈下沉的过程中,叠加了底层的计算机体系结构重构(从异构走向超异构)。具体分析看后续的分趋势介绍。
虚拟化是云计算的核心,可以说,没有虚拟化就没有云计算。在自动驾驶汽车上,虚拟化技术也会成为最核心的支撑技术。
汽车超级芯片的软硬件系统栈和传统SOC系统栈的最大区别在于有没有虚拟化。通过虚拟化技术实现对硬件/软件的逻辑切分,提供多个逻辑的硬件/软件供上层软件使用。
虚拟化通常分为两类(虚拟化技术有三类,计算机虚拟化、容器虚拟化、函数虚拟化,函数虚拟化在车端目前应用的可能性不大):
BOSCH依据功能,把汽车划分为5个功能域:动力域(Power Train)、底盘域(Chassis)、车身域(Body/Comfort)、座舱域(Cockpit/Infotainment)、自动驾驶域(ADAS)。通常情况下,一个域需要一颗或多颗DCU-SOC芯片;而发展趋势,则是完全集中的超级计算机模式,也即把五个功能域融合到一个超大算力的单芯片解决方案。
通过虚拟化技术,实现在单个硬件平台上支撑多个独立域工作的架构。也因此,在DCU域控制器所积累的各种软件生态,可以无缝地迁移到新架构上。
上图是NVIDIA自动驾驶芯片的发展Roadmap,我们可以看到,每隔两年升级一代,算力基本上提升8倍:
根据这个路线图的发展节奏,到2028年第六代芯片,算力将达到12.8万TOPS(128 POPS)。这个算力有点恐怖,实际上Thor已经基本上达到了目前工艺和封装的上限,未来的算力发展会受工艺和封装极限的约束。因此,我们给出相对保守的预测:
为什么需要异构计算?一方面,CPU的性能效率是最低的,并且已经性能瓶颈。随着业务对性能的要求越来越高,CPU已经不堪重负;另一方面,系统中大量的性能敏感型计算任务需要放到硬件加速器中进行加速处理,以此来提高性能。
但异构计算也有一些问题。
第一个问题是,异构计算中的加速处理器,其性能和灵活性特征无法兼顾:
另一个严重的问题是计算孤岛问题。我们提供芯片A帮助客户解决问题a,提供芯片B帮助客户解决问题b,依此类推。但这样会产生有很多问题:
合适的做法则是,进一步的从异构走向超异构。
一方面,把硬件分层从异构的两层再细分为超异构的三层:
另一方面,最终承载这一切的必然是三个层次的、多种不同类型处理引擎协同工作的超异构计算架构。
经典的C/S架构,一边是客户端的Client程序,另一端是服务器端的Service程序。如果我们进一步把这个架构细化,再考虑微服务化的影响,这样会形成一个微服务依赖网络。
一切皆服务,云计算是由IaaS、PaaS、SaaS等组成的分层服务体系,车端也在推SOA。软件服务化,甚至进一步地微服务化。不考虑SOA和微服务具体实施技术细节的不同,他们共同的特点在于:
协同和融合有什么区别?协同的双方,依然“你是你,我是我”;而融合,则是双方组成了一个新的整体,不分彼此。
协同阶段,通常的系统功能划分是固定的,你做什么,我做什么,大家分工明确,协作完成整个工作。而挑战在于,系统不是静态的,宏观系统复杂而又多变,系统任务的准确分工,几乎不可能。
充分考虑到系统的复杂度和持续变化,充分意识到在设计初期很难把系统分工考虑清楚。并且,即使分工清楚,随着时间推移,系统变化,分工很可能还会发生改变。因此,需要动态的功能划分。
通过计算平台的融合,把云网边端形成一个统一的算力平台,把分工的事情交给上层的软件完成。软件自适应的寻找合适的运行平台,实现算力资源充分而又灵活的使用,实现云网边端的真正融合。
在NVIDIA GTC Sept 2022上,NVIDIA发布了2000TFLOPS算力的自动驾驶芯片Thor。
Thor SoC能够实现多域计算,它可以为自动驾驶和车载娱乐划分任务。通常,这些各种类型的功能由分布在车辆各处的数十个控制单元控制。制造商可以利用Thor实现所有功能的融合,来整合整个车辆,而不是依赖分布式的ECU/DCU。
多域计算隔离使得并发的时间敏感的进程可以不间断地运行。通过虚拟化机制,在一台计算机上,可以同时运行Linux、QNX和Android等。
多域计算隔离,可以实现应用、数据、资源、服务、性能和安全域等能力的物理上完全隔离。
NVIDIA Thor,是第一个实现多域融合的、集中式的、超大算力的超级终端大芯片。
(全文完)