扫码打开虎嗅APP
本文来自微信公众号:老石谈芯(ID:laoshi_tanxin),作者:老石
很多世界顶尖的“建筑师”可能是你从未听说过的人,他们设计并创造出了很多你可能从未见过的神奇结构,比如在芯片内部源于沙子的复杂体系。如果你使用手机、电脑,或者通过互联网收发信息,那么你就无时无刻不在受益于这些建筑师们的伟大工作。
Jim Keller就是这群“建筑师”里的一员。作为微处理器领域的传奇人物,他现任英特尔资深副总裁,兼任硅工程事业部(Silicon Engineering Group)的总经理。在此之前,他曾任职DEC、AMD、博通、苹果、特斯拉等公司,担任工程副总裁或首席架构师等工作。在他几十年的职业生涯中,他领导设计了多种x86和ARM的处理器架构,包括AMD的K7、K8、K12和Zen,苹果用于iPhone4和iPad的A4、A5移动处理器,特斯拉的自动驾驶处理器,等等。此外,他还是x86~64指令集的作者之一。
Jim Keller,图片来自英特尔
不久前,Jim Keller做客MIT的网红学者Lex Fridman的播客节目,并分享了自己对于摩尔定律、计算机体系结构、人工智能等技术问题的见解与思考。两人的对谈天马行空,并不拘泥于某个具体技术或领域,而是由某个观点出发,讨论技术背后的驱动因素,并对芯片与人工智能产业的发展和变革做了深入剖析,让人受益匪浅。
老石对Jim Keller的主要观点进行了整理和采编,按讨论的主题分成两篇文章,以飨读者。在上篇文章中,介绍了Jim Keller对摩尔定律的深入探讨。在本文中,则主要介绍了他在不同公司工作时的体会,包括对自动驾驶技术、伊隆·马斯克、以及芯片设计艺术本身的讨论与思考。文章比较长,但全部是他几十年从业经验的深入浅出的阐述,值得细品。
自动驾驶技术的本质
随着时间的推移和科技的进步,计算机的性能自然会不断增加。但我认为,自动驾驶系统的计算机并不需要特别复杂。这是因为本质上,对于人类来说,开车并不是一个特别难的技能,也不需要特别高的智力才能掌握。相比于驾驶技巧,我认为自动驾驶系统的“注意力”是更为重要的,而这也是人类驾驶员无法与之媲美的。
自动驾驶系统通过各种传感器对周围环境进行感知、测量、计算,并在驾驶过程中不间断的执行这些过程,这都是人类驾驶员无法做到的。汽车所在的环境也并非完全随机,这也在很大程度上减少了自动驾驶系统的复杂度。例如,道路和车道本身并不会动态变化,我们可以相当详尽的绘制各种地图、标注各种交通标志和信号,并且基于这些信息进行非常精准的路线计算。
对于人类驾驶员来说,第一次开车经过某条道路时他可能会非常全神贯注,因为你的大脑在不断处理这些信息,但当你开车走同样的路上下班几十次之后,你甚至会忘记自己怎么来到办公室的。在这方面,计算机系统会远胜过人类,因为它每次都会保持全部的“专注力”,它也不会忘记哪条路上有个坑,哪条路的车道不清楚等等。
此外,人们常常拿来举例的并线操作,比如你的车想要并线到别的车道里,除了等待车辆间有一定距离之外,还需要有一定的“勇气”和决心。事实上,自动驾驶系统完成并线操作所包含的计算,比人们想象中的要少很多。这也是为什么我说自动驾驶计算机不需要特别复杂的原因之一。
我常讲的一句话是,科技进展在短期内让人失望,但长期来看会让人惊喜。也就是说,多年之后,很多技术在人们看起来都是非常“稀松平常”的。拿GPS来说,当这个技术刚刚出现时,人们惊叹说我们竟然使用卫星导航,但现在,GPS已经成了人们生活的标配之一。因此,在若干年之后,这些目前看起来很复杂的自动驾驶技术可能只不过是50美金的流水线产品了。
自动驾驶技术的五个层级,图片来自网络
对于自动驾驶来说,我认为安全性永远是第一位的。伊隆·马斯克认为,自动驾驶系统最大的好处是能解放人们的专注力和时间,并得以在驾驶时做别的事情。但我觉得达到这个目标的前提,是能够设计制造出比人类驾驶员更加安全的系统,并以此作为首要目标。
当我与北美和欧洲的监管机构沟通时发现,对自动驾驶安全性的标准要比人类驾驶员更为严格,比如不能撞人、不能驶离道路、不能闯红灯等等很多。我认为这些更高的监管标准是十分必要的,而且这些标准也将在很大程度上引导自动驾驶技术未来的发展。
设计自动驾驶芯片的特殊矛盾
在设计自动驾驶芯片时,通常有两个主要矛盾。一方面,软件和算法团队在不断更新算法设计,另一方面,硬件团队又必须将某个算法固化到芯片上实现。这就使得芯片设计者会担心,自己的芯片很快就会被完全淘汰。
通常来说,如果我们把一个出色的CPU的性能设为基准,那么GPU可以在消耗同等芯片面积的情况下,提供5倍的性能提升,这是由于我之前说过的GPU有着先天并行性优势。与之相比,针对这个应用特殊设计的硬件加速器芯片则可以再额外提供2到5倍的性能提升。这是因为与CPU或GPU相比,这些ASIC可以根据具体的应用算法进行深度优化,比如采用更小的字长、更高的并行度等。
然后矛盾就来了。在高度优化的基础上,人们还希望这些硬件加速器有着可编程性,以适应不断变化的AI算法,而这是很难做到的。人们常说的“领域专用(domain specific)”芯片,却又不希望这个芯片过于专用,这本身就是一对矛盾。
因此,如果出现了新的AI算法,在很多情况下最好的实现方式还是使用GPU等现有的器件。
伊隆·马斯克的自动驾驶愿景
当前有很多初创公司也在开发自动驾驶技术和芯片,但你会看到他们把服务器放在卡车上。这是因为他们设计的东西太过复杂,并希望取代所有人类的驾驶行为,而这样也伴随着巨大的计算和金钱成本。
对于马斯克来说,他的一个主要目标是极大降低这些自动驾驶芯片和系统的成本,这样每辆车都能装备自动驾驶技术。
马斯克与Cybertruck,图片来自USA TODAY
伊隆·马斯克对人性有着深入的洞见,他认为大部分人的思想都受制于“如何做”,也就是说,人们常犯的错误是会拘泥于现有的东西,对其进行更新或改装,从而产生新的东西。事实上,我们应该思考的是人们真正需要的是什么,然后再去想如何生产制造它们。这种思维方式说起来简单,但是几乎没有人能够做到。
芯片设计需要匠人精神
我认为芯片设计者要有匠人精神。就像制造一把斯特拉迪瓦里小提琴一样,对于木材的选择、刮板、切割、打磨、粘合等等一系列工序,甚至在执行这些步骤的时候,工匠们还需要等待合适的日子和天气才行。这些都是匠人的精神。
斯特拉迪瓦里制作的小提琴,现存于西班牙马德里皇宫
事实上,大多数工程师都是匠人,他们做的工作也都是匠人的工作,而人类特别擅长于这种类型的工作。比如,我在上大学的时候经常去挖水渠,我对此非常在行。在某种意义上,挖水渠也是一种匠人工作。
行为学上有一种名为“complex mastery behaviour”的说法,它的意思是当你做一些机械性且简单的工作时,你可能不会获得太多的自我满足感。但如果你要做的工作分为很多复杂的步骤,而且你对此非常在行,那么你在做这样的工作时就会获得爆棚的自我满足感。如果在这个过程中你还能学到新的知识或技能,那么你就会沉迷其中。
在我看来,设计和制造芯片正是这样的工作。
(注:本文仅代表作者个人观点,与任职单位无关。)
本文来自微信公众号:老石谈芯(ID:laoshi_tanxin),作者:老石,微信公众号“老石谈芯”主理人,博士毕业于伦敦帝国理工大学电子工程系,现任某知名半导体公司高级FPGA研发工程师,深耕于FPGA的数据中心网络加速、网络功能虚拟化、高速有线网络通信等领域的研发和创新工作。曾经针对FPGA、近似计算、高性能与可重构计算等技术在学术界顶级会议和期刊上发表过多篇研究论文。