发布作品

    特斯拉的HW 3.0自动驾驶大脑:性能怪兽

    冷酷的冬瓜头像冷酷的冬瓜头像
    冷酷的冬瓜2020-04-19

    注:下文作者Chanan Bos,由@冷酷的冬瓜 翻译整理。


    特斯拉的HW 3.0自动驾驶大脑:性能怪兽

    Chanan Bos,2019年6月15日

    https://cleantechnica.com/2019/06/15/teslas-new-hw3-self-driving-computer-its-a-beast-cleantechnica-deep-dive/

    一个月前,特斯拉透露了这家硅谷公司为完全自动驾驶(Full Self-Driving,FSD)设计的新芯片的几个秘密。尽管如此,并不是每个人都完全了解芯片设计——我不属于这一类,因为我是电脑爱好者已经有很长一段时间,了解的一些信息可能帮我挑出一些亮点,指出了为什么这件事情是如此令人兴奋、并进一步探讨特斯拉是如何实现竞争中的领先地位。我也有一些关于这个新芯片能带来什么的理论。


    长文预警:这篇文章仍然是偏技术的,我尽力用简单的文字来解释要点。


    主板上有什么?

    首先,我们可以看到主板的大致照片。主板有完整的备份,这意味着主板上的任何系统发生故障之后,程序将继续运行,就像什么都没有发生一样。主板的右边是所有摄像头接入的地方,左边是电源以及一些输入和输出连接。在主板的中间,你可以看到两个处理器(注意“处理器”只是一个半精确的描述,稍后我们会谈到)。特斯拉使用2个处理器来实现冗余和结果交叉参照,而不是为了提高性能。

    “很不错的分析。这两个处理器将被使用并以大约每秒20次的频率同步。这对处理器来说是一段很长的时间:就像双引擎飞机,使用两个引擎最大限度地保证正常的运作,但可以安全地操作只有一个。”

    在处理器的下边靠左一点(蓝色方框)是存储操作系统的闪存芯片。目前每个芯片的容量是未知的,但考虑到现在你甚至都可以买到一个容量为500GB的micro-SD卡,那么特斯拉的这颗闪存芯片容量可能是相当大的。

    在每颗处理器的左侧和右侧,您可以看到4个LPDDR4芯片(绿色方框)。处理器是三星的,这也让一些人误以为RAM也是三星的,但事实并非如此。

    如果你仔细看芯片,你可以看到一个小标志。三星并没有在它的内存芯片上使用这样的标识,但是美光却有,而且它的标识,尤其是它在芯片上使用的标识,似乎与我们在这张图片上看到的非常接近。美光还生产LPDDR4内存,甚至有一条针对汽车行业的产品线。特斯拉选择美光而不是三星的原因可能是他们的LPDDR4 RAM有更高的时钟频率2133 MHz,而三星则为1600 MHz。

    LPDDR4芯片是DRAM的一种,本文后面将会提到它。从某种角度来看,LPDDR4是DDR4的低功耗版本,目前用于台式机和笔记本电脑。LPDDR4比DDR4稍微慢一点,但是根据不同的型号,在某些情况下可以比DDR3表现得更好。LPDDR4目前也被用于智能手机。

    取下散热片,就能看到处理器,特斯拉已经告诉了我们很多关于它的信息。处理器尺寸约260 mm2。从这个角度来看,iPhone的处理器大约是80-120 mm2,英特尔笔记本/台式处理器芯片大约是180 mm2, NVIDIA的Xavier芯片是350 mm2,专用显卡上的芯片从400到800 mm2不等。


    特斯拉SoC的核心(或大脑)

    首先我们要澄清一个巨大的误区。我之前称特斯拉的芯片为处理器,但这并不完全准确。它实际上是一个完整的片上系统(SoC)。特斯拉把一个中央处理器CPU,一个图形处理器GPU,两个神经网络处理器NPU,以及一堆你可能甚至不知道的、但是存在于这片芯片上的其他东西。

    从摄像头的图像开始,根据数据流向,特斯拉解释了整个过程。首先,数据以每秒25亿像素的最大速度采集输入,这大致相当于以每秒60帧的速度输入21块全高清1080P屏幕的数据。这比目前安装的传感器产生的数据多得多。这些数据然后进入我们前面讨论的DRAM,这是SoC的第一个也是主要瓶颈之一,因为这是处理速度最慢的组件。然后数据返回到芯片,并通过图像信号处理器ISP,每秒可以处理10亿像素(大约8个全高清1080P屏幕,每秒60帧)。这一阶段芯片将来自摄像头传感器的原始RGB数据转换成除了增强色调和消除噪音之外实际上有用的数据。

    然后我们就来到了整个芯片中最有趣的部分,神经网络处理器,即NPU。该过程的第一步是将数据存储在SRAM阵列中。现在很多人——甚至是那些对计算机组件略知一二的人——可能会想,“SRAM到底是什么?”嗯,最接近的比较是在计算机处理器上能找到的共享L3缓存。这意味着什么呢?这意味着存储速度非常快,但同时也很贵。目前,Intel最大的L3缓存是45 MB(2010年以前是16 MB, 2014年以前是24 MB)。大多数消费级笔记本电脑和桌面处理器都有8-12 MB的L3缓存。特斯拉的神经网络处理器有一个庞大的64MB SRAM,它被分成两个32 MB的SRAM段来支持两个神经网络处理器。特斯拉认为其强大的SRAM容量是其相对于其他类型芯片的最大优势之一。

    这个配置看起来有足够的内存来存储、渲染和处理所有摄像头和传感器组合输入的单一帧,但是由于图像帧并不是低质的JPEGs,而是大型增强的无损帧,所以内存可能仍然不够。请记住,如果摄像头确实以每秒60帧的速度工作,那么SRAM中的一个合并帧可能相当于每秒处理3.84 GB的数据。由于单个帧可能更大,我甚至不想冒险猜测这是多少GB/s,但我知道它小于68 GB。

    所有的数据通过芯片的主通道,也被称为“片上网络”或“NoC”(图中被涂成蓝色),然后是LPDDR4 DRAM,通过它,数据传输的带宽为68 GB/s。特斯拉在自动驾驶日的发布会上表示“虽然这已经足够了,但还可以做得更好”,从这一点我们可以推测,特斯拉可能会在下一代产品中改进这一技术。目前,还不完全清楚瓶颈是DRAM的带宽还是SRAM的数量。

    神经网络处理器是一个非常强大的工具。很多数据都要经过它,但有些计算任务还没有调整到适合神经网络处理器上运行,或者不适合这种处理器。这就是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倍。


    英伟达觉得有必要挽回面子

    讲了很多技术问题,让我们休息一下,给大家看一些有趣的东西。特斯拉的自动驾驶日结束后,英伟达(NVIDIA)发表了一篇新文章,称赞特斯拉“提高了自动驾驶的门槛”。紧接着,英伟达为了挽回颜面,用毫无用处的比较标准来鼓励自己。

    特斯拉的HW 2.0由NVIDIA Xavier芯片驱动,该芯片的算力可达到21至30 TOPS(Tera Operations Per Second)。特斯拉最新推出的HW3芯片最高可达144 TOPS。

    特斯拉在其演示中表示,NVIDIA的Xavier芯片可以达21 TOPS。英伟达试图纠正特斯拉,因此在其文章中说,它实际上是30 TOPS,而不是21 TOPS。问题是,NVIDIA的Xavier芯片是为“多种用途”而设计的,它尽可能地符合多个潜在客户的要求。因此,该芯片没有神经网络处理器,但可以使用软件和一些侧重深度学习的硬件成功地模拟出神经网络处理器。特斯拉说最多21 TOPS,这是通过芯片上的GPU模拟神经网络得出的结果。特斯拉的参考标准非常简单。“在这个硬件上,我们的软件可以达到多少TOPS?”这是一个完全不同的问题,相比“在运行充分利用芯片的软件情况下,这个硬件能够支持的最大算力是多少TOPS”来说。理论上,如果芯片被要求在另一个场景中执行其他任务,它可能会达到30 TOPS以上,但在这种情况下,这是一个非常无用的指标。尽管如此,英伟达为其他客户或潜在客户澄清是非常明智的。

    需要注意的是,在对一个复杂的软件进行基准测试时,所考虑的都是特定软件能够实现的性能。这就是为什么最好的硬件并不总是理论上性能最高的硬件。

    在过去,我们通常只有一个通用处理器和一个数字协处理器。然后是图形协同处理器,然后是现在的神经网络协处理器。尽管,具有讽刺意味的是,在这种情况下,CPU更像是神经网络处理器的协处理器。基本上,特斯拉所做的就是创造了一个专门的处理器,它能更好地完成特定的任务,但在一般的计算任务却很糟糕。所以,是的,这个芯片唯一擅长的“游戏”就是在我们生活的“矩阵”中穿梭——它真的很擅长这个。

    为了进一步捍卫它的“骄傲”,NVIDIA说,当你在该公司的DRIVE AGX Pegasus产品中将XAVIER和一个强大的GPU结合时,你可以达到160 TOPS的算力。如果特斯拉根据自己的应用——由于需要虚拟化神经网络处理器——它只能利用其中的70%,那就意味着最多112 TOPS,而且产生大量能耗。英伟达还说,DRIVE AGX Pegasus可以通过两个堆叠达到320 TOPS,但这个针对特斯拉所需的应用场景这一特定应用来说,这是不现实的。

    当我们谈论网速时,我们不仅关心速度,还关心延迟/响应时间。在这种情况下,特斯拉已经在抱怨数据从芯片旁边的DRAM到达芯片的延迟。使用脆弱的NVlink(NVlink是英伟达开发并推出的一种总线及其通信协议)总线从多个松散连接的芯片传输数据的延迟是完全不可接受的。

    此外,这还没有考虑到电动汽车是由电池供电的,而不是由核反应堆供电的,而你需要使用的电量会在你到达高速公路之前耗尽你的电池。效率是关键。

    英伟达的解决方案更侧重于结合多个芯片的性能。它的市场需求是拥有多核、更好的SPUs、更好的GPUs,并将它们通过NVlink连接起来,而不是专为特定应用场景创建的解决方案。这对于试图改进软件或大学项目的公司来说是很好的,但是这种解决方案对于实际应用来说不够有效。


    HW 4.0

    上面就是特斯拉的HW 3.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——匀出预算和空间。


    结论

    特斯拉的HW 3.0计算平台绝对是个庞然大物。它可以处理7倍多的图像帧,有7倍大的神经网络,正如在演示中所说的,“有很多方法可以使用它”。作为一名计算机爱好者,观看特斯拉的自动驾驶日演说要比去迪士尼乐园有趣得多。要实现全自动驾驶功能,第一步是分清轻重缓急,特斯拉当然是这样做的。

    有几点可能大家没有注意到,这导致人们低估或不理解为什么特斯拉实际上在开发全自动汽车的竞赛中处于领先——遥遥领先——的地位。有一个很好的类似问题。所有其他开始生产电动汽车的制造商都有一些先进的技术,但仍然无法打败特斯拉2012年上市的Model S,这只是在电动汽车方面的事情,甚至不涉及计算平台/软件/UI方面的事情。在电动汽车的竞争中技术没有跟上的原因很简单:垂直整合

    让我简单解释一下:假设你是一个制造商,你需要建一个网站。你可以使用一个平台,在那里拖放一些小部件、页面和解决方案并键入一些文本,或者你可以让一个专门的程序员团队创建一个专业的网站。传统汽车制造商正试图通过电动汽车和自动驾驶来实现前者。他们从不同的公司订购“乐高”玩具,希望它们能搭配在一起。在那些不合适的地方,他们只是用刀来雕刻一个“乐高”,使它适合另一个。另一方面,特斯拉更像埃隆·马斯克的推文:

    有了最新的HW 3.0,一切都变得像手套一样合身,几乎和你在上面的推特上看到的一样合身。埃隆·马斯克曾表示,完全自动驾驶只有在电动汽车上才有意义,他是对的。为了更恰当地突出这一点,我们会说“不值得为内燃机车这样做”。实时扭矩的缺乏,使得自动驾驶在避免撞车、路面湿滑和结冰的情况下,效率更低,安全性更差,我们将在接下来的一篇文章中深入探讨这一点。

    然而,最重要的原因是,为即将消亡、即将灭绝的产品,比如燃油车,投资去做自动驾驶解决方案是愚蠢的、天真的。

    在为电动汽车开发自动驾驶解决方案时,电能效率可能是仅次于安全性的第二重要指标,而其他汽车制造商或芯片制造商目前对它的考虑还远远不够(或者至少不够有效)。这也是特斯拉遥遥领先的另一个原因。



    相关精彩推荐:

    汽车架构框架:沃尔沃汽车的经验

    狼(堡)烟四起?《经理人杂志》:74号大厅的对决

    干货!特斯拉EEA跟踪研究者不愿错过的一篇文章

    .万次阅读
    62评论
    77赞同
    收藏
    分享
    62评论
    77赞同
    收藏
    分享

    评论·0

    头像头像
    提交评论
      加载中…

      热门资讯