首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AI芯片(上),自动驾驶里的“水浒卡”

自动驾驶公司对AI算力的追逐,像极了小时候对干脆面里水浒卡的收集,花光所有零花钱,不是钟意干脆面吮指的滋味,而是享受集齐后可以在女同学面前炫耀的虚荣。而支撑自动驾驶公司炫耀资本的便是浑身长满算力的自动驾驶AI芯片。业内一直有种看法,最终实现诺曼底登陆的自动驾驶初创公司可能不多,但养肥养胖的自动驾驶AI芯片企业肯定不在少数。

作者对芯片的认知,还停留在本科参加竞赛时用来控制伺服电机的51单片机,对于自动驾驶领域急速蹿红的CPU、GPU、FPGA、ASIC等单项冠军,SOC等全能冠军知之甚少。惶恐、不安、焦虑后决定拿出当年集水浒卡的精神,利用乘地铁的时间认真欣赏下这些盛世容颜。故自动驾驶圈黑话第十期,就将所学自动驾驶AI芯片相关基础知识分享给天下寒士。

蹿红背景

自动驾驶硬件领域,高线束高点频的激光雷达,高像素高帧率的感知相机逐渐成为感知家族常客,匹配一个更高性能的自动驾驶AI芯片,似乎是门当户对之事。且随着自动驾驶级别的提高,传感器数量会进一步增加,感知数据量会呈现幂次增长,感知融合深度会不断加深。这些变化,决定未来自动驾驶主控AI芯片需要管理的“人”、打理更多的“事”,多配几个秘书似乎也是情理之中。

自动驾驶算法领域,以深度学习为代表的网红算法通过模拟人脑神经系统而建立的数学网络模型,可以让车从海量数据里面学习出一套新拳法,目前在感知、定位、规划、控制等模块均有不俗的表现。深度学习主要分为训练和推理两个过程,训练过程需要面对海量数据进行重复训练,推理过程需要基于训练好的模型结合实时感知的环境数据,准确的、快速的输出感知、预测结果。而可以加速各种网红算法的自动驾驶AI芯片,自此也找到了一夜蹿红、一夜暴富的支点。

但伴随着自动驾驶由前期算法验证、Demo演示转移到落地为安的阶段,行业要求自动驾驶AI芯片既能加速算法,又能实时控制,还需具备更高的功能安全等级。CPU、GPU、FPGA、ASIC等单一芯片作为细分赛道的单项冠军各有优劣,很难担负一统天下的重任,取长补短便是顺理成章。基于这个思路,异构计算架构产生,通过使用不同类型指令集和体系架构的计算芯片组成SOC的异构方式,成为自动驾驶AI芯片的主流趋势。

比拼指标

目前衡量芯片运算能力的指标主要有两个,一个是TOPS,一个是DMIPS。但从踩过的坑来看,这些理论值和真实值往往相差很大,真正的运算能力还会受到内存带宽等的较大影响。

TOPS(Tera Operation Per Second,每秒万亿次运算),描述的是芯片AI运算方面的能力,这也是自动驾驶公司最喜欢拿出来比拼的参数。准确点讲,TOPS描述的是芯片MAC(Multiply Accumulate,乘积累加)运算的能力。MAC运算包括整数相乘和相加两个过程,实现这种运算的专门硬件电路单元,被称为“乘数累加器”。硬件上有了这种特殊电路,就可以用一个MAC指令实现原本需要两个指令才能完成的操作。而自动驾驶深度学习等算法里的核心运算就是矩阵运算,矩阵运算又可以分解为数个MAC指令。因此硬件拥有“乘数累加器”的自动驾驶AI芯片可以大幅加速自动驾驶深度学习的效率。

TOPS延伸出来的还有TFLOPS(Tera Floating-Point Operations Per Second,每秒万亿次浮点运算)。TFLOPS描述的是MAC运算对象为浮点数时的一种衡量指标,它比运算对象为整数时更耗时间。芯片上实现这种运算的专门硬件电路叫做FPU(Floating Point Unit,浮点运算器),TFLOPS代表的就是FPU的执行速度。

DMIPS(Dhrystone Million Instructions Per Second,每秒处理的百万级的机器语言指令数),描述的是CPU的运算能力。在自动驾驶唯TOPS论的背景下,关注度自然不高,人们草草的浏览下规格书中CPU有多少个核,多少主频,感觉就是买TOPS能力赠送的技能。殊不知,自动驾驶多传感器融合的滤波算法,激光点云的配准算法,多数的路径规划和决策算法考验的都是CPU的运算能力。未来在自动驾驶落地深入的阶段,卡脖子的可能不是TOPS不足,而是DMIPS不够。

而CPU的指令集系统、架构方案等都将影响CPU的整体性能,核心数量,主频大小无法全面评估CPU的运算能力。因此,诞生了Dhrystone跑分程序。通过Dhrystone程序,计算出来的DMIPS值,具有评价CPU运算能力的更广泛意义。

明星个人

一、CPU

提到CPU,Office文档从业者第一印象可能是决定自己打开大量文档速度的那颗桌面X86 CPU,汽车电子从业者第一印象可能是控制电机扭矩输出的微控制器里的嵌入式ARM CPU。两者都是,只是指令集架构不同,应用领域不同。CPU长久以来被认为是人类科技含量最高、工作最复杂、结构最精细的智慧结晶。

CPU(Central Process Unit,中央处理器)主要由ALU(Arithmetic and Logic Unit,运算单元)、CU(Control Unit,控制单元)、Register(寄存器)、Cache(高速缓存器)等组成的一种高性能通用控制器。ALU主要起着算术运算(加、减、乘、除等)和逻辑运算(移位、比较等)的作用,CU主要起着指令译码、控制信号发送的作用,Register和Cache主要用于高速存储指令、数据和地址。

