“皮衣刀客”和他的“核弹工厂”:英伟达的诞生
2012年,谷歌的华人工程师、机器学习领域里的元老级人物、人称“机器学习之父”的吴恩达率领着“谷歌大脑”团队执行了一次“特别行动”——他们用1000台计算机,16000枚CPU芯片搭建了一个“猫脸识别系统”——通过喂给AI数百万张猫脸照片,教会AI识别猫咪。
最后,他们成功地让AI从1000万张照片里识别出了一张猫咪的照片。在当时,这个行动的成功在整个业界掀起了一次超级大地震。
无独有偶,也是在2012年,由斯坦福大学的李飞飞教授主办的ImageNet比赛上,一位名叫AlexKrizhevsky的科学家也因在图像识别上的优秀表现而获得冠军。
这本身并不是一个什么令人瞩目的新闻,但事件背后的东西才令人惊奇:谷歌当年也秘密参加了那场比赛,拿着相同的“考题”在私底下做了同样的测试。只不过,比赛结果公布后,谷歌震惊了:比起Alex团队的识别精度,自己的精度差了一大截。
作为科技龙头公司,谷歌明明拥有海量的资源、金钱和高端设备,却输给了一个学术小团队。要知道,Alex的团队一共就三个人,除了Alex自己,剩下两个分别是他的同学Ilya和他们的指导老师Hinton。
就算Hinton是业内的顶级专家,也总不至于让谷歌输成这个样子吧?
后来发现,问题的关键在于硬件——这是GPU对CPU的一次碾压式胜利。
谷歌意识到这个问题之后,很快也部署了大量的GPU来作为算力资源。随后更是直接收编了Hinton、Alex和Ilya三人。
今天,提到人工智能就绕不过GPU,GPU俨然已经成为了AI时代的基础设施。而提到GPU,就绕不开一个名字——英伟达,一个诞生于1993年,从做游戏显卡起家的芯片巨头。
今天,我们就来聊聊英伟达和它的这些年。
“顽童”和创业
2017年10月23日,中国台湾省台北市,著名的芯片代工巨头台积电(TSMC)举办了成立30周年的庆典。全球半导体领域的重要人士几乎都在这个时候云集台北——当时的苹果首席运营官威廉姆斯,高通首席运营官莫伦科夫等人都出席了这次活动。
在一众西装革履的业界精英中,你会发现一个身材健壮,穿着黑色皮衣和牛仔裤,和大家画风完全不一样的老哥。
这位皮衣老哥,就是人送外号“硅谷刀王”,业内称为“顽童”的英伟达创始人兼CEO——“老黄”黄仁勋。
老黄1963年出生于台南的一个颇为体面的家庭里,父亲是一名化学工程师,母亲是一名小学老师。显而易见,这个出身,以后大概率是要当顶级做题家的。
就在老黄9岁的时候,家里人决定移民到美国。不过,在移民的过程中,遇到了一点点“小变故”。老黄爸妈暂时还去不了美国,老黄无奈求学于一个专门为了问题少年建立的寄宿学校。在这样一个环境下,老黄在还是“小黄”的时候就学会了抽烟和打架。
由此可见,老黄的“顽童”称号的确不是浪得虚名。
好在几年之后,老黄的爸妈终于也来到了美国,老黄终于能够离开“少管所”了。
进入正规学校之后的老黄不仅在学习上进步飞快,而且还成为了专业的乒乓球运动员——1978年,15岁的他就拿到了美国乒乓球公开赛的双打季军。
然后,老黄的故事便趋于平淡了——读了大学,选了电子专业,成为了一名工程师,随后就开始了在芯片行业的职业生涯,一直到1992年。
1992年底的某天——两个朋友克里斯和普雷艾姆找到了老黄。他们邀请老黄加入他俩新创建的一个名为英伟达的小公司,并且希望老黄能成为公司的总裁兼CEO——他们很欣赏老黄在技术和公司管理上的水平。
就这样,老黄从AMD离职,成为了英伟达的创始人兼CEO,直到今天。为什么老黄和另外两个朋友要创办英伟达呢?原因很简单。
90年代初,家用电脑刚刚在美国普及没多久,瞄准家用电脑的游戏行业也才刚刚起步。不过,那个时代的电脑游戏功能很差,基本上只能玩一些横轴或者纵轴的简单游戏。局长小时候就曾经在老妈办公室里的286上玩过,画面效果简直不堪入目。
就是瞅准了这个市场空白——老黄他们决定出手解决电脑游戏的画面问题。
第一次图形革命:GPU的诞生
1993年,有一款游戏引爆了全球的电子游戏市场——由约翰·卡马克领衔创作的《Wolfstein3D》(德军总部3D)。这个游戏的牛逼之处就在于,在那个横轴纵轴小游戏占据主流的时代,这个游戏居然搞出了第一人称视角的射击游戏——玩家的视角可以通过移动鼠标而切换。
虽然当时《德军总部3D》的画面只能算是一种欺骗眼睛的“假3D”,但它的火爆和前所未有的娱乐性已经昭示着一个时代的到来:未来游戏的大方向,一定是3D!
但问题是,当时的电脑未必能扛起游戏开发商的美梦。3D游戏的出现,意味着计算机不仅要处理二维的画面,还需要负担起处理三维立体对象的任务。在当时来说,这是一个非常消耗算力的任务。
笼统来说,整个过程分成了五个步骤:顶点处理,图元处理,栅格化、片段处理和像素操作——首先把模型的三维坐标转化成二维的(顶点处理),再把这些零散的坐标点连接成多边形(图元处理),再把一个个多边形变成像素点方便上色(栅格化),然后再给像素点上色从而实现各种色彩光泽(片段处理),最后优化一下,剔除那些我们看不见的地方(比如一个立方体背后看不到的那几个面)。
这就是所谓的“图形流水线”,很多文章在介绍GPU的时候都会提到的“管线”(Pipeline)就是这个东西。
在现实里,这就意味着无数次运算——以90年代电脑的分辨率来看,用一个640X480的显示器全屏玩游戏,屏幕上包含了30万个像素点,按照60fps的帧率,每秒钟需要渲染1800万次。每个像素点又都要经过栅格化、片段处理和像素处理三个步骤,那么为了
一秒钟的画面,我们最少最少也需要5400万条指令。
或者换一种说法,在一秒钟内,计算机需要完成54M条运算指令。而当时的英特尔CPU的主频有多少呢?60MHz,即每秒运算6000万次——如果用当时的CPU来处理3D图形,整个CPU的算力都会被消耗殆尽——由此可见,对当时的电脑来说,3D游戏就是一个“超级算力杀手”。
率先给出解决方案的不是英伟达,而是一个名叫3dfx的公司。他们给出的解决方案非常简单粗暴——既然处理3D对象非常消耗算力,那么我就专门搞一个硬件来帮CPU做这方面的工作吧。
于是,3dfx公司的Voodoo(巫毒)加速卡便登上了历史舞台。1995年11月6日,Voodoo上市发售,瞬间便成为超级爆款,一时间市场占有率高达85%,直到1997年,Voodoo在中国市场上也是一个“一卡难求”的状态。
看到Voodoo的成功,各路人马一拥而上,美国市场上瞬间出现了上百家做显卡的公司。整个行业立刻卷到不行。
老黄他们当时不仅在研发自己的显卡产品,也在研究自己的API(应用程序界面,一种对应显卡专门化的开发工具,可以方便开发人员的工作)。
但好巧不巧,微软此时也推出了自己的开发工具DirectX。
这么一来,老黄他们就很尴尬了,因为微软的超然地位,所以绝大多数厂商必然会选择适配兼容微软的DirectX,而如果老黄他们坚持用自己的开发工具,结果必然是成为孤家寡人。
老黄他们没办法,只能一咬牙一跺脚,投入了微软的怀抱。不久,英伟达就推出了自己的显卡产品——RIVA128。这款产品从性能来说还是不如Voodoo,但这款产品却让老黄他们赌上了自己的全部。
最终凭借着精准的市场定位,RIVA128依旧成功了。
虽然RIVA128性能不如Voodoo,但是RIVA128好就好在它既可以处理3D,也可以处理2D。更重要的是,Voodoo在当时犯了一个近乎于致命的错误——他们也在死死坚持自己的开发工具GlideAPI,拒绝使用主流的OpenGL和DirectX——结果就是几年之后,随着各路游戏开发商投入了OpenGL和DirectX的怀抱,Voodoo系列彻底落伍。
而RIVA128则不同,RIVA128对OpenGL的兼容做得非常好,在那些不用GlideAPI开发的游戏里的表现吊打Voodoo,获得了玩家的高度认可。
随后,英伟达便时来运转了——接连着两款代号为TNT的产品都像炸药一样让整个游戏行业震动了起来。而与此同时,3dfx却在一路沉沦,Voodoo3上市的时候,其性能已经完全没办法形成显著的市场优势。
到了1999年,这场关于显卡的淘汰赛终于走到了尽头——英伟达推出了GeForce256——一款从硬件层面上支持T&L(转换与照明)的新产品。
为什么硬件T&L如此重要呢?这就要从游戏画面的进化说起了。
之所以我们觉得早期的游戏画面很假,一是因为建模粗糙,二是因为没有良好的光影效果,三是不能实现全方向的视角变换——从今天的视角来看,《DOOM》和《雷神之锤》时代的游戏,游戏里的角色只能说是“初具人形”,光影效果也只能说是“聊胜于无”,视角也只能是从主角的眼睛往外看。
不是游戏厂商不思进取,而是真的没办法:精致的建模意味着更多的多边形,更好的光影效果意味着需要计算光照,更多的角度意味着计算机可以进行三维空间坐标系的变换——而在当时,这些事情都还是需要用CPU来计算的。
这就是为什么包括Voodoo在内的产品只能叫“加速卡”而不是“显卡”——因为五个步骤里,它们只负责从图元处理或栅格化开始的那么三四个步骤,最开始的顶点变换任务始终都是由CPU来完成的——建模越精致,顶点就越多,CPU的负担就越大。
GeForce256的创新之处就在于它从硬件上接管了CPU的转换和光照计算,彻底解放了CPU。
至此,世界上第一款现代意义上的GPU诞生了。
而此时,英伟达的最大对手、开发了Voodoo卡的3dfx却已经迎来了自己的终局——硬件市场上,Voodoo被英伟达步步紧逼,软件领域,3dfx的GlideAPI又在被OpenGL和DirectX围剿——南北对进,两面夹击,3fdx彻底凉凉,最终于2000年被英伟达以极低的价格收购。
踏着对手的尸体,英伟达奠定了自己在显卡这个硬件品类里的地位,成为了硅谷里一颗冉冉升起的新星。
复盘这段过程,我们会得到一个有意思的结论:如果没有游戏行业的进步,就不会产生强烈的画面需求,没有这种需求,也就不会催生出Voodoo和GeForce256这样的产品,也就不会诞生今天的英伟达。
毕竟,除了游戏行业,你很难发现有哪个行业对图形硬件有如此之高、如此之大的需求。事实上,在《雷神之锤》《DOOM》等游戏出现之前,3D图形处理是电影、设计等行业里的专业问题,需求有限,头部玩家一只手都数得过来,所以也采购不了太多的产品,更何况,电影和设计行业都是“行业生意”,虽然也有硬件上的需求,但是采购回来的显卡都是作为生产资料的,更新迭代的频率比较慢。
《QUAKE》(高清重置版本)
而游戏玩家则不同,显卡在游戏用户的眼中属于消费品,在早期几年就要换一台电脑,长期来看,这就形成了一种对显卡的持续的消费力——众所周知,研发芯片是极其花钱的事情,如果只依靠电影、设计院之类的少量行业客户,那么显卡的定价必须异常高昂才能收回成本,而当游戏行业蓬勃发展之后,整个池子瞬间扩大了无数倍,庞大的游戏玩家和消费电子市场让每一颗包括GPU、CPU在内的芯片价格都大大降低——换句话说,游戏行业成了GPU厂商的最大投资人,促进了芯片的大规模发展。
游戏这股隐形的科技驱动力,在经历了如此多的市场验证后,终于在去年7月中科院发布的《游戏技术——数实融合进程中的技术新种群》报告中被首次官方认证。报告指出:“电子游戏突出的趣味属性掩盖了它的科学属性,所以游戏技术长期为人们所忽视;2020年,游戏技术对芯片产业的科技进步贡献率达到了14.9%”——由此,我们可以看出游戏作为一种产品的特殊属性:它的进步不仅依赖于技术的进步,也能反向促进技术的进步。
“皮衣刀客”和“核弹工厂”
英伟达的成功,除了早期精准的定位外,和老黄卓越的商业头脑也有着很强的关系。
在GeForce256大获成功之后,老黄开始修炼起了自己的独门刀法,为日后成为“硅谷一刀流”的大掌门奠定了基础。
所谓的“老黄刀法”,指的是英伟达神奇的定价策略。简而言之就是“一分价钱一分货”——对产品的性能和价格有着极其精准的掌握,价格布局梯度合理,绝少出现低级显卡性能反超高级显卡的事情——更直接点说吧,想花素菜的钱吃荤菜?门儿都没有。
相比起隔壁AMD产品经常通过技术手段让低端显卡超越高端显卡的事情,英伟达对产品价格的把控绝对是大师级的。
实际上,从之前我们提到的TNT开始,老黄的刀法便逐渐显露了出来。当年的TNT2推出的时候,一次性就出了4个版本:TNT2、TNT2M64、TNT2Pro、TNTUltra……预算不足的朋友可以直接选择TNT2解决需求,土豪的朋友可以直接选择TNTUltra来纵享丝滑。
发展到现在,老黄的“刀法”越来越神了,两款不同显卡之间的价格差异居然已经到了只有100-200元的差距,几乎是从字面意义上做到了“一分价钱一分货”。
为什么要这样定价呢?一是两款不同定位的显卡之间绝对不会出现互相争抢用户的情况,每一个细分的用户群体都能找到自己适合的产品。二是能够更好地吸引消费者购买高档显卡——用两块不同的英伟达显卡,玩同样设置的同一款游戏,价位每下降一个档次,游戏帧率就会差一小截,低端卡超频到冒烟也打不过正常发挥的高端卡。
但偏偏两款价格就只差200块,所以消费者会下意识觉得——反正几千块钱都要花出去了,也不在乎这么200块钱了。
再来,我们说一说英伟达被称为“核弹工厂”的故事。
这里,我们需要了解一句业内的谚语——“What Andy gives, Bill takes aways”——Andy是英特尔CEO安迪·格鲁夫,Bill是微软的比尔·盖茨。这句谚语的意思是,硬件性能的大幅度提升所带来的广阔空间,很快就会被软件的发展消耗殆尽。早期游刃有余的表现到了后期则会显得捉襟见肘。事实上,很多大型电脑游戏,碍于硬件水平,玩家都不得不牺牲一定的画质,以保证游戏运行流畅。
这种现象在英伟达早期的产品上也有体现,早年的GTX590显卡因为超频使用导致电路不堪重负、发热严重,隔着机箱都能感受到灼热的温度,甚至出现过直接烧毁的事故。
于是乎,英伟达的产品被安上了一个“战术核弹”的称号。在一些网友的推动下,这个称呼流传的越来越广,甚至早年间被人编排进了百度百科。
然后,国内某电视台的节目主持人不幸中招,把网友恶搞的内容当真,在节目中一本正经地胡说八道——“一发690战术核显卡就能摧毁一个航母战斗群”。
出现这些故事的根本原因还是硬件没有跟上软件的发展——根据摩尔定律,集成电路上的晶体管数量每隔18个月就会翻倍。在这个18个月里,硬件不会再继续发展,但软件却在不断进步——说句夸张的话“想要榨干硬件的性能,有时候只需要一行代码。”
最典型的例子就是2007年的“显卡危机”——2007年发售的游戏《孤岛危机》的画面设定过于优秀,游戏建模极其精致,导致GPU需要渲染的多边形数量突破天际。更何况游戏的开发商Crytek当时为了炫技,大量使用了超越当时硬件水平的游戏引擎和显示技术——别说是2007年的显卡,即便是用2017年的显卡来运行这款游戏也是捉襟见肘。
由此可见,相比起硬件(芯片)的进步,软件(游戏)的进步要容易得多。
因此,GPU厂商必须要以更高的速度来发展自己的产品才能勉强跟上游戏的步伐, GPU的发展应该比一般的芯片发展更快。实际上,英伟达GPU的更新频率是6个月——老黄一直想让自己的“黄氏定律”去取代“摩尔定律”。
从财务数据上,我们也能看出为什么GPU厂商在新品研发上如此激进:英伟达2022财年一季度总共的收入80多亿美元,里面有35亿美元都是游戏显卡业务贡献的。而英伟达的对家AMD的情况也差不多,2022年三季度56亿美元的收入里有16亿都来自游戏业务——对GPU厂商来说,如果不能及时推出新产品跟上新游戏的步伐,等待他们的就是收入暴跌、被淘汰出局的悲惨结果。
第二次图形革命:光追技术
在我看来,软件的快速发展倒逼着硬件升级的逻辑其实一直都是存在——逼着人们研制出加速卡和GPU的,不正是三十年前风靡一时的《DOOM》和《雷神之锤》么?
而今天硬件跟不上软件的显著案例,就是“光线追踪技术”(后简称“光追技术”)。
之前我们已经讲过了,从1993年到今天,传统的3D图形渲染技术基本都遵循着经典的5个步骤,整个的一套思路就是将3D模型先转成多边形的面,然后再把面变成像素点,然后给每个像素点上色。
在今日这个算力大爆炸的时代,栅格化的这套模式对于实时生成图像非常有效,有了主流显卡的加持,即便是4K画质的游戏跑个60fps一点问题都没有。
唯一的不足在于图像上的颜色和光影效果仍然距离真实差了一点——举例来说,在栅格化模式下,游戏里的水(水坑、湖泊)虽然也有逼真的效果,但实际上这些水的颜色是变成像素点后另外上色的,并不会像真实的水面一样反射旁边的景物。
微信扫码关注该文公众号作者