特斯拉自动驾驶投资者日演示文稿第一部分的翻译,该演示文稿为特斯拉自动驾驶仪开发了全自动驾驶计算机。 我们填补了演示文稿及其内容的论文评论之间的空白。演示文稿的文本翻译得接近原始文本。 向演讲者提问-有选择地使用缩写词。主持人:大家好。 很抱歉迟到了。 欢迎来到我们自动驾驶的第一天。 希望我们能更定期地这样做,以使您了解我们的最新动态。
大约三个月前,我们正在与Ilon和其他高管一起准备第四季度的收益报告。 然后我说,在公司内部所见与外部看法之间,与投资者进行对话的最大差距是我们在自动驾驶方面的进步。 这是可以理解的,在过去的两年中,我们讨论了增加Model 3的生产,围绕该模型存在很多争议。 实际上,背景发生了很多事情。
我们开发了一种用于自动驾驶的新型芯片,完全重新设计了机器视觉神经网络,并最终开始发布全自动驾驶计算机(FSDC)。 我们认为打开面纱,邀请所有人并讲述我们在过去两年中所做的一切都是一个好主意。
大约三年前,我们想要使用,我们想要找到用于自动驾驶的最佳芯片。 我们发现,没有为神经网络从头开始设计的芯片。 因此,我们邀请我的同事集成电路设计副总裁Pete Bannon为我们开发这种芯片。 他在芯片开发方面拥有大约35年的经验。 包括在PASemi工作了12年,后来被Apple收购。 在加入特斯拉之前不久,他从事过数十种不同的体系结构和实现的工作,并且是Apple iPhone 5的首席设计师。 也加入我们的Elon Musk。 谢谢啦
Ilon:实际上,我将介绍Pete,但由于他们已经做到了,所以我要补充一点,他就是我所知道的世界上最好的系统和集成电路架构师。 您和您在特斯拉的团队感到荣幸。 请只告诉我们您所做的不可思议的工作。
皮特:谢谢伊隆。 今天早上我很高兴来这里,很高兴向您介绍我和我的同事过去三年来在特斯拉所做的所有工作。 我将向您介绍这一切的开始方式,然后向您介绍FSDC计算机,并告诉您其工作方式。 我们将深入研究芯片本身,并考虑一些细节。 我将描述我们设计的专用神经网络加速器如何工作,然后显示一些结果,并且希望到那时您还不会入睡。
我于2016年2月被录用。 我问艾隆是否准备好花必要的钱来建立这个专门的系统,他问:“我们会赢吗?”,我回答:“当然,是的,”然后他说:“我在做生意”,一切都开始了。 。 我们雇用了一群人,并开始考虑专门为全自动驾驶设计的芯片的外观。 我们花了18个月的时间开发了第一个版本,并于2017年8月将其发布用于生产。 我们在12月份获得了该芯片,它可以正常工作,并且在第一次尝试时实际上工作得很好。 在2018年4月,我们进行了一些更改并发布了B版本零修订版。 2018年7月,该芯片获得认证,我们开始全面生产。 2018年12月,自动驾驶堆栈在新设备上启动,我们得以在现实世界中进行公司汽车的改装和测试。 2019年3月 我们开始在型号S和X以及4月的Model 3中安装新计算机。
因此,从雇用第一批员工到全面推出我们的所有三种车型的整个程序,花了三年多一点的时间。 这也许是我参加过的最快的系统开发程序。 它确实讲到了高度垂直集成的好处,它使您可以进行并行设计并加快部署。
在目标方面,我们完全专注于特斯拉的要求,这大大简化了使用寿命。 如果您只有一个客户,则无需担心其他客户。 目标之一是将功率保持在100瓦以下,以便我们可以转换现有机器。 我们还希望降低成本以提供冗余以提高安全性。
当我们将手指戳向天空时,我认为驾驶汽车需要每秒至少50万亿次操作的神经网络性能。 因此,我们希望获得至少更多,更好的产品。 批次大小决定了您同时处理的项目数。 例如,Google TPU的数据包大小为256,您需要等到有256个项目要处理后才能开始。 我们不想等待,只开发了一个封装大小的引擎。 图像出现后,我们会立即对其进行处理,以最大程度地减少延迟并提高安全性。
我们需要一个图形处理器来进行一些后处理。 最初,它占据了很多地方,但是我们假设随着时间的推移,它将变得越来越小,因为神经网络越来越好。 确实发生了。 我们在设计中加入了相当适度的图形处理器,从而冒了风险,事实证明这是个好主意。
安全性非常重要,如果您没有受保护的汽车,就不会有安全的汽车。 因此,非常重视安全性,当然也包括安全性。
就芯片架构而言,正如Ilon之前提到的,在2016年,最初没有为神经网络创建加速器。 每个人只需向其CPU,GPU或DSP添加指令即可。 没有人用0做开发。因此,我们决定自己做。 对于其他组件,我们购买了标准IP工业CPU和GPU,从而缩短了开发时间并降低了风险。
令我感到有些意外的是使用特斯拉现有命令的能力。 特斯拉拥有出色的电源,信号完整性分析,外壳设计,固件,系统软件,电路板开发以及非常好的系统验证程序开发人员团队。 我们能够使用所有这些来加速程序。