CPU中一条指令的执行过程可以简述为:CU从Register中读取指令并进行译码,而后将操作指令发送给ALU,ALU按照操作指令对数据进行计算,并将运算结果通过总线存入Cache。工作遵循多指令单数据流的体系结构,核心特点就是程序存储、顺序执行,擅长复杂的逻辑控制、串行计算、通用类型数据处理以及任务之间的同步协调。

指令是计算机硬件可以直接识别的命令,而指令集则是这样一套指令的集合,存储在CPU内部,对CPU运算进行指导和优化。按照采用指令集的不同,CPU主要分为采用CISC(Complex Instruction Set Computer,复杂指令集)的CPU和采用RISC(Reduced Instruction Set Computer,简单指令集)的CPU。

CISC包含一套丰富的,功能复杂的指令集。通过将原来由软件实现的常用功能改用硬件的指令实现,因此单条指令执行时间更短。但这样将增加了CPU结构的复杂性和工艺的难度,使得设计新一代CPU时向上兼容会比较容易但整体设计难度会不断提高。CISC面对不等长的指令集,执行过程需要更多的处理工作,对于执行长指令周期的命令来说,将影响整台机器的执行效率。CISC发展成熟早,生态环境完善,以Intel、AMD的x86 CPU为代表,其强大的性能,广泛应用在计算密集场景。

RISC包含一组精简的,功能简单的指令集。保留一些单个CPU周期内可以执行完成的、使用频率较高的指令,因此降低了CPU的复杂性,使得设计难度降低。同等工艺下可以生产出功能更强大的CPU,但对编译器的设计有较高的要求。RISC执行等长的指令集,具有更好的效能(同等条件下是CISC的2~4倍)和稳定性,因此在并行处理上具有明显优势。RISC后期发力,势单力薄,生态环境在慢慢建立,以ARM公司的ARM CPU为代表,其超高的效率,广泛应用在嵌入式领域。

二、GPU

显卡在图形处理、挖矿、游戏等领域,可谓无人不知。对于游戏玩家来说,买到新发布显卡的兴奋不亚于女生买到限量款LV的包,显卡的身价随着挖矿需求倍增,已经成为部分已婚男人零花钱承载不起的“水浒卡”。而显卡中的心脏就是GPU,GPU曾在游戏领域叱咤多年,而如今摇身一变,又成为自动驾驶AI战场的神兵。

GPU(Graphics Processing Unit,图形处理单元),是NVDIA在1999年发布“Geforce 256”产品时提出的概念。从名字也可以看出来,最初主要是用于图形处理的专用芯片。该款产品除了拥有当时市面上同类显卡三角形内部点位置和颜色决策的工作,还创新性的被赋予了三角形顶点位置和颜色决策的工作,而这部分工作之前是在CPU上进行。

关于GPU的内部架构,网络上有张神图,如下所示。

图中非常形象的展示出GPU全身都是“核”的特点,而这个核就是SP(Streaming Processor,流处理器),GPU的最小硬件单元,具体的指令和任务执行者。在并行计算的时候,会有很多个SP同时工作。

多个SP加上共享内存、寄存器等组成SM(Streaming Multiprocessor)。SM称为GPU大核,是GPU的心脏。成千上万更小、更高效、更专业的SP组成并行计算架构,使其特别适合并行处理大规模相似类型的计算任务。对于具有几百万个像素,每个像素都需要进行相似处理过程的图形计算工作来说,GPU可以一口气干完,而CPU可能要歇好几歇。

2006年NVIDA发布了采用统一渲染架构的GeForce 8800 GTX GPU,一同发布的还有面向软件开发人员的著名CUDA(Compute Unified Device Architecture,通用计算架构)。CUDA当时作为GPU的副业,提供了在NVDIA GPU上执行通用并行计算的API,未曾想却开启了NVIDA 在通用并行计算战场大杀四方的神话。

CUDA提供了硬件的直接访问接口,并且具有对C、C++等编程语言的本地支持,以及对Python、Java等编程语言的第三方包装支持。本意是为图形处理领域发布,未想到在深度学习领域引起一阵骚动。人民群众在GPU上通过CUDA实践深度学习算法的热情终于感动了NVDIA。NVDIA于是在2014年发布了基于CUDA的专用于深度学习的库CUDNN,旨在让开发人员可以专注于神经网络设计,而非低级复杂的CUDA使用。

随着GPU在深度学习中的广泛采用,NVIDIA在2017年5更是推出了新型GPU Voltas架构,该架构加入了称为Tensor Core的专用内核,以支持神经网络的特定张量操作。NVIDIA声称,Volta Tensor Core的吞吐率比使用常规CUDA的前代产品高出12倍。

高性能计算硬件领域,NVIDIA无疑是领导者,其竖立的护城河不仅仅是芯片性能,更多的是围绕CUDA的丰富软件生态。而追赶者AMD无论是在芯片性能还是生态建设都在努力追赶,二分天下也许指日可待。

GPU作为一类可以提供AI运算能力的通用芯片,并不是为AI而生。在自动驾驶AI算法路线尚未收敛的今天,GPU将持续发光发热,黄教主的皮夹克也将每年按时引导一波潮流。但在算法定型后,如何通过专用芯片发挥更加高效的性能,是产业界人士不断思考的问题。这也是为什么,FPGA和ASIC芯片会在自动驾驶占有一席之地并被不断赋予更伟大使命的原因。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230423A02MS800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券