作者 | 老石
责编 | 屠敏
本文为“老石谈芯”投稿
很多世界顶尖的“建筑师”可能是你从未听说过的人,他们设计并创造出了很多你可能从未见过的神奇结构,比如在芯片内部源于沙子的复杂体系。如果你使用手机、电脑,或者通过互联网收发信息,那么你就无时无刻不在受益于这些建筑师们的伟大工作。
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”的说法,它的意思是当你做一些机械性且简单的工作时,你可能不会获得太多的自我满足感。但如果你要做的工作分为很多复杂的步骤,而且你对此非常在行,那么你在做这样的工作时就会获得爆棚的自我满足感。如果在这个过程中你还能学到新的知识或技能,那么你就会沉迷其中。
在我看来,设计和制造芯片正是这样的工作。
(注:本文仅代表作者个人观点,不代表 CSDN 观点。)
【End】
CSDN 618程序员购物日:显示器、键盘、蓝牙耳机、扫地机器人、任天堂游戏机、AirPods Pro等超多IT人的心仪好物,全场超低价出售,让1亿程序员买到爽!
更多精彩推荐
☞使用虚幻引擎4年,我想再谈谈他的网络架构
☞算法鼻祖高德纳,82 岁仍在写《计算机程序设计的艺术》
☞程序员晒端午福利,网友:看了你的福利我想摔手机
☞如何成为一名黑客?
☞发送0.55 ETH花费近260万美元!这笔神秘交易引发大猜想
☞京东姚霆:推理能力,正是多模态技术未来亟需突破的瓶颈!
你点的每个“在看”,我都认真当成了喜欢