这就是它的样子。 在右侧,您会看到来自汽车摄像头的视频连接器。 板中心左侧的两台自动驾驶计算机-电源和控制连接器。 当解决方案涉及其基本要素时,我会喜欢它。 您拥有一个简单明了的视频,一台计算机和强大的功能。 这是以前的Hardware 2.5解决方案,其中包括计算机,并且我们在最近两年中安装了该解决方案。 这是FSD计算机的新设计。 它们非常相似。 当然,这是由于汽车现代化计划的局限性所致。 我想指出的是,这实际上是一台相当小的计算机。 它放在手套箱的后面,不占据行李箱的一半。
正如我之前所说,板上有两台完全独立的计算机。 它们以蓝色和绿色突出显示。 在每个SoC的侧面,您都可以看到DRAM芯片。 在左下角,您可以看到代表文件系统的FLASH芯片。 有两台独立的计算机可以在各自的操作系统下启动和运行。
Ilon:一般原则是,如果任何零件出现故障,则机器可以继续移动。 摄像头,电源电路,特斯拉计算机芯片之一发生故障-机器继续运行。 该计算机发生故障的可能性大大低于驾驶员失去意识的可能性。 这是一个关键指标,至少一个数量级。
皮特:是的,因此,要使计算机保持运行状态,我们要做的一件事就是冗余电源。 第一个芯片在一个电源上运行,第二个芯片在另一个电源上运行。 对于摄像机也是如此,电源上的一半摄像机标记为蓝色,另一半则标记为绿色。 两种芯片均接收所有视频并独立处理。
从驾驶的角度来看,顺序是从您周围的世界中收集大量信息,我们不仅有摄像头,而且在汽车周围还具有雷达,GPS,地图,陀螺稳定器(IMU)和超声传感器。 我们有一个转向角,我们知道汽车的加速度应该是什么样。 所有这些共同构成一个计划。 计划准备就绪后,两台计算机将交换其计划版本以确保它们匹配。
假设计划相同,我们发出控制信号并驱动。 现在,您正在使用新控件,您当然要对其进行测试。 我们验证传输的控制信号是否与我们打算传输到汽车执行器的信号一致。 传感器用于验证控制是否确实在进行。 如果您要求汽车加速,减速或向右转或向左转,则可以查看加速度计并确保确实发生这种情况。 我们的数据和数据监视功能都存在大量的冗余和重复。
让我们谈谈芯片。 它采用37.5 mm BGA封装,带有1600个引脚,其中大多数是电源和地。 如果卸下盖子,则可以看到基板和中心的晶体。 如果分离晶体并将其翻转,您将看到13,000个C4凸块散布在整个表面上。 以下是集成电路的十二个金属层。 这是一种14纳米FinFET CMOS工艺,尺寸为260 mm.sq.,是一个小电路。 为了比较,常规的手机芯片约为100mm 2。 高性能图形处理器约为600-800mm.kv。 所以我们在中间。 我会称其为黄金分割,这是便于组装的尺寸。 有2.5亿个逻辑元件和60亿个晶体管,尽管我一直在努力,但这些使我感到惊讶。 该芯片是根据AEC Q100汽车标准制造和测试的。
我只想讨论一下芯片,并解释其所有部分。 我将按照与来自相机的像素相同的顺序进行操作。 在左上角,您可以看到摄像头界面。 我们每秒可以拍摄25亿个像素,这对于所有可用的传感器来说绰绰有余。 一个将数据从内存系统分发到芯片左右边缘的内存控制器的网络。 我们使用标准LPDDR4,其运行速度为每秒4266吉比特。 这为我们提供了每秒68 GB的最大吞吐量。 这是一个相当不错的带宽,但又不过分,我们试图保持中间立场。 图像处理处理器具有24位内部流水线,这使我们能够充分使用车内的HDR传感器。 它执行高级色调映射,有助于更好地突出显示细节和阴影,还执行高级降噪,从而仅改进我们在神经网络中使用的图像的整体质量。

