2022汽车半导体生态峰会演讲实录|核芯达科技余方玉:从自动驾驶看高性能CPU的特性需求

发布日期:2022-11-29·

以“智链未来 本立而道生”为主题的“2022张江汽车半导体生态峰会暨全球汽车电子博览会”由《中国汽车报》社主办,张江高科、爱集微、浦东新区投资促进二中心承办,11月7日-8日在上海张江科学会堂隆重举行。

本届峰会邀请了以半导体为核心的全球智能网联汽车生态链企业高管、知名分析师与投资机构、中外行业大咖参加,瞄准新智能汽车与能源汽车技术前沿,就科创+产业+金融进行深度交流,为汽车半导体产业发展贡献智慧和力量。同时,通过趋势分享、前沿技术碰撞、投资逻辑解读以及全球汽车电子博览会,共同探讨全球巨变下的汽车半导体产业链发展,为业界充分展示汽车电子最新发展成果与趋势,打造国际化一流汽车半导体领域展示平台。

其中,在11月7日举办的“ADAS与自动驾驶专场”,北京核芯达科技有限公司系统平台部技术总监余方玉做了题为《从自动驾驶看高性能CPU的特性需求》的精彩演讲,以下内容为现场演讲实录:

余方玉:大家下午好,我是来自北京核芯达科技有限公司负责系统软件的余方玉,今天这个分享对我个人而言压力很大,因为在公司我是编代码的,公司安排这个任务给我,其实我没有关于公司太多的介绍,也没有对产品的介绍,公司安排我通过一些工作过程中的技术分享来把我们产品的特性带出来。

北京核芯达科技有限公司 系统平台部技术总监 余方玉

所以我今天的分享结合我们对自动驾驶方案的一些分解,以及我们公司的一颗高性能RISC-V CPU展开介绍。进入主题之前我和大家一起看一下RISC-V CPU在高端市场的情况,在高端市场RISC-V CPU声音不是太响亮,所以我们就自动驾驶、手机、云服务三个领域分享一下RISC-V CPU的应用情况。

在自动驾驶领域,今年初有一家自动驾驶公司官宣下一颗自动驾驶的芯片会使用RISC-V CPU进行设计。第二个在手机端,今年的10月份安卓的主线已经开始合入RISC-V的修改,目前安卓10.0的系统和12.0的系统都可以在RISC-V CPU进行运行。最后是云服务这一领域,有一个还没有官宣的项目,我们了解到业界有做云服务提供商也正在基于RISC-V CPU进行他们的云服务芯片设计,我们自己的一家客户也在基于RISC-V CPU进行他们云服务芯片的设计。RISC-V CPU在高端市场其实大家感觉还不是特别的深刻,但是它已经在慢慢的发展起来了。

我们刚刚介绍完RISC-V CPU的高端市场应用情况,现在我们进入到今天的主题。在自动驾驶这个领域,对于自动驾驶芯片,它对CPU的要求是怎么样的?CPU要拥有哪些关键的特性才能支持自动驾驶芯片?你要做自动驾驶芯片,高性能符合车规,我们映射到自己这颗RISC-V CPU上,高性能的CPU可以支持硬件的多核多线程、支持异构、多集群、硬件虚拟化,功能安全。我今天会对硬件的多核多线程和功能安全做一个介绍。

首先我们来看什么是硬件多线程,以及硬件多线程它的作用是什么?我们看左边这张图,这是一个单核单线程CPU的流水线,在这个图上CPU在运行的过程中,整个流水线上,由于CPU指令的执行不是说每一个指令都可以在一个时空周期内完成,它有很多的指令需要多个CPU的执行周期,如果这个时候你正在执行访存的操作,后面所有的单元都处于一个阻塞的状态,整个CPU流水线的利用率不会太高。

右边这个是单核双线程CPU流水线,它是共享一个相同的CPU流水线,第一个线程在执行访存操作的时候,CPU流水线不会被阻塞住,整体上单核多线程可以把CPU流水线的利用率提升。我们还可以讨论最近比较火的一个话题,在高性能领域我们的制成和功率被限制,我们只能用某一些功率,那我们应该通过什么技术才可以在比较低一点的功率上实现或者接近高功率的性能表现呢?硬件多线程的技术一定是最好的选择之一。硬件多线程对于软件而言是非常友好的。

