随着智能电动车的普及,现在越来越多的人开始关注智能驾驶领域,不管是辅助驾驶还是智能座舱领域,AI芯片,雷达,传感器都是必不可少的。算法也是首当其冲承担更多的任务,今天给大家普及一下AI芯片相关的知识。
智能驾驶算法和芯片
智能驾驶算法领域,以深度学习为代表的网红算法模型通过模拟人脑神经网络系统而建立的数学网络模型,可以让车从海量数据里面学习出一套新的拳法,目前自动驾驶在感知定位,规划,控制等模块都有不错的表现;智能座舱的语音识别,人脸检测也都已日趋成熟。深度学习主要分为训练和推理两个过程,训练过程需要面对海量数据进行训练,推理过程需要基于训练好的模型结合实时感知的环境数据,准确的,快速的输出感知、预测的结果。
但伴随智能驾驶由前期算法验证,Demo演示到落地的阶段,行业要求智能驾驶既能加速算法,又能实时控制,还需要具备更高的功能安全等级。CPU,GPU,DSP,FPGA,ASIC等芯片作为细分赛道的单项冠军,很难统一天下,取长补短才是王道。所以,异构计算通过不同类型的指令集和体系架构的计算芯片组成SOC的异构方式,成为智能驾驶AI芯片的主流趋势。
指标的比拼
目前衡量芯片运算能力的指标主要有两个,一个是TOPS,一个DMIPS。但这理论值和真实值往往相差很大,真正的运算能力还会受到系统内存和带宽的影响。
TOPS(Tera Operation Per Second,每秒万亿次运算),描述的是芯片AI运算方面的能力,这也是AI芯片公司最喜欢拿来比的参数。TOPS描述的是芯片MAC(Multiply Accumulate,乘积累加)运算的能力。MAC运算包括整数相乘和相加两个过程,实现这种运算的专门硬件电路大暖,被称为“乘数累加器”。只要硬件上有了这种特殊电路,就可以用一个MAC指令实现原本需要两个指令才能完成的操作。而智能驾驶深度学习算法里的核心运算就是矩阵运算,矩阵运算又可以分解为多个MAC指令。所以拥有“”乘数累加器“的智能驾驶芯片可以大大加速深度学习的效率。
DMIPS (Dhrystone Million Instructions Per Second,每秒处理的百万级的机器语言指令数),描述的是CPU的运算能力。在TOPS为大的背景下,这个DMIPS关注度不高。人们可能就看下CPU有多少个核心,多少主频。但是很多自动驾驶需要的算法,包括决策和路径规划,都得用CPU的运算能力。所以卡脖子的有可能不是TOPS,而是DMIPS。
CPU
今天主要讲CPU,就目前来讲,CPU分为我们个人电脑X86的架构和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。
我们车载芯片大部分是RISC架构CPU,它包含一组精简的,功能简单的指令集。保留一些单个CPU周期内可以执行完成的,使用频率较高的指令,因此降低了CPU的复杂性,使得设计难度降低。同等工艺下可以生产出功能更强大的CPU,但对编译器的设计有更高的要求。以ARM公司的CPU为代表,其超高的效率,广泛应用在手机和嵌入式领域。
我们希望,智能驾驶的场景应用和落地能更早普及,但是需要一点一滴的积累,需要潜心研究和分析每一个问题,逐步推进科技的进步和人类历史的进程,加油~我们下一篇见!