神经网络加速器本身。 芯片上有两个。 它们每个都有32 MB的SRAM,用于存储临时结果。 这样可以最大程度地减少我们需要传输到芯片的数据量,反之亦然,从而有助于降低功耗。 每个包含一个具有累加功能的96x96乘法器阵列,这使我们每个周期可以执行近10,000个MUL / ADD操作。 有一个专用的ReLU加速器,即池加速器。 它们每个都以每秒2 GHz的频率提供36万亿次操作。 芯片上的两个加速器每秒可提供72万亿次操作,这明显高于50万亿美元的目标。
Stuart和Andrew稍后将讨论视频编码器(我们在汽车中使用的视频)来执行许多任务,包括从后视摄像头输出图像,视频记录以及将数据记录到云中。 一个相当适中的图形处理器位于芯片上。 它支持32位和16位浮点数。 还有12个64位通用A72处理器。 它们的工作频率为2.2 GHz,大约是以前解决方案性能的2.5倍。 该安全系统包含两个以锁步模式运行的处理器。 该系统做出最终决定,将控制信号传输到车辆驱动器是否安全。 这是两架飞机合在一起的地方,我们决定前进是否安全。 最后,一个安全系统的任务是确保在该芯片上仅使用经过密码签名的Tesla软件芯片。
我告诉您许多不同的绩效指标,我认为展望未来会很有用。 我们将考虑来自(狭窄)相机的神经网络。 它需要进行350亿次操作。 如果我们使用所有12个CPU来处理此网络,则我们每秒可以处理1.5帧,这非常慢。 绝对不够开车。 如果我们在同一网络中使用具有600 GFLOP的GPU,则每秒将获得17帧,这仍然不足以驱动具有8个摄像头的汽车。 我们的神经网络加速器每秒可以产生2100帧。 您会发现与神经网络加速器相比,CPU和GPU中的计算量可以忽略不计。
让我们继续讨论神经网络加速器。 我只会喝点水。 左侧是神经网络的图形,可让您大致了解发生了什么。 数据到达顶部并通过每个块。 数据沿着箭头传输到各个块,这些块通常是带激活函数(ReLU)的卷积或反卷积。 绿色块组合图层。 重要的是,一个块接收的数据随后将被下一个块使用,而您不再需要它-您可以将其丢弃。 因此,所有这些临时数据都会在通过网络时创建和销毁。 无需将它们存储在DRAM的芯片外部。 因此,我们仅将它们存储在SRAM中,几分钟后,我将解释为什么这非常重要。

如果从右边看,您将看到在这个拥有350亿个运算的网络中,几乎所有都是卷积,本质上是标量积,其余都是反卷积(逆卷积),也是基于标量积,然后ReLU和合并相对简单操作。 因此,如果您正在开发加速器,那么您将集中精力实现基于累加的标量产品并对其进行优化。 但是,假设您将此操作加速了10,000次,而100%变为0.1%。 突然,ReLU和合并操作变得非常重要。 因此,我们的实现包括用于ReLU处理和池化的专用加速器。
该芯片以有限的热量预算运行。 我们需要非常小心地消耗电力。 我们想最大化我们可以做的算术量。 因此,我们选择32位整数加法,它消耗的能量比浮点加法少9倍。 并且我们选择了8位整数乘法,该方法比其他乘法运算消耗的能量也少得多,并且可能具有足够的精度以获得良好的结果。 至于记忆。 就功耗而言,访问外部DRAM的成本是使用本地SRAM的一百倍。 显然,我们想充分利用本地SRAM。
从管理的角度来看,这是Mark Horowitz在一篇文章中发布的数据,他在其中严格审查了在常规整数处理器上执行一条指令所需的能量。 您会看到加法运算仅消耗总功率的0.15%。 其他一切都是管理的开销,还有更多。 因此,在我们的设计中,我们努力消除所有这些。 我们真正感兴趣的是算术。

这是我们完成的设计。 您可以看到,其中的主要位置被32 MB的SRAM占据,它们分别位于中间,中间,底部,左侧,右侧。 所有计算均在上部中央进行。 每个周期,我们从SRAM阵列中读取256字节的激活数据,从SRAM阵列中读取128字节的权重,并将它们组合到96x96的阵列中,该阵列在2 GHz的每个周期内进行9000次累加。 这只有36.8万亿。 操作。 既然我们已经完成了标量乘积的处理,就可以上传数据,通过专用的ReLU(可选地,通过拉取)将其传递,最后将其放入写缓冲区中,在此处汇总所有结果。 然后,我们每个时钟将128个字节写回到SRAM。 所有这些都是连续发生的。 我们使用标量产品,同时卸载先前的结果,执行拉取并将结果写回内存。 2 , 1 SRAM . . , — .
. DMA , DMA . (convolution, deconvolution, inner-product). — (eltwise). , , .
. , , . , (fusion) , SRAM. . , . SRAM. , . . DMA , , . , , CRC . SRAM .
, , , , ; ; ; . « » , . , .
. 100 . , , , 72 . , , — . 72 15 . 80% , . (narrow) , , 35 , 110 . , FSD , , 2300 .
: , , ,
: , 3. . nvidia Drive Xavier, 21 . , FSDC — 144 . .
, , , , 144 . . . , . . , , FSDC Tesla, . .
: , .
, , , , , , FSD Tesla, . , , Tesla, , . , . , . Tesla, , . Nvidia S X Model 3 . . : Tesla, , . , , . . . .
Q: , ReLU?
: , ,
Q: , , 10 7 ?
: , , IP, , 10
: , . , . , , .
Q: . ?
: — , , — . . . , . . , — . , .
Q: ?
: Model 3 250 .
: . , . , 1 . 6 Model 3. 25/, 25%. , , , , .
Q: IP, IP ?
: . , , , . ( )
Q: - , , , ,
: , , . . . , - .
. . . Tesla , . 500 000 8 12 . FSDC. . , Google , , Google .
: , FSD, , . , . AI — , . , .
: , , . , . , . , .
( , , .)