我们再来看硬件多线程CPU的特性对自动驾驶的芯片有什么好处?我们通过对一个自动驾驶方案的分解,主要是自动驾驶上面的CPU使用的分解来给大家做一个阐述。我们提到自动驾驶芯片算力,大家首先想到的是什么?现在有上千TOPS算力的芯片,但是这个针对的都是AI的算法,其实对于自动驾驶芯片,特别是高阶的自动驾驶,除了AI算力的要求比较高,CPU的算力要求一样会很高。我这里展示的方案使用了8颗摄像头,3颗激光雷达和8颗毫米波雷达,这里面如果是100%的数据相当于是Ram高阶车载CPU的算力。在这个方案里面浅黄色都是摄像头的任务,一个摄像头的任务最高能占用CPU算力的84%左右。一个激光雷达的任务会占用CPU算力的45%左右,一个毫米波雷达会占有CPU算力的25%左右。自动驾驶的方案除了传感器的任务以外,还有多传感器融合的算法,规控的算法,还有辅助的任务,如果我们加在一起考虑系统的消耗,那么我们做这个方案要配置16颗左右高性能的CPU,对于没有硬件多线程的CPU架构,16颗CPU就是16个核,对于有硬件多线程的CPU架构,一个核里面是两个硬件线程,16颗CPU就可以用8-10个核来组成。

右边这个图展示在性能输出一样的情况下,有硬件多线程的CPU不管是在功耗上还是面积上,它的优势都更明显,功耗更低,面积更小。我们这里有一个实验的数据,一个核里面两个硬件线程,对比一个核里面一个硬件线程,它会带来50%以上的性能提升,但是它只多消耗20%以内的功耗和面积。

我们从宏观上看到硬件多线程CPU的特性,它对于自动驾驶芯片在PPA方面的优势之后,我们从微观上也做了一个分析。硬件多线程这样的功能对自动驾驶里面的算法有没有明显的加速效果?我们做过一个统计,在自动驾驶方案里面,包含了至少40个以上自动驾驶相关的算法,我们在这里举两个例子。

我们先看左边这个,这个是自动驾驶里面的车体或者物体位置变化,我们用在8核16线程的平台上,它最高能带来18倍以上的线程提速,数据量越大,提速越快。我们看右边这个图是自动驾驶里面的物体跟踪的算法,车或者障碍物跟踪,我们把这个算法应用在20和40线程的平台上,其与单线程对比能带来30倍的性能提升。

硬件多线程这样的一个CPU的特性对于自动驾驶芯片,不管是在PPA的优化上还是在微观的自动驾驶的算法提速上,都有明显的优势。

我们看完了硬件多线程对于自动驾驶的优势之后,我们再来看一下硬件多线程在云服务这个领域有没有同样的效果?我这里使用的是第三方的例子,Dragonfly Redis他们都是基于内存的数据库方案,Dragonfly针对他们的架构做了一个多线程的优化,优化完成以后做了一个和Redis的对比测试,这个数据我今天在这里没有列出,大家可以去查一下。Redis后面在6.0的版本上做了多线程的优化,但是它只做了IO的多线程优化。纵轴这里面的数据是1s内完成的访问数量,其实可以理解为吞吐量。将来的高阶的自动驾驶在路上跑的每一台车都是云端,我们在云服务这一领域应用的多线程技术还可以应用在自动驾驶领域。

前面我们讲了高性能的东西,自动驾驶芯片需要高性能的CPU,功能安全这一块我不多讲,但是对于智能驾驶芯片来说它就是刚需。

我主要讲我们自己的RISC-V CPU,我们是符合SOB到D的安全合规性,单颗CPU是符合SOB的安全客观性,我们还提供安全流程和工作成果的证据与文件,因为我们要进入汽车这个市场,所以我们公司从一开始对功能安全这个领域特别的重视,我们这边有好几位在功能安全领域工作了差不多15年以上的功能安全相关的专家,我们有一个小组,前面支持过自动驾驶芯片公司完成功能安全相关的认证,在功能安全这一块我们有能力帮助我们客户快速去论证和落地。

今天我分享比较多是是硬件多线程的东西,包括前面列到CPU里面还有异构、多集群、硬件虚拟化这些重要的功能,这些功能对一个CPU而言都是需要你拥有一个资深的团队,经过长期的积累,多个版本的迭代才有可能达到稳定量产的状态,我们公司团队包括人才梯队是怎样的,可能大家都会有这样的一个疑问。

今天我用稍微轻松的方法做一个汇报,我们公司在CPU架构、SOC架构包括编译器这些领域都有工作15年以上的专家,我们有一些同事负责过多颗高性能多复杂度的SOC的架构设计,所以在技术这个层面我们有能力完成我们公司新产品开发,包括帮助我们客户快速的量产落地。

今天最后这一页,我们在一起看一下RISC-V CPU在高端市场的生态发展,MobileEye在今年初的时候官宣了他们在下一代自动驾驶芯片将使用RISC-V CPU架构。Google在10月份发布了一个基于RISC-V 架构AI推理的系统,Linux 在2017年就合入了第一笔RISC-V CPU提交。我们在看下面这个图,这个展示在Ubuntu这个系统上,软件对于不同芯片架构适配的数量,我们看在20.04上面,其实软件对于RISC-V 适配的数量和RAM和X86的差距并不多,从20.04到22.10,RISC-V 适配的数量增速是最快的,差距在进一步的缩小。

RISC-V CPU在高端市场的发展,未来已来,将至已至,今天我的分享就到这里,谢谢大家。

(注:以上速记内容未经本人确认)