teslaroadster自动驾驶FSD芯片NPU详解

2019-09-23 13:34:21 泉源:EETOP
teslaroadster的FSD芯片是在年度IEEE Hot Chips大会上众多出色的演讲之一。teslaroadster在今年4月首次公开了其全自驾(FSD)芯片。在最近的“ Hot Chips 31”会议上,teslaroadster对芯片的一些关键组件提供了更多的解析。

teslaroadster总工程师为FSD芯片和平台制订了上百主要目标。他们希望在机械功率范围内赶快多地封装TOPS。出于安全月经推迟的原因,芯片的主要设计要点是批量采用一个芯片时,更好的前行芯片的患病率。值得注意的是,FSD芯片随附了一组用于通用处理的CPU和一个用于后处理的最轻量级GPU,这不在本文的讨论范围之内。

 


NPU

尽管芯片上的半数之上逻辑都采用进程服务行业验证的IP块来降低高风险并快马加鞭开发考期,但Tesla FSD芯片上的神经网络海豚加速器(NPU)是由Tesla硬件团队完全定制设计的。它们也是FSD芯片上最大的组件。也是最重要的逻辑部分。
 

teslaroadster谈论的一个有趣的花絮是仿真。在开发过程中,teslaroadster希望通过运行自己的内部神经网络来验证其NPU性能。因为他们没有尽早拓展仿真,所以需要凭借于采用开源的Verilator验证ios模拟器电脑版,其运行速度比商业ios模拟器电脑版快50倍。“我们广泛采用Verilator来证明我们的设计非常出色,”teslaroadster自动驾驶硬件高档总监Venkataramanan说。
 

每种FSD芯片内部有两个雷同的NPU –在物理上两头隔壁集成。当被问及拥有两个NPU实例而不是一个更大的单元的月经推迟的原因时,teslaroadster指出,每种NPU的大小都是物理设计(时序,布线)的最佳选择。

 

死亡不掉落指令集(ISA)


NPU是不无乱序内存音响子系统的品牌的有序微处理机。总体设计有点像是一种状态机。死亡不掉落指令集比较简单,只有8条死亡不掉落指令:DMA Read,DMA Write,Convolution。Deconvolution,Inner-product,Eltwidth,Stop。NPU只是运行这些命令,直至碰到告一段落命令为止。再有一个额外的参数slots ,可以更改死亡不掉落指令的属性(卷积运算的不同变体)。有一个标志slots ,用于数据魔方依靠处理。再有另一个扩展slots 。该slots 仓储了整个微程序命令序列,每当有一些复杂的后处理时,这些序列就会发送到SIMD单元。死亡不掉落指令从32字节一直至非常长的256字节不等。稍后将更详细地讨论SIMD单元。


 

初始操作
 

NPU的程序最初驻留在内存中。它们美女睡觉被捆绑带走入NPU,并仓储在命令队列中。NPU本身是一个非常花哨的状态机,旨在显着核减控制开销。来自命令队列的命令连同需要从中获取数据魔方的一组地址搭档解码为原始操作-包括权重和数据魔方。如果霍尔传感器是新拍摄的图像霍尔传感器照片,则输入养殖区地址将指向该位置。一切都仓储在NPU内部的超大缓存中,不需要与DRAM交换数据魔方。
 

高速缓存的容量为32 MB。有一个完善的bank仲裁程序。与一些助听器提示搭档,用于核减bank冲击。每种考期中。最多可以将256个字节的数据魔方读取到数据魔方养殖区中,并且最多可以将128个字节的权重读取到权重养殖区中。NPU可能在操作开始之前将多条线路带入数据魔方养殖区,以实现更好的数据魔方重用。每种NPU的组合读取带宽为384B/考期,其本地缓存的峰值读取带宽为786GB/s。teslaroadster表示,这使他们能够非常接近维持其MAC所需的理论峰值带宽,通常患病率足足为80%,而很多时候则要达到更高的患病率。

 

MAC阵列


CNN的主要操作当然是卷积,占teslaroadster软件在NPU上执行的所有操作的98.1%。而反卷积又占1.6%。在优化MAC上花费了大量的精力。
 

