年前做招聘网站话术,代理什么产品好做挣钱,重庆seo技术交流,渠道推广费用咨询早期 对外采购mobileye EyeQ3 芯片摄像头半集成方案#xff0c;主要是为了满足快速量产需求#xff0c;且受制于研发资金不足限制#xff1b; 中期 采用高算力NVIDIA 芯片平台其他摄像头供应商的特斯拉内部集成方案#xff0c;mobileye开发节奏无法紧跟特斯拉需求#xff… 早期 对外采购mobileye EyeQ3 芯片摄像头半集成方案主要是为了满足快速量产需求且受制于研发资金不足限制 中期 采用高算力NVIDIA 芯片平台其他摄像头供应商的特斯拉内部集成方案mobileye开发节奏无法紧跟特斯拉需求 当前采用自研NPU网络处理器为核心的芯片外采Aptina摄像头的特斯拉核心自研方案主要原因在于市面方案无法满足定制需求而后期时间和资金充足公司自研实力和开发自由度更高。 为了掌握自动驾驶话语权同时并掌握核心数据和AI算法过去5年特斯拉经历了外购主控芯片到自研的道路。2014年~2016年特斯拉配备的是基于Mobileye EyeQ3芯片的AutoPilot HW1.0计算平台车上包含1个前摄像头1个毫米波雷达12个超声波雷达。2016年~2019年特斯拉采用基于英伟达的DRIVE PX 2 AI计算平台的AutoPilot HW2.0和后续的AutoPilot HW2.5包含8个摄像头1个毫米波雷达12超声波雷达。 2017年开始特斯拉开始启动自研主控芯片尤其是主控芯片中的神经网络算法和AI处理单元全部自己完成。2019年4月AutoPilot HW3.0平台搭载了Tesla FSD自研版本的主控芯片这款自动驾驶主控芯片拥有高达60亿的晶体管每秒可完成144万亿次的计算能同时处理每秒2300帧的图像。 特斯拉的FSD HW3.0基本介绍 特斯拉Model 3自研“中央-区EEA”架构中央计算机是自动驾驶及娱乐控制模块Autopilot Infotainment Control Module由两块FSD芯片承担大量的数据计算主要服务于自动驾驶功能。两个区控制器分别是右车身控制器BCM RH和左车身控制器BCM LH主要服务于热管理、扭矩控制、灯光等功能。 FSD 的 HW3.0 由两个相同的计算单元构成每个计算单元上面有特斯拉自研的2 块FSD计算芯片每块算力位 36 Tops设备总算力位 4 x 36 Tops 144 Tops。但是由于采用的是双机冗余热备的运行方式实际可用的算力为72 Top。 特斯拉板子的右侧接口从上到下依次是FOV摄像头、环视摄像头、A柱左右摄像头、B柱左右摄像头、前视主摄像头、车内DMS摄像头、后摄像头、GPS同轴天线。左侧从上到下依次是第二供电和I/O接口车身LIN网络等以太网诊断进/出、调试USB、烧录、主供电和I/O底盘CAN网络等。 而通过特斯拉在售车型的介绍和实际配置来看主张以摄像头视觉为核心的特斯拉安装了一个三目摄像头、4个环视、一个后置摄像头、车内DMS摄像头、前置毫米波雷达、以及12颗超声波雷达。 HW 3.0 PCB器件介绍 LPDDR 全称是Low Power Double Data Rate SDRAM是DDR SDRAM的一种又称为 mDDR(Mobile DDR SDRM)是目前全球范围内移动设备上使用最广泛的“工作记忆”内存。特斯拉的LPDDR48BD77D9WCF是Micron美光供应。 FSD的GPS模块是NEO-M8L-01A-81水平精度圆概率误差英文简称CEP- CircularError Probable为2.5米有SBAS辅助下是1.5米接收GPS/QZSS/GLONASS/北斗CEP和RMS是GPS的定位准确度(俗称精度)单位是误差概率单位。冷启动26秒热启动1秒辅助启动3秒。内置简易6轴IMU刷新频率20Hz量大的话价格会低于300元人民币。 UFSUniversal Flash Storage采用THGAF9G8L2LBAB7Toshiba 2018年中期量产的新产品车规级标准UFSAEC-Q100 2级标准容量32GB由于特斯拉的算法模型占地不大倒也够用。 MAX20025S是开关型电源稳压器给内存供电的来自Maxim Integrated目前查不到更多的介绍资料。 S512SD8H21应该是Boot启动由Cypress已被Infineon收购供货。 特斯拉用了3片TI的FPD-LINK也就是解串器芯片解串器芯片都是配对使用加串行一般在摄像头内部解串行在PCB上。两片DS90UB960与其对应的可以是DS90UB953-Q1, DS90UB935-Q1,DS90UB933-Q1, DS90UB913A-Q1。DS90UB960拥有4条Lane如果是MIPI CSI-2端口每条Lane带宽可以从400Mbps到1.6Gbps之间设置。 上图为TI推荐的DS90UB960的典型应用示意图即接4个200万像素帧率30Hz的YUV444数据或者4个200万像素帧率60Hz的YUV420数据。DS90UB954是DS90UB960简化版从4Lane减少到2Lane与之搭配使用的是DS90UB953。 由于大部分摄像头的LVDS格式只能用于近距离传输因此摄像头都要配备一个解串行芯片将并行数据转换为串行用同轴或STP传输这样传输距离远且EMI电磁干扰更容易过车规。目前行业内做解串行芯片用的较多的就是德州仪器TI以及Maxim特斯拉用的是德州仪器而我们做开发接触的较多的是Maxim可能是源于NVIDIA的AI芯片平台设计推荐目前智能驾驶方面用的摄像头大部分都是Maxim方案。 摄像头的数据格式通常有RAWRGB、YUV两种。YUV常见的有三种级YUV444YUV422和YUV420。计算带宽的公式是像素*帧率*比特*X对RAW RGB来说X4比如一款摄像头输出30Hz200万像素那么带宽是200万x30x8x4即1.92Gbps。YUV444是像素X帧率X比特X3即1.44GbpsYUV422是像素X帧率X比特X2即0.96GbpsYUV420是像素X帧率X比特X1.5即0.72Gbps。ADAS通常对色彩考虑不多YUV420足够。除车载外一般多采用YUV422。 特斯拉自动驾驶主芯片详细讲解 这款FSD芯片采用14nm工艺制造包含一个中央处理器、1个图像处理单元、2个神经网络处理器其中中央处理器和图像处理器都采用了第三方设计授权以保证其性能和稳定性并易于开发关键的神经网络处理器设计是特斯拉自主研发, 是现阶段用于汽车自动驾驶领域最强大的芯片。 中央处理器是1个12核心ARM A72架构的64位处理器运行频率为2.2GHz图像处理器能够提供0.6TFLOPS计算能力运行频率为1GHz2个神经网络处理器运行在2.2GHz频率下能提供72TOPS的处理能力。为了提升神经网络处理器的内存存取速度以提升计算能力每颗FSD芯片内部还集成了32MB高速缓存。 NPU的总功耗为7.5 W约占FSD功耗预算的21。这使得它们的性能功率效率约为4.9TOPs/W特斯拉在芯片设计方面充分考虑了安全性一块典型的自动驾驶电路板会集成两颗Tesla FSD芯片执行双神经网络处理器冗余模式两颗处理器相互独立即便一个出现问题另一个也能照常执行此外还设计了冗余的电源、重叠的摄像机视野部分、各种向后兼容的连接器和接口。 信号传输流程 从摄像头的图像开始根据数据流向特斯拉解释了整个过程。首先数据以每秒25亿像素的最大速度采集输入这大致相当于以每秒60帧的速度输入21块全高清1080P屏幕的数据。这比目前安装的传感器产生的数据多得多。这些数据然后进入我们前面讨论的DRAM这是SoC的第一个也是主要瓶颈之一因为这是处理速度最慢的组件。然后数据返回到芯片并通过图像信号处理器ISP每秒可以处理10亿像素大约8个全高清1080P屏幕每秒60帧。这一阶段芯片将来自摄像头传感器的原始RGB数据转换成除了增强色调和消除噪音之外实际上有用的数据。 使用的是车载龙头镁光的LPDDR4具体型号是8BD77D9WCF 8表示年份2018B 表示第 4 周D 代表 D-Die属于镁光产品线中性能相对一般的型号77 分别代表芯片生产地和封装地7 代表中国台湾5 代表中国大陆。所以这是一颗美光 2018 年第二周生产的D-Die颗粒D9WCF对应型号为MT53D512M32D2DS-046AAT。53 代表这是一颗 LPDDR4 颗粒D 代表1.1V 的工作电压512M 表示单颗颗粒的容量为 512MB32 表示单颗粒位宽为 32bit。 按照容量计算单颗芯片是512MB X 32 ÷8 2GB使用量是4颗所以DDR的总容量是8GB。 按照LPDDR4最高频率4266MHZ的速率计算每颗DDR是32位的位宽CPU的位宽是32X4128 bit此时DDR的带宽4266MBX128 ÷ 8 68.25G/S。
我们再来看看目前的特斯拉的信号传输流向。 可以看到传输速度远远大于8颗摄像头采集的图像数据传输速度不是瓶颈ISP的处理速率是10亿像素/秒如果是RGB888的位深此时的数据量应该是2.78GB/S此处的LPDDR4 的带宽是68GB/S目前单独处理图像是够的。这里说内存带宽可能是未来限制自动驾驶的瓶颈原因是要处理很多除了图像以外的数据比如雷达多线程多应用的数据。 自动驾驶对于DDR带宽的要求 上图是目前比较主流的L3自动驾驶的架构从这里可以看到摄像头那部分的处理需要的DDR的带宽是34GB/sASIC的DDR带宽为64bitADAS需要处理摄像头的raw dater这样才是最原始的数据不是压缩也没有处理过的数据这样ADAS处理起来才比较灵活所以ADAS的带宽要求非常高。 可以看到除了要处理高清摄像头的raw dater的数据还需要处理超声波雷达和激光雷达的数据这些传感器的作用是不同的激光雷达主要用于3D建模、超声波雷达用于倒车、超车摄像头主要用于部分ADAS功能比如ACC自适应巡航、AEB紧急制动等等。 由于这些传感器的数据量非常大处理的要求也比较高所以对于ADAS CPU的DDR的带宽要求非常高需要使用到4颗32bit的LPDDR5同时需要CPU 的DDR带宽为128bit同时带宽需要达到102.4GB/s也许你会有疑惑为什么特斯拉的才68GB/s的带宽就可以处理了呢 特斯拉由于成本原因没有使用激光雷达下图是特斯拉车身上不同版本的硬件的传感器AP3.0的硬件使用了6个摄像头12个超声波雷达1个毫米波雷达。由于算法做的非常牛掰一样的可以使用超声波雷达摄像头进行3D数据建模。所以性能更优成本更少而且对于DDR的带宽要求也下降了。 2020年市场上打造的L2级别的驾驶都没有使用到激光雷达只有谷歌的waymo使用了4颗激光雷达还有奥迪A8的使用了1颗激光雷达。2021年上海车展的情况来看极光雷达如雨后春笋越来越多的智能汽车选择使用激光雷达很多激光雷达都是安全冗余使用的目的传感器数据是做后融合此时处理数据的能力要求就提高此时对于DDR带宽要求会变大。 特斯拉NPU介绍 上图的型号处理过程中该过程的第一步是将数据存储在SRAM阵列中。现在很多人——甚至是那些对计算机组件略知一二的人——可能会想“SRAM到底是什么”嗯最接近的比较是在计算机处理器上能找到的共享L3缓存。这意味着什么呢这意味着存储速度非常快但同时也很贵。 目前Intel最大的L3缓存是45 MB2010年以前是16 MB, 2014年以前是24 MB。大多数消费级笔记本电脑和桌面处理器都有8-12 MB的L3缓存。特斯拉的神经网络处理器有一个庞大的64MB SRAM它被分成两个32 MB的SRAM段来支持两个神经网络处理器。特斯拉认为其强大的SRAM容量是其相对于其他类型芯片的最大优势之一。 NPU的算力能够满足很多图像相关的识别算法 假设此时你车上的AI图像算法是YOLO-V3它是一种使用深度卷积神经网络学得的特征来检测对象的目标检测器直白点就是照片识别器在机场地铁都有批量使用就是大量的卷积、残差网络、全连接等类型的计算本质是乘法和加法。对于YOLO-V3来说如果确定了具体的输入图形尺寸那么总的乘法加法计算次数是确定的。比如一万亿次。真实的情况比这个大得多的多用算力表示就是TOPS为单位。那么要快速执行一次YOLO-V3就必须执行完一万亿次的加法乘法次数。 这个时候就来看了比如IBM的POWER8最先进的服务器用超标量CPU之一4GHzSIMD128bit假设是处理16bit的数据那就是8个数那么一个周期最多执行8个乘加计算。一次最多执行16个操作。这还是理论上其实是不大可能的。 那么CPU一秒钟的巅峰计算次数16* 4Gops 64Gops当然以上的数据都是完全最理想的理论值。因为芯片上的存储不够大所以数据会存储在DRAM中从DRAM取数据很慢的所以乘法逻辑往往要等待。另外AI算法有许多层网络组成必须一层一层的算所以在切换层的时候乘法逻辑又是休息的所以诸多因素造成了实际的芯片并不能达到利润的计算峰值而且差距还极大实际情况能够达到5%吧也就3.2Gops按照这个图像算法如果需要执行YOLO-V3的计算1W除以3.23125秒也就是那么需要等待52分钟才能计算出来。 如果是当前的CPU去运算那么估计车翻到河里了还没发现前方是河这就是速度慢对于ADAS产品而言时间就是生命。 此时我们在回过头来看看高通820A芯片的算力CPU的算力才42K刚刚那个是基于最先进的服务器IBM的POWER8 CPU计算力是是3.2GPOS车载算的上最先进的域控制器才42K的CPU计算力所以不能用于AI的计算。此时需要使用GPU来计算看看GPU的算力是320Gops此时算这个YOLO-V3图像识别的算法需要32秒这个成绩还是非常不错的。 此时可以看到高通820A芯片的CPU算力是不能够用于AI的计算GPU的算力是可以满足一些不需要那么实时性比较高的一些AI处理。 此时可以看到高通820A芯片的CPU算力是不能够用于AI的计算GPU的算力是可以满足一些不需要那么实时性比较高的一些AI处理。 此时再来看看特斯拉的NPU这个只需要13.8ms就可以计算出来了按照80KM/h的速度这个响应速度在0.3米完全是杠杠的实际情况下应该没有那么快因为运算速度没有那么快。 神经网络处理器是一个非常强大的工具。很多数据都要经过它但有些计算任务还没有调整到适合神经网络处理器上运行或者不适合这种处理器。这就是GPU的用武之地。该芯片的GPU每辆特斯拉都有性能适中运行速度为1 GHz能够处理600 GFLOPS数据。特斯拉表示GPU目前正在执行一些后处理任务其中可能包括创建人类可以理解的图片和视频。然而从特斯拉在其演示中描述的GPU的角色来看预计该芯片的下一次迭代将拥有一个更小的GPU。 还有一些通用的处理任务不适合由神经网络处理器处理、而由CPU来完成的。特斯拉解释说芯片中有12个ARM Cortex A72 64位CPU运行速度为2.2 GHz。尽管这样——更准确的描述应该是有三个4核cpu——特斯拉选择使用ARM的Cortex A72架构有点令人费解。Cortex A72是2015年的一个架构。从那以后A73, A75甚至几天前A77架构已经发布。埃隆和他的团队解释说这是他们两年前开始设计芯片时就有的东西。 对于Tesla来说这可能是一个更便宜的选择如果多线程性能对他们来说比单个任务性能更重要那么这是有意义的因此包含3个较老的处理器而不是1个或2个更新或更强大的处理器。多线程通常需要更多的编程工作来正确分配任务但是嘿我们正在谈论的是特斯拉——这对它来说可能是小菜一碟。无论如何该芯片的CPU性能比特斯拉之前版本HW 2.0的CPU性能高出2.5倍。 AI芯片加速原理 人工智能深度学习现在无处不在衡量人工智能运算量通常有三个名词。 FLOPS注意全大写是floating point operations per second的缩写意指每秒浮点运算次数理解为计算速度。是一个衡量硬件性能的指标。 FLOPs注意s小写是floating point operations的缩写s表复数意指浮点运算数理解为计算量。可以用来衡量算法/模型的复杂度。 MACCs是multiply-accumulate operations)也叫MAdds意指乘-加操作(点积运算)理解为计算量也叫MAdds 大约是 FLOPs 的一半。 人工智能中最消耗运算量的地方是卷积就是乘和累加运算Multiply AccumulateMAC。 y w[0]*x[0] w[1]*x[1] w[2]*x[2] ... w[n-1]*x[n-1]
w 和 x 都是向量y 是标量。上式是全连接层或卷积层的典型运算。一次乘-加运算即一次乘法一次加法运算所以上式的 MACCs 是n。而换到 FLOPS 的情况点积做了 2n-1 FLOPS即 n-1 次加法和 n 次乘法。可以看到MACCs 大约是 FLOPS 的一半。实际就是MAC只需一个指令一个运算周期内就可完成乘和累加。卷积运算、点积运算、矩阵运算、数字滤波器运算、乃至多项式的求值运算都可以分解为数个 MAC 指令人工智能运算也可以写成MAC运算。 MAC指令的输入及输出的数据类型可以是整数、定点数或是浮点数。若处理浮点数时会有两次的数值修约Rounding这在很多典型的DSP上很常见。若一条MAC指令在处理浮点数时只有一次的数值修约则这种指令称为“融合乘加运算”/“积和熔加运算”fused multiply-add, FMA或“熔合乘法累积运算”fused multiply–accumulateFMAC。假设3×3卷积128 个 filer输入的 feature map 是 112×112×64stride1paddingsameMACCs 有3×3×64×112×112×128924,844,032次即1.85TOPS算量。 AI芯片就是简单暴力地堆砌MAC单元。增加MAC数量这是提升算力最有效的方法没有之一而增加MAC数量意味着芯片裸晶面积即成本的大幅度增加这也是为什么AI芯片要用到尽可能先进的半导体制造工艺越先进的半导体制造工艺就可拥有更高的晶体管密度即同样面积下更多的MAC单元衡量半导体制造工艺最主要的指标也就是晶体管密度而不是数字游戏的几纳米。 具体来说台积电初期7纳米工艺每平方毫米是9630万个晶体管后期7纳米可以做到每平方毫米1.158亿个晶体管三星7纳米是9530万个落后台积电18%而英特尔的10纳米工艺是1.0078亿个晶体管领先三星落后台积电。这也是台积电垄断AI芯片的原因。而5纳米工艺台积电是1.713亿个晶体管而英特尔的7纳米计划是2亿个晶体管所以英特尔的7纳米芯片一直难产难度比台积电5纳米还高。顺便说下台积电平均每片晶圆价格近4000美元三星是2500美元中芯国际是1600美元。 除了增加数量还有提高MAC运行频率但这意味着功耗大幅度增加有可能造成芯片损坏或死机一般不会有人这么做。除了简单的数量增加再一条思路是提高MAC的效率。 提高MAC效率方法 提升MAC效率最重要的就是存储。 真实值和理论值差异极大。决定算力真实值最主要因素是内存 SRAM和DRAM)带宽还有实际运行频率 即供电电压或温度还有算法的batch尺寸。例如谷歌第一代TPU理论值为90TOPS算力最差真实值只有1/9也就是10TOPS算力因为第一代内存带宽仅34GB/s。而第二代TPU下血本使用了HBM内存带宽提升到600GB/s单一芯片TPU V2板内存总带宽2400GB/s。 最新的英伟达的A100使用40GB的2代HBM带宽提升到1600GB/s比V100提升大约73%。特斯拉是128 bit LPDDR4-4266 那么内存的带宽就是2133MHz*2DDR*128bit/8/100068.256GB/s。比第一代TPU略好 这些都是理论上的最大峰值带宽其性能最差真实值估计是2/9。也就是大约8TOPS。16GB版本的Xavier内存峰值带宽是137GB/s。 为什么会这样这就牵涉到MAC计算效率问题如果你的算法或者说CNN卷积需要的算力是1TOPS而运算平台的算力是4TOPS那么利用效率只有25%运算单元大部分时候都在等待数据传送特别是batch尺寸较小时候这时候存储带宽不足会严重限制性能。但如果超出平台的运算能力延迟会大幅度增加存储瓶颈一样很要命。效率在90-95%情况下存储瓶颈影响最小但这并不意味着不影响了影响依然存在。 然而平台不会只运算一种算法运算利用效率很难稳定在90-95%。这就是为何大部分人工智能算法公司都想定制或自制计算平台的主要原因计算平台厂家也需要推出与之配套的算法软硬一体实难分开。 最为有效的方法还是减小运算单元与存储器之间的物理距离。也是这15年来高性能芯片封装技术发展的主要目标这不仅可以提高算力还能降低功耗减少发热。这其中最有效的技术就是HBM和CoWoS。 CPU与HBM2之间通过Micro-bump连接线宽仅为55微米比传统的板上内存或者说off-chip内存要减少20倍的距离。可以大大缓解内存瓶颈问题。 不过HBM和CoWoS价格都很高假设500万的一次下单量7纳米工艺的话纯晶圆本身的硬件成本大约是每片芯片208-240美元这个价格做训练用AI芯片可以承受但是推理AI芯片用不起。再有CoWoS是台积电垄断的台积电也正是靠这种工艺完全垄断高性能计算芯片代工。英特尔的EMIB是唯一能和CoWoS抗衡的工艺但英特尔不代工。 退而求其次的方法是优化指令集尽量减少数据的访存CNN算法会引入大量的访存行为这个访存行为的频繁度会随着参考取样集合的增加而增加原因很简单缓存无法装下所有的参考取样所以即便这些参考取样会不断地被重复访问也无法充分挖掘数据本地化所带来的cache收益。针对这种应用类型实际上存在成熟的优化范式——脉动阵列。 脉动阵列 脉动阵列并不是一个新鲜的词汇在计算机体系架构里面已经存在很长时间。大家可以回忆下冯诺依曼架构很多时候数据一定是存储在memory里面的当要运算的时候需要从memory里面传输到Buffer或者Cache里面去。 当我们使用computing的功能来运算的时候往往computing消耗的时间并不是瓶颈更多的瓶颈在于memory的存和取。所以脉动阵列的逻辑也很简单既然memory读取一次需要消耗更多的时间脉动阵列尽力在一次memory读取的过程中可以运行更多的计算来平衡存储和计算之间的时间消耗。 下面说下脉冲阵列的基本原理 首先图中上半部分是传统的计算系统的模型。一个处理单元PE从存储器memory读取数据进行处理然后再写回到存储器。这个系统的最大问题是数据存取的速度往往大大低于数据处理的速度。因此整个系统的处理能力MOPS每秒完成的操作很大程度受限于访存的能力。这个问题也是多年来计算机体系结构研究的重要课题之一可以说是推动处理器和存储器设计的一大动力。而脉动架构用了一个很简单的方法让数据尽量在处理单元中多流动一会儿。 正如上图的下半部分所描述的第一个数据首先进入第一个PE经过处理以后被传递到下一个PE同时第二个数据进入第一个PE。以此类推当第一个数据到达最后一个PE它已经被处理了多次。所以脉动架构实际上是多次重用了输入数据。因此它可以在消耗较小的memory带宽的情况下实现较高的运算吞吐率。 上面这张图非常直观的从一维数据流展示了脉动阵列的简单逻辑。当然对于CNN等神经网络来说很多时候是二维的矩阵。所以脉动阵列从一维到二维也能够非常契合CNN的矩阵乘加的架构。 降低推理的量化比特精度是最常见的方法。它既可以大大降低运算单元的精度又可以减少存储容量需求和存储器的读写。但是降低比特精度也意味着推断准确度的降低这在一些应用中是无法接受的。由此基本运算单元的设计趋势是支持可变比特精度比如BitMAC 就能支持从 1 比特到 16 比特的权重精度。大部分AI推理芯片只支持INT8位和16位数据。 除了降低精度以外还可以结合一些数据结构转换来减少运算量比如通过快速傅里叶变换FFT变换来减少矩阵运算中的乘法还可以通过查表的方法来简化 MAC 的实现等。 对于使用修正线性单元ReLU作为激活函数的神经网络激活值为零的情况很多 而在对神经网络进行的剪枝操作后权重值也会有很多为零。基于这样的稀疏性特征一方面可以使用专门的硬件架构比如 SCNN 加速器提高 MAC 的使用效率另一方面可以对权重和激活值数据进行压缩。 还可以从体系架构上对整个的Memory读取来做进一步的优化。这里摘取的是寒武纪展示的一些科研成果。其实比较主流的方式就是尽量做Data Reuse减少片上Memory和片外Memory的信息读取次数增加片上memory因为片上数据读取会更快一点这种方式也能够尽量降低Memory读取所消耗的时间从而达到运算的加速。 对于神经网络来说其实很多的连接并不是一定要存在的也就是说我去掉一些连接可能压缩后的网络精度相比压缩之前并没有太大的变化。基于这样的理念很多剪枝的方案也被提了出来也确实从压缩的角度带来了很大效果提升。 需要特别提出的是大家从图中可以看到深度学习神经网络包括卷积层和全连接层两大块剪枝对全连接层的压缩效率是最大的。下面柱状图的蓝色部分就是压缩之后的系数占比从中可以看到剪枝对全连接层的压缩是最大的而对卷积层的压缩效果相比全连接层则差了很多。 所以这也是为什么在语音的加速上很容易用到剪枝的一些方案但是在机器视觉等需要大量卷积层的应用中剪枝效果并不理想。 对于整个Deep Learning网络来说每个权重系数是不是一定要浮点的定点是否就能满足定点是不是一定要32位的很多人提出8位甚至1位的定点系数也能达到很不错的效果这样的话从系数压缩来看就会有非常大的效果。从下面三张人脸识别的红点和绿点的对比就可以看到其实8位定点系数在很多情况下已经非常适用了和32位定点系数相比并没有太大的变化。所以从这个角度来说权重系数的压缩也会带来网络模型的压缩从而带来计算的加速。 谷歌的TPU AI计算加速介绍 这是Google的TPU。从上边的芯片框图可以看到有一个64K的乘加MAC阵列对乘加运算进行加速。从论文中可以看到里面已经用到了脉动阵列的架构方法来对运算进行加速另外也有我们前面提到的大量的片上Memory 这样的路径。上面蓝色框图中大家可以看到有一个24MiB的片上Memory而且有两个高速DDR3接口能够与片外的DDR做交互。 再来说说AI芯片。比如大名鼎鼎的谷歌的TPU1。TPU1大约700M Hz有256X256尺寸的脉动阵列如下图所示。一共256X25664K个乘加单元每个单元一次可执行一个乘法和一个加法。那就是128K个操作。乘法算一个加法再算一个)。 另外除了脉动阵列还有其他模块比如激活等这些里面也有乘法、加法等。 所以看看TPU1一秒钟的巅峰计算次数至少是128K X 700MHz89600Gops大约90Tops。
对比一下CPU与TPU1会发现计算能力有几个数量级的差距这就是为啥说CPU慢。 当然以上的数据都是完全最理想的理论值实际情况能够达到5%吧。因为芯片上的存储不够大所以数据会存储在DRAM中从DRAM取数据很慢的所以乘法逻辑往往要等待。另外AI算法有许多层网络组成必须一层一层的算所以在切换层的时候乘法逻辑又是休息的所以诸多因素造成了实际的芯片并不能达到利润的计算峰值而且差距还极大。 上图展示的第二代TPU。从图中可以很直观的看到它用到了我们前面所说到的HBM Memory。从其论文披露的信息也可以看到二代TPU在第一代的基础上增加了我们前面说到的剪枝权重压缩等方面做了很多尝试也是一个非常经典的云端AI加速芯片的例子。 特斯拉HW4.0 将改变未来汽车的模样 硬件层面 我们对HW 4.0有什么期待呢目前我们所知道的是它的目的是进一步提高安全性。唯一真正告诉我们的是它不会专注于让一辆旧车学习新技术但这并不意味着它不会包括一些新技术。以下是我列出的HW 4.0可能带来的潜在变化和改进从最可能的到最具推测性的排列如下 特斯拉很可能会使用更新的CPU版本这取决于特斯拉什么时候开始设计基于A75的架构。增加的处理能力让特斯拉有机会节省芯片上的功耗和空间为更重要的组件腾出空间。 特斯拉可能会升级到LPDDR5这将导致显著的速度提升和功耗降低。但是如果HW 4.0芯片在设计过程中、或者为了降低成本特斯拉可能会选择LPDDR4X。通过使用较低的电压平台LPDDR4X节省了能耗但如果同时使用多个芯片它仍然可以提高速度。尽管如此与HW 3.0相比这种配置并不会节省能耗。任何一种选择都代表着对HW 3.0的全面改进。 进一步改进具有更多SRAM的神经网络处理单元。 根据芯片上的处理能力是否能够处理摄像头传输过来的全分辨率和帧速率的数据特斯拉的HW 4,0可能会配备更高分辨率的新摄像头和传感器甚至可能会有更高的帧速率。更高分辨率的图像是至关重要的因为更多的细节将帮助计算机更准确地识别物体并具备更远的识别距离。 升级的图像信号处理器ISP。特斯拉想让自己的芯片尽可能的便宜和强大。这就是为什么在HW 3.0中芯片输入的处理能力和ISP的处理能力之间存在很大的脱节因此需要一个更强大的或第二块ISP这取决于哪种解决方案需要更低的功耗、更小的空间或更低的成本。 一个更小的GPU。HW 3.0的SoC中还存在GPU的原因之一是并不是所有的处理任务都转移到神经网络处理器中去了。对于特斯拉来说让它的程序员有足够的时间将剩余的GPU处理任务重新分配给NPU或CPU可能是一条捷径。完全消除GPU可能是不可能的然而一个更小的GPU和更小的SoC占用导致更少的NoC这样可以为更关键的组件——如更多的SRAM——匀出预算和空间。 软件层面 新一代自动驾驶芯片和HW4.0即将在明年量产重构AutoPilot底层架构将推出训练神经网络超级计算机Dojo瞄准L5自动驾驶场景。2020年8月多家媒体报道特斯拉正与博通合作研发新款 HW 4.0 自动驾驶芯片有望在明年第四季度大规模量产未来将采用台积电 7nm 技术进行生产。同时AutoPilot 团队正对软件的底层代码进行重写和深度神经网络重构, 包括对数据标注、训练、推理全流程的重构。 全新的训练计算机 Dojo 正在开发中。Dojo 将专门用于大规模的图像和视频数据处理其浮点运算能力将达到exaflop 级别秒运算百亿亿次将配合无监督学习算法来减少特斯拉对于数据人工标注的工作量帮助特斯拉数据训练效率实现指数级提升。目前特斯拉已经拥有超过82万台车不断回传数据到2020年年底将拥有51亿英里驾驶数据用于自动驾驶训练过去的训练数据依赖于人工标注而主动的自监督学习配合Dojo计算机可以大幅优化算法提升的效率。 Dojo 可以改善 Autopilot 的工作方式从目前的2D图像 内容标注方式训练升级到可以在「4D」3D 加上时间维度环境下运行。我们预计借助强大的自研计算平台、全球领先的AI算法能力、庞大的实际驾驶数据量特斯拉有望成为率先实现L5级别自动驾驶的公司。 特斯拉HW4.0为什么有勇气对激光雷达say no 目前还在坚持做图像识别为主的只有特斯拉了Mobileye已经开始使用了激光雷达做下一代自动驾驶平台的关键器件了只有马教主坚持激光雷达就像阑尾他说一个阑尾就够糟了还带一堆简直荒谬。 特斯拉如此有勇气其实在于它的研发模式从芯片 操作系统算法以及控制器都是自研整个性能可以发挥到极致。 视觉方案通过摄像头致力于解决“拍到的是什么”问题。从工作原理来看视觉方案以摄像头作为主要传感器通过收集外界反射的光线从而进一步呈现出外界环境画面即我们所熟悉的摄像头功能再进行后续图像分割、物体分类、目标跟踪、世界模型、多传感器融合、在线标定、视觉SLAM、ISP 等一系列步骤进行匹配与深度学习其核心环节在于物体识别与匹配或者运用AI 自监督学习来达到感知分析物体的目的需要解决的是“我拍到的东西是什么”的问题。 视觉方案重在分类但样本有限度限制了视觉识别正确性而优化样本对于AI 学习能力、样本数据量要求极高。由于L3 级及以上自动驾驶需要机器应对较为复杂的路况要求车辆对于道路状况有精准识别能力而视觉技术需要解决的是“摄像头拍到的是什么物体”的问题因而对于神经网络训练集要求很高。对于训练的方法一种为通过机器视觉人为设定好识别样本通过收集到的数据直接与样本匹配来识别的方式但是能否成功辨别物体高度依赖样本的训练样本未覆盖的物体将难以辨别另一种为AI 学习能够通过自学习的方式摆脱样本限制但是对于算法与算力要求很高并且其学习过程是个“黑盒子”输出结果的过程未知因而难以人为调试与纠错。 而这两个关键问题对于特斯拉都可以通过提高芯片本身的算力还有云计算平台的大数据训练来解决。 特斯拉的视觉方案具有很高的算法与算力复杂度。特斯拉曾公布过自己数据流自动化计划的终极目标“OPERATION VACATION”从数据收集、训练、评估、算力平台到“影子模式”形成数据采集与学习循环。 数据收集通过8 个摄像头对车体周围进行无死角图像采集 数据训练使用PyTorch 进行网络训练特斯拉的网络训练包含48 个不同的神经网络
能输出1000 个不同的预测张量。其背后训练量巨大特斯拉已耗费70000 GPU 小时进行深度学习模型训练
背后算力支持特斯拉自研打造了FSD 芯片具有单片144TOPS 的高算力值。另外 特斯拉规划创造Dojo 超级计算机可在云端对大量视频进行无监督学习训练目前离开发出来的进度值得期待 影子模式特斯拉通过独创“影子模式”来降低样本训练成本、提高识别准确度即特斯拉持续收集外部环境与驾驶者的行为并与自身策略对比如果驾驶者实际操作与自身判断有出入当下数据就会上传至特斯拉云端并对算法进行修正训练。 从数据采集本地芯片硬件处理、图像的软件算法处理、再到后台的超级计算机进行训练这个需要一系列的技术支持最好从芯片、操作系统、算法、控制器都是自研这样才能把芯片的性能发挥最佳从Mobileye的黑盒子开发模式直接就让车厂彻底放弃了这条纯视觉处理的道路不投入几千亿估计门都摸不着方向所以目前只有特斯拉这样的理工男对于激光雷达有勇气say no。 特斯拉FSD 关键功能汇总 参考资料
1、https://mp.weixin.qq.com/s/s4XzAFBVle92lKGrh8S5_A
2、https://mp.weixin.qq.com/s/YgiMNF2NxWlqxJD7vxfALg
3、https://mp.weixin.qq.com/s/IxcVhpKfDhq-85pmV-a_HA