编者按:本文来源于微信公众号“车东西”(ID:chedongxi),作者:Juice,36氪经授权发布。
特斯拉目前已然成为全球最顶尖的电动汽车公司之一,其在电动化和自动化方面都取得了巨大的进展。尤其在自动驾驶方面,特斯拉目前是世界上所有自动驾驶研究公司中累计测试里程最多的公司,借助于特斯拉独特的影子模式,目前特斯拉已经积累了上亿公里的测试数据。
特斯拉的目标是2020年实现L4级自动驾驶,现有的芯片已经不能满足其需求,为了能够促进自动驾驶的发展,特斯拉开始了自研芯片之路。今年4月份,特斯拉首次公开了他们的全自动驾驶(FSD)芯片,7月份,马斯克在推特表示,将会对购买了全自动驾驶功能的用户免费更换FSD芯片,未选购的用户也可自费升级。
据外媒cnet报道,近日,特斯拉已经将其自研的新型自动驾驶芯片推广到老款特斯拉车型之中。部分媒体认为特斯拉在自动驾驶方面已经取得了非凡的成就,已经解决了全自动驾驶的许多现实问题,几乎可以使人类进入全自动驾驶汽车的时代了。
但也有人不这样认为,近期福布斯刊登了一篇文章,这篇文章对特斯拉的全自动驾驶芯片进行了客观的分析。
该媒体认为,特斯拉全自动驾驶芯片只是实现完全自动驾驶的第一步,特斯拉仍然面临设计经验不足、软件不适配、冗余有缺陷等问题,这款芯片是否能帮助特斯拉实现自动驾驶的宏大愿景,还有待观察。
以下为原文编译:
特斯拉的这颗芯片,是一种特殊类型的AI处理器,可以支持人工神经网络(ANN),也就是我们常听到的机器学习(ML)或深度学习(DL)。特斯拉的工程师们设计开发这款芯片的行为令人敬佩,最终开发出成果也让人敬佩。
▲特斯拉FSD芯片
但是这并不意味着他们已经在AI领域取得了颠覆性的成就,也不意味着他们已经完美的解决了自动驾驶在现实世界中存在的问题。
而部分媒体则认为特斯拉的新型芯片是解决一切现实问题的途径,利用这款芯片特斯拉几乎就能使人类进入全自动驾驶时代。
那么特斯拉自动驾驶芯片到底如何?让我们一起来看一下。
首先来看一下AI芯片的发展过程。
传统的计算机都需要CPU(中央处理器)来执行系统工作,比如使用Office办公软件或者加载程序的时候。
除此之外,大多数计算机还需要GPU(图形处理单元)来支撑,它可以辅助核心处理器来完成图形和动画的渲染,让用户能在屏幕上收到更加直观的信息。
在将计算机用于机器学习和深度学习(以下用ML / DL代替)时,GPU的作用也开始变得更加重要。人工神经网络的实现是个庞大的数值和线性代数问题,而GPU的构造和设计的目的正是为了解决这种数字混搭问题,这么一来,GPU的重要性就凸显出来了。对于开发者来说,将GPU用于ML / DL领域的开发简直是天作之合。
当研发人员认识到GPU能够推动AI技术的发展之后,研发人员也看到了GPU背后的巨大市场潜力,因此他们在设计GPU的时候也做了调整,以使其能够在ML / DL领域领域发挥更重要的作用。
接着说回特斯拉,特斯拉在研发自动驾驶之初曾选择使用英伟达生产的专用GPU芯片,特斯拉利用这款芯片的运算和处理能力来实现其ADAS(高级驾驶员辅助系统)功能和AutoPilot功能。
▲特斯拉车辆在开启AutoPilot功能后双手可以短暂离开方向盘
但是特斯拉却并未打算一直购买芯片公司的产品,其早就萌发了自己研究芯片的想法。今年4月份,马斯克和他的团队公布了其自研的AI芯片(FSD芯片),并表示将使用新芯片来取代现用的英伟达芯片。
而在8月下旬,特斯拉工程师又在IEEE(电气和电子工程师协会)主办的年度高性能芯片会议上发表了演讲,描述了他们设计的芯片的更多信息。
这次演讲也让外界对特斯拉的FSD芯片重燃兴趣。
现阶段,大多数人习惯将这类处理器称为AI芯片。为了便于讨论,我也会采用同样的叫法,但需要强调的是,其目前还无法在预期领域实现全知全能的人工智能。
简单来说,这些芯片只是增强计算能力的工具,它们与人类的大脑完全不同,并不具备任何常识和推理能力。
特斯拉不再采用英伟达的芯片,选择自己设计AI芯片(由三星制造),这其中有几个问题值得考虑。
特斯拉自己研发专用芯片是否有意义,继续使用芯片公司的芯片会不会更加方便?特斯拉的芯片与现在已有的芯片相比有什么异同?AI芯片如何在全自动驾驶方面发挥作用?
以下是关于这些问题的一些主要想法:
1、AI芯片硬件很重要 但也需要软件做辅助
需要强调的一点是,本文对于AI芯片的讨论只是一小部分,只是纯硬件方面的芯片。
要想实现真正的全自动驾驶,还需要完美的软件做辅助。比如说,有厂商推出了一款新的手机,这款手机的运行速度超级快,但是却无法与各类应用商店里的应用程序兼容,那么这款手机将没有任何意义。
外界都在吹捧特斯拉的AI芯片,却无人考虑是否有相应的软件做配合,只有硬件没有软件,完全无人驾驶也只能是个梦。
但这并不是在否定硬件的重大意义,硬件是整场战役中的一部分,软件也是这场战役的组成部分。
▲特斯拉AutoPilot功能页面
现在特斯拉还不具备能够实现真正的自动驾驶的软件,特斯拉AI团队进行重组和改组也只是为了在实现无人驾驶汽车方面获得更多的关注,完全无人驾驶的时代还远未到来。
2、自产芯片替换旧芯片 设计方面将会受限
如果想要设计一个新的芯片一般有两种情况,第一种情况为从零开始设计,设计员在知道了芯片的一系列技术与性能指标开始进行芯片的设计。
但特斯拉的工程师们面临的则是另外一种情况,他们需要在多个限制下进行设计。比如说,他们需要将功耗保持在一定的范围内,否则将会对车辆的续航产生影响,在生产成本上也会有所提升。
其次,特斯拉想用新的芯片来替代以往的芯片,这就意味着新的芯片必须和原来芯片的尺寸相当,这样才能完成替换。
▲英伟达的自动驾驶芯片(左)和特斯拉FSD芯片(右)
而且,在推出第一款产品之后,还需要根据市场的发展来推进产品的发展,这时就要考虑产品迭代的兼容性问题了。
不过特斯拉重新设计芯片也并不是多此一举的行为,新产品也可能会有更大的突破。
新的产品可以不用考虑旧事物的限制,在设计方面能够更加自由,也往往能取得不错的成绩,Uber和Lyft就突破了出租车和出租车所面临的限制才能快速地取得了成功。
话虽如此,但在芯片设计领域,尺寸、重量、功耗、散热、成本以及其他因素都会对芯片造成固有的限制。
3、特斯拉芯片并非最强芯片 各个芯片用途不一
我看到的最多的不恰当的比较就是将特斯拉的AI芯片与其他芯片进行比较,拿特斯拉最新的芯片与其他芯片过时的版本比较非常不恰当。如果非要比较的话,也应该使其与市场上最新的版本进行比较。
多数人经常引用特斯拉芯片的算力,来证明其比以前使用的英伟达芯片快很多倍(但应该与英伟达最新的芯片比较)。但事实是,特斯拉芯片的算力与市面上的其他替代品差不多,在某些方面可能会强于其他产品,但在某些方面也可能会差于其他产品。
另外一个让人不舒服的就是被大肆宣传的高额数字,例如特斯拉的AI芯片由60亿个晶体管组成,虽然60亿是一个巨大的数字,但是市面上已经有了搭载了200亿个晶体管的GPU。
▲特斯拉FSD芯片
我这么说并不是在贬低60亿个晶体管,只是想说明,不同的芯片有不同的设计用途,仅用晶体管数量加以对比毫无意义。
4、初次生产芯片 特斯拉需要自行审查和测试
毫无疑问,第一代芯片的设计过程都非常艰难,将会面临大量的错误或潜在错误,设计者们需要花费大量的时间才能找出其中存在的问题。
芯片封装在硅中,因而不容易更改,因此有时候需要利用软件补丁来协助解决硬件问题,工程师一般会在产品进行多次迭代之后对硬件进行更改和升级。
▲特斯拉FSD芯片上的一个AI加速器
特斯拉选择自己独立设计芯片可以让其掌握芯片技术,但也会因为初代产品的缺陷而出现问题。现在已经成熟的商用芯片已经经过了原始制造商和购买的公司的检查和测验,相对比较成熟,而特斯拉的芯片就只能由其自己进行审查和测试了。
5、自研芯片耗费巨大 也可拓宽特斯拉业务
想要使用自己设计的芯片,还有很多问题需要注意。
特斯拉投入大量精力和资金去研发芯片是否值得?在研发芯片的时候要付出多少机会成本?
特斯拉选择自己进行芯片研发,意味着其不但要承担原始的设计成本,还得承担不断升级和改进芯片的持续成本。设计芯片不是一劳永逸的事情,人工智能芯片正在以惊人的速度发展,特斯拉选择研发芯片也就要选择升级改进芯片。
当选择自己独立设计芯片时,意味着还需要培养自己的专家,有了好的专家才能开发出更好的软件。但这种专家只能自己培养,其他公司的专家对于特斯拉的技术并不了解,他们只熟悉原来公司的芯片知识体系。
▲特斯拉发布FSD芯片现场
但特斯拉选择自研芯片也总算不用再看芯片商的脸色了,不用依赖其他公司的芯片。而另一个好处则是,特斯拉除了汽车业务之外,还能直接从事芯片设计和升级业务。
从成本角度来看,这并不是一个明智的选择,那些认为制造专有芯片成本低廉的公司可能并没有完全参与芯片的设计和改进过程。
这对于特斯拉来说将会是一场赌局,特斯拉走出这一步到底是对是错只有时间能给出答案。
6、特斯拉冗余系统并不完美 自动驾驶尚存难题
自动驾驶汽车在运行的时候需要车辆作出的每一个指令都正确,要从根本上减少事故的发生,因此就需要引入冗余的概念。
特斯拉将会在车内装载两个相同的芯片,如果两个芯片的判断结果不一致,车辆就会放弃当前的驾驶规划,然后进行下一次的捕获和分析。
▲特斯拉FSD芯片
从表面上看,这个系统非常安全,但是仔细考虑也会发现其中的问题。
如果其中一个芯片出现了问题,会导致两个芯片的计算结果不一致,因此这套系统能够避免一些事故的发生,但是这也仅仅是将问题排除出去,却不能从根本上解决问题。
假如这种不一致的情况并非短暂的出现,而是一次又一次的反复出现,两个芯片持续存在分歧,这种情况可能会推迟系统作出决定,这也同样会造成严重的后果,因此不做决定不一定是最好的驾驶策略。
另一个存在问题的地方是,两个芯片必须完全保持一致。假如两个芯片都做出了错误的选择,但由于它们达成了一致,这时就会导致事故的发生。
因此在建立冗余系统的时候,应当是两套独立且目的不同的系统,这样才能保证安全行驶。
除此之外开发者还需要加强分析意识,如果两个芯片无法达成共识,我们要知道他们产生分歧的原因。我们要从分歧中学习一些有价值的东西,这样才能提高自动驾驶系统的决策能力。
很多自动驾驶公司都有冗余的设计,特斯拉的冗余系统也不一定完全可靠,对于冗余的判断不可武断。
特斯拉为了进一步发展其自动驾驶技术,自己组织团队研发了自动驾驶AI芯片,在今年4月份首次公布了这款芯片的消息,目前,部分特斯拉车主已经安装上了这款芯片。
部分民众认为,特斯拉的这款芯片性能强悍,算力出众,可以解决自动驾驶中存在的大部分问题,能够凭借这款芯片真正的进入自动驾驶时代。
但事实是,这款芯片确实性能比较出众,对于特斯拉本身来说也非常重要,能够促进特斯拉自动驾驶技术的发展。但是这款芯片也仍然存在许多问题,距离完全自动驾驶还存在着不小的差距。