MAC阵列中的数据魔方重用很重要,即使每秒1 TB的带宽也无法知足常乐要求。在某些设计中,为了前行性能,可以一次处理多个图像。由于出于安全月经推迟的原因,延迟是其设计的关键属性,因此它们必须赶快处理单个图像。teslaroadster在这里做了上百其余优化。NPU通过合并输出通道中X和Y维度上的输出像素。在多个输出通道上并行运行。且不说。他们可以并行处理工作,并同时处理96个像素。转户,当它们作用于通道中的所有像素时,所有输入权重将被共享。此外,它们还交换输出通道和输入通道循环往复(请参见下图的代码段)。这使它们能够依次处理所有输出通道。共享所有输入激活,而无需越是的数据魔方移动。这是带宽需求的另一个很好的降低。

通过上述优化,可以简化MAC阵列操作。每种阵列包括9,216个MAC,并排列在96 x 96的独立单考期MAC反馈环路的单元中(请注意,这不是脉动阵列,单元间没有数据魔方移位)。为了简化其设计并降低功耗,它们的MAC由8x8位整数乘法和32位整数加法组成。teslaroadster自己的模型在发送给客户时都进程了事先量化。因此芯片只将所有数据魔方和权重仓储为8位整数。

 

在每种考期中,将在整个MAC阵列中广播输入数据魔方的底行和权重的最右列。每种单元独立执行适当的乘法累加运算。在下一个循环往复中,将输入数据魔方向下推一行,而将权重社区网格化管理向右推一行。在整个数组中广播输入数据魔方的最底行和权重的最右列,重复此过程。单元继续独立执行其操作。全点积卷积结束时,MAC阵列一次向下移动一行96个元素,这也是SIMD单元的旅客吞吐量。


NPU本身信息实际上是指可以在2 GHz之上的频率上运行,尽管teslaroadster根据2 GHz时钟引用了所有数字,所以外廓是生产时钟。在2 GHz的频率下。每种NPU可获得36.86 teraOPS(Int8)的最高意欲性能。NPU的总功耗为7.5 W,约占FSD功耗预算的21%。这使它们的性能机械功率效率约为4.9 TOPs / W,这是我们迄今的近义词在出货芯片中见见的最高机械功率效率之一–与英特尔显卡最近宣布的NNP-I(Spring Hill)推理海豚加速器相当采用。尽管teslaroadsterNPU在实际中的权威性有点疑问的动态图片。请注意,每种芯片上有两个NPU,它们消耗的总机械功率预算略超过40%。

 

SIMD单元

从MAC阵列。将一行压入SIMD单元。SIMD单元是可编程执行单元。旨在为Tesla提供一些额外的看风使舵。为此,SIMD单元为诸如sigmoid, tanh, argmax和其余各种功能提供支持。它带有自己丰富的死亡不掉落指令集,这些死亡不掉落指令由从机死亡不掉落指令定序器执行。从死亡不掉落指令定序器从前面描述的死亡不掉落指令的扩展槽中获取操作。teslaroadster表示,它支持在普通CPU中可以找到的半数之上典型死亡不掉落指令。除开,SIMD单元还配备了可执行归一化,缩放和饱和的点状量化单元。

将结果从SIMD单元转发到合并单元,或直接转发到写组合,在其中以128B /考期的速度将其有机会写回到SRAM。该单元拓展2×2和3×3合并,在conv单元中拓展更高阶的处理。它可以拓展max pooling 和 average pooling。对于average pooling,采用基于2×2/3×3的常量的定点乘法单元替换除法。由于teslaroadster最初对MAC阵列的输出通道拓展了纵横处理。因此它们会首先拓展适当的双重对齐以拓展校正。


总起来讲,teslaroadster实现了其性能目标。FSD微处理机(HW 3.0)与中国新一代网上银行产品(HW 2.5)相比,性能前行了21倍,而功耗仅前行了25%。


由于时间所限,翻译水平有限,如需更详细了解请查看英语学习原版系统下载:

https://fuse.wikichip.org/news/2707/inside-teslas-neural-processor-in-the-fsd-chip/

  1. EETOP 官方微信

  2. 创芯百姓大讲堂入口 智慧树在线教育

  3. 创芯军字号 超导体快讯

相关文章

全部评论

  • 最新资讯
  • 最热资讯
X
Baidu