芯片生态的竞争逻辑

今天抽空写个知乎文章,聊一聊AI芯片的生态问题。这个话题很大,涉及面非常宽泛,而且不是纯技术问题,相关的争议也同样非常多。和我过去写的文章一样,我的观点一般也比较激进,各位看官请酌情食用。万字长文预警!!!这个话题非常大,但实在不想拆成多篇了,也就一口气讲完了。“生态”本身就是个很宽泛的词,生态本身的定义很容易陷入文字游戏的范畴。我今天更多从一些公认的标的物出发去讨论生态竞争的底层逻辑。例如深度学习框架PyTorch、算子编程CUDA、系统层编程语言C/C++、算法应用层编程语言Python、甚至包括C/C++为主的项目的构建系统cmake等,芯片侧标配也是NVidia GPU、Intel的x86服务器、GPU之间通信的NVLink、CPU和GPU之间的PCIe。这些基本都是公认的拥有一定生态统治力的软件、硬件、协议,这些组件组合到一起,共同形成了整套行业内最标准化的体系。这套体系实际上是自计算机诞生以来持续迭代演进至今的一套事实标准组成的体系,其中很多组件都具有历史的厚重感。整个体系不属于任何一个组织,是全行业多年竞争博弈后的结果,但同时,博弈中的胜者也都拥有整个体系中某一生态位的话语权。整个体系又大大小小的各种生态位构成,生态位之间相互依赖,每个生态位上的组件既是其他生态位的应用,需要满足相应生态位的规则,又给其他生态位搭建平台,可以制定相应的游戏规则。生态位的话语权并不取决于谁是谁的平台,而取决于需求,例如NVidia的GPU名义上仍然是Intel定义的“中央”处理器+各种PCIe“从属”设备游戏规则下的“从属”设备,但今天在AI的需求暴涨的情况下,NVidia在这一块的解决方案形态的定义上有着远超Intel的话语权。PyTorch虽然是基于C++和Python构建的深度学习框架,但C++和Python语言本身的演进也很难对深度学习领域有多强的话语权。当然这种话语权也并不意味着可以为所欲为,需求本身也限定了各个掌握了话语权的玩家可以折腾的边界。Intel虽然在传统云、虚拟化、处理器安全、包括PCIe、CXL的演进上拥有充分的折腾自由度,但在AI领域基本没什么号召力。同样,NVidia的折腾一定要能解决目前体系在AI领域的各类瓶颈问题,渐进式地讲整个体系逐渐改造成一个更加适用于AI需求的整体解决方案。今天有很多人说NVidia不只是一家芯片公司,更是一家软件公司,是一家系统级解决方案公司,NVidia也正在打造各行各业的整体解决方案。这些都是非常客观的评价,NVidia事实上也确实不断围绕GPU产品打造越来越多行业的软件解决方案,而且在很多垂直行业都做到了老大的地位。但这并不意味着整体解决方案就是芯片竞争的有效途径。解决方案式的思维是目前在芯片领域竞争最常见的坑。实际上解决方案式的产品模式本身就是已经取得生态统治力的玩家收割各行各业的手段,是构建了生态统治力之后的果,而不是他们取得竞争力的因。今天有无数公司把端到端解决方案当作取得竞争力的方法论,但NVidia驾驭的整体解决方案是上述事实标准体系,而其他玩家自己从芯片到软件全栈打造解决方案,并期望通过软硬件整体解决方案的竞争力来构建自己的生态,属实搞错了因果。事实标准体系实际上需要极强的亲和性,NVidia的CUDA采用C/C++语言扩展的形式构建,并且整体设计对C/C++的编译、链接、构建、调试等体系具有更好的亲和性,例如形式上兼容elf格式的object文件,兼容C/C++的整个函数调用和符号体系,最大化减少对用户项目的侵入性。这样在一个复杂的C/C++项目中,只有和GPU直接相关的代码用nvcc编译器编译,其他代码的编译以及整个项目的链接和构建都原来用啥还用啥。这种对C/C++的亲和性实际上对于切入事实标准体系是非常重要的。而今天CUDA已然成为事实标准体系中的一部分,新的玩家入场,就不止要考虑C/C++的亲和性,也一样要考虑对CUDA的亲和性。当然与哪些东西亲和取决于要从整个体系的大大小小生态位的什么位置切入,NVidia设计CUDA时,深度学习还没有起飞,C/C++也是高性能计算非常主流的平台,选择从C/C++切入自然是当时最优选择。今天C/C++仍然是最优选择之一,不过深度学习在应用层也带飞了Python,与Python亲和也是今天一种可能的选择,但在整体设计上就需要考虑更多与Python及其周边生态的亲和性。像TVM虽然选择了Python库的形式,但整体上采用了Python写编译和优化流程这种坑爹形式,自然跟Python亲和性完全扯不上边。这里面没有什么标准答案,成败全在细节之中,需要对周边生态的亲和性有极强的感知和理解。即使像TVM这种纯软件背景团队的作品甚至TensorFlow这种出自Google这种顶级软件公司的作品,也因为缺乏这方面意识而在生态上各种碰壁。今天有无数微架构背景的架构师把编译器、软件框架当作万金油,只着眼于最终的业务,最终做出的产品自然也和生态亲和性相去甚远。这背后的细节把控其实无论软件背景还是芯片背景都没有孰优孰劣,能同时清楚所有边界上生态位的设计理念才是最重要的。在今天AI领域的软件生态已然包含CUDA、PyTorch等组件构建的庞大体系,整个亲和性的设计就变得愈发困难,于是很多公司就走上了端到端整体解决方案式的邪路。芯片的算子编程语言做不好亲和性,就把上面各种可能用到算子编程语言的图编译、深度学习框架、推理引擎、甚至具体业务全都做了,以期望减少算子编程语言亲和性的问题。但同时带来的也有上层这些框架、引擎与周边生态的亲和性。最后等于是为了解决一个亲和性问题创造了无数个亲和性问题,只是在不断redirect问题。除了软件栈之外,其他方面类似的踩坑简直不要太常见,芯片搞不好就包成整机,整机搞不好就包成云。最后边界越搞越大,周边与之交互的标准化生态位越搞越多,亲和性问题基本就爆炸到无法解决了。最后实际上是游离于标准化体系之外的独立体系。表面看起来和NVidia一样在打造整体软硬件解决方案,但NVidia是驾驭着事实标准体系,而你如果只是驾驭着一套游离于标准化体系之外的私有解决方案,和事实标准体系竞争无疑是蚍蜉撼树。当然了,凡事都有例外,这种游离于标准化体系之外的解决方案在某些特定的业务下也是一种捷径。极端一点的比如像矿机,因为需求足够单一,而且市场规模巨大,这时候抛开现有体系整个做一套独立的体系倒也是可以分一杯羹。但无论如何,NVidia驾驭着事实标准体系竞争力也是非常强悍的,并且也在矿潮时狠狠大赚了一笔。对于矿老板而言,矿难了矿卡也就是电子垃圾了,NVidia显卡还能转手翻新一下卖给游戏佬和AI市场。其他市场,比如安防摄像头、车载自动驾驶芯片等等,相比矿机市场肯定差不少,但好在需求还没分化得特别严重,也有脱离体系分一杯羹的空间。到云端数据中心就别想了,从计算机发明至今多少巨头共建的体系,业务需求变化极快。不过这种特定市场分一杯羹虽然有捷径,也同样没法建立真正意义上的生态统治力。今天你可以走捷径拿到一定市场,明天别人也可以走捷径把你的市场拿走。今天客户可以克服生态的惯性付出迁移成本迁到你的自建体系上,明天也一样可以迁到其他自建体系或者标准化体系上,走捷径实际上也意味着和生态带来的统治力和护城河无缘。解决方案层面真实有效的竞争是争夺标准化体系内的话语权。这套体系里的每一个手握方向盘、掌控着某一块生态位的玩家都借助自己的生态位根据地,试图按照符合自己利益的方式渐进式改造整个标准化体系,同时给竞争对手使绊子。比如Intel过去卡着PCIe带宽的升级速度,让NVidia的GPU始终存在各种瓶颈,包括今天Intel推出CXL作出一定的让利,希望团结更多玩家一起打NVidia。这里推荐夏core之前一篇文章讲了很多这背后的逻辑:Dio-晶:数据中心的暗战但这些都是已经成功上车,手握方向盘的玩家之间的事情,没有上车的玩家连参与这个层面竞争的资格都没有,打造自建的整体解决方案只是营造了一种自己在车上的虚幻感。其实NVidia本身也是生态竞争的极佳案例,但学习NVidia不能光看人家今天大口吃肉就有样学样,更重要的反而是过去30年里,NVidia怎么从车下的nobody成功上车,并且拿到了体系里面一个足够大生态位的方向盘。这个尺度应该拉长到30年这个尺度去看NVidia如何在生态竞争的残酷逻辑里实现了上车掌握方向盘的壮举。生态竞争的逻辑无比残酷,事实标准往往会给大家一种错觉,就是计算机系统似乎就应该是这样的,过于自然而然了,从而使很多人低估了生态竞争的残酷性,认为老黄只是有超出常人的直觉和坚持赌对了赛道。实际上建立赛道本身就是壮举,只不过建立成功了,让人觉得似乎本来就应该存在这样的赛道。放到今天,我们会觉得计算机系统里自然而然就需要一块独立显卡,因为CPU的集成显卡性能太差了,只能满足中低端需求。但放到NVidia刚成立的那个年代,这件事情可不这么显然。NVidia当时作为一个nobody,实际上需要竞争的并不是已经存在的几百家显卡公司,而是当时整个标准化体系的王牌驾驶员Intel。Intel作为车上的驾驶员,掌握着制订游戏规则的权力,而Intel制订的游戏规则就是它自己的产品CPU作为“中央”处理器,通过PCIe扩展的形式,让围绕CPU的整个计算机系统变得非常具有可扩展性,可以围绕CPU打造各行各业的解决方案。而这套游戏规则的残酷之处在于,一旦一种PCIe设备的需求变得稳定,Intel就在CPU里增加一些专用指令,于是这种PCIe设备就从历史长河中抹去了,这种方式消失的各类PCIe扩展卡不计其数,显卡在这套游戏规则下也并不例外。生态竞争的残酷实际上是运动员和裁判的竞争。任何一种新兴需求都有潜力催生一些新的生态位,但游戏规则的定制者会建立一套让自己立于不败之地的规则。生态竞争需要台下的nobody构造一个在这样一个体系内打造并守住独立生态位的战略。这个说实话,没有可复制的路径,不同时间节点下标准化体系的形态是完全不一致的,不同的需求和生态位对生态亲和性的要求,包括可以借力的点也是完全不一致的。如果没有老黄对于这场竞争深刻的洞察力,以及相应的战略,显卡也一样会消失在历史的长河中。老黄当时意识到这个问题后,提出了Intel的摩尔定律是十八个月翻一番,NVidia要做到六个月翻一番。用更快的性能提升曲线快速拉高需求,让Intel的集显变成落后的产品。于是NVidia把显卡越做越大,功耗越做越高,性能拉升的幅度也远超Intel,从而让游戏画质提升飞快,导致Intel的集显疲于去追NVidia的节奏,面积和功耗各方面都承受巨大的压力。最终,独立显卡在Intel的游戏规则下成为了事实标准,NVidia也卡住了游戏卡这个不大不小的生态位。但老黄这套竞争逻辑,其实没有直接借鉴的可能性,今天显卡的生态位早成为事实标准中的一环。我们即使学会了怎么在Intel的规则下打Intel也没有什么意义了,因为时过境迁,今天制订规则的变成了NVidia,实际上每个屠龙少年都会成为新的恶龙,他们的成功也同时堵死了对应生态位的后来者。今天要争取的是AI这个需求。老黄这套打法背后的思想,才是真正值得借鉴的,但如何因地制宜在现如今的情形下用好,也是极具挑战性的。AI芯片这个形态不是既成事实,而是需要靠AI芯片这个赛道的“老黄”去争取这个赛道的独立性的,否则NVidia的GPGPU就会把AI芯片这个赛道打成昙花一现的形态,而GPGPU会生态位也会继续扩大到AI的整个领域。过去十年,几乎没有人把NVidia的GPGPU衬托成AI需求下的落后产品,大家甚至在做产品规划的时候,也是对标着自己产品上市的时间点,去预估NVidia的产品规格。本质上是沿着和老黄一样的曲线去走,自然也不可能把老黄的产品搞成落后的产品,也更不可能争取到独立的生态位了。实际上大家产品迭代的曲线甚至比不过NVidia,在16年那个时间节点宣传的都是比NVidia快十倍,到今天这个时间点宣传的也仅仅是对标了。像TPU这种产品,其性能增长曲线甚至不如NVidia。这种战略意识的缺失本身就是致命的。诚然,让芯片性能提升速度

Mar 7, 2024 - 20:00
 0  81

今天抽空写个知乎文章,聊一聊AI芯片的生态问题。这个话题很大,涉及面非常宽泛,而且不是纯技术问题,相关的争议也同样非常多。和我过去写的文章一样,我的观点一般也比较激进,各位看官请酌情食用。

万字长文预警!!!这个话题非常大,但实在不想拆成多篇了,也就一口气讲完了。

“生态”本身就是个很宽泛的词,生态本身的定义很容易陷入文字游戏的范畴。我今天更多从一些公认的标的物出发去讨论生态竞争的底层逻辑。例如深度学习框架PyTorch、算子编程CUDA、系统层编程语言C/C++、算法应用层编程语言Python、甚至包括C/C++为主的项目的构建系统cmake等,芯片侧标配也是NVidia GPU、Intel的x86服务器、GPU之间通信的NVLink、CPU和GPU之间的PCIe。这些基本都是公认的拥有一定生态统治力的软件、硬件、协议,这些组件组合到一起,共同形成了整套行业内最标准化的体系。

这套体系实际上是自计算机诞生以来持续迭代演进至今的一套事实标准组成的体系,其中很多组件都具有历史的厚重感。整个体系不属于任何一个组织,是全行业多年竞争博弈后的结果,但同时,博弈中的胜者也都拥有整个体系中某一生态位的话语权。整个体系又大大小小的各种生态位构成,生态位之间相互依赖,每个生态位上的组件既是其他生态位的应用,需要满足相应生态位的规则,又给其他生态位搭建平台,可以制定相应的游戏规则。

生态位的话语权并不取决于谁是谁的平台,而取决于需求,例如NVidia的GPU名义上仍然是Intel定义的“中央”处理器+各种PCIe“从属”设备游戏规则下的“从属”设备,但今天在AI的需求暴涨的情况下,NVidia在这一块的解决方案形态的定义上有着远超Intel的话语权。PyTorch虽然是基于C++和Python构建的深度学习框架,但C++和Python语言本身的演进也很难对深度学习领域有多强的话语权。

当然这种话语权也并不意味着可以为所欲为,需求本身也限定了各个掌握了话语权的玩家可以折腾的边界。Intel虽然在传统云、虚拟化、处理器安全、包括PCIe、CXL的演进上拥有充分的折腾自由度,但在AI领域基本没什么号召力。同样,NVidia的折腾一定要能解决目前体系在AI领域的各类瓶颈问题,渐进式地讲整个体系逐渐改造成一个更加适用于AI需求的整体解决方案。

今天有很多人说NVidia不只是一家芯片公司,更是一家软件公司,是一家系统级解决方案公司,NVidia也正在打造各行各业的整体解决方案。这些都是非常客观的评价,NVidia事实上也确实不断围绕GPU产品打造越来越多行业的软件解决方案,而且在很多垂直行业都做到了老大的地位。但这并不意味着整体解决方案就是芯片竞争的有效途径。

解决方案式的思维是目前在芯片领域竞争最常见的坑。实际上解决方案式的产品模式本身就是已经取得生态统治力的玩家收割各行各业的手段,是构建了生态统治力之后的果,而不是他们取得竞争力的因。今天有无数公司把端到端解决方案当作取得竞争力的方法论,但NVidia驾驭的整体解决方案是上述事实标准体系,而其他玩家自己从芯片到软件全栈打造解决方案,并期望通过软硬件整体解决方案的竞争力来构建自己的生态,属实搞错了因果。

事实标准体系实际上需要极强的亲和性,NVidia的CUDA采用C/C++语言扩展的形式构建,并且整体设计对C/C++的编译、链接、构建、调试等体系具有更好的亲和性,例如形式上兼容elf格式的object文件,兼容C/C++的整个函数调用和符号体系,最大化减少对用户项目的侵入性。这样在一个复杂的C/C++项目中,只有和GPU直接相关的代码用nvcc编译器编译,其他代码的编译以及整个项目的链接和构建都原来用啥还用啥。这种对C/C++的亲和性实际上对于切入事实标准体系是非常重要的。

而今天CUDA已然成为事实标准体系中的一部分,新的玩家入场,就不止要考虑C/C++的亲和性,也一样要考虑对CUDA的亲和性。当然与哪些东西亲和取决于要从整个体系的大大小小生态位的什么位置切入,NVidia设计CUDA时,深度学习还没有起飞,C/C++也是高性能计算非常主流的平台,选择从C/C++切入自然是当时最优选择。今天C/C++仍然是最优选择之一,不过深度学习在应用层也带飞了Python,与Python亲和也是今天一种可能的选择,但在整体设计上就需要考虑更多与Python及其周边生态的亲和性。像TVM虽然选择了Python库的形式,但整体上采用了Python写编译和优化流程这种坑爹形式,自然跟Python亲和性完全扯不上边。

这里面没有什么标准答案,成败全在细节之中,需要对周边生态的亲和性有极强的感知和理解。即使像TVM这种纯软件背景团队的作品甚至TensorFlow这种出自Google这种顶级软件公司的作品,也因为缺乏这方面意识而在生态上各种碰壁。今天有无数微架构背景的架构师把编译器、软件框架当作万金油,只着眼于最终的业务,最终做出的产品自然也和生态亲和性相去甚远。这背后的细节把控其实无论软件背景还是芯片背景都没有孰优孰劣,能同时清楚所有边界上生态位的设计理念才是最重要的。

在今天AI领域的软件生态已然包含CUDA、PyTorch等组件构建的庞大体系,整个亲和性的设计就变得愈发困难,于是很多公司就走上了端到端整体解决方案式的邪路。芯片的算子编程语言做不好亲和性,就把上面各种可能用到算子编程语言的图编译、深度学习框架、推理引擎、甚至具体业务全都做了,以期望减少算子编程语言亲和性的问题。但同时带来的也有上层这些框架、引擎与周边生态的亲和性。最后等于是为了解决一个亲和性问题创造了无数个亲和性问题,只是在不断redirect问题。除了软件栈之外,其他方面类似的踩坑简直不要太常见,芯片搞不好就包成整机,整机搞不好就包成云。最后边界越搞越大,周边与之交互的标准化生态位越搞越多,亲和性问题基本就爆炸到无法解决了。最后实际上是游离于标准化体系之外的独立体系。表面看起来和NVidia一样在打造整体软硬件解决方案,但NVidia是驾驭着事实标准体系,而你如果只是驾驭着一套游离于标准化体系之外的私有解决方案,和事实标准体系竞争无疑是蚍蜉撼树。

当然了,凡事都有例外,这种游离于标准化体系之外的解决方案在某些特定的业务下也是一种捷径。极端一点的比如像矿机,因为需求足够单一,而且市场规模巨大,这时候抛开现有体系整个做一套独立的体系倒也是可以分一杯羹。但无论如何,NVidia驾驭着事实标准体系竞争力也是非常强悍的,并且也在矿潮时狠狠大赚了一笔。对于矿老板而言,矿难了矿卡也就是电子垃圾了,NVidia显卡还能转手翻新一下卖给游戏佬和AI市场。其他市场,比如安防摄像头、车载自动驾驶芯片等等,相比矿机市场肯定差不少,但好在需求还没分化得特别严重,也有脱离体系分一杯羹的空间。到云端数据中心就别想了,从计算机发明至今多少巨头共建的体系,业务需求变化极快。

不过这种特定市场分一杯羹虽然有捷径,也同样没法建立真正意义上的生态统治力。今天你可以走捷径拿到一定市场,明天别人也可以走捷径把你的市场拿走。今天客户可以克服生态的惯性付出迁移成本迁到你的自建体系上,明天也一样可以迁到其他自建体系或者标准化体系上,走捷径实际上也意味着和生态带来的统治力和护城河无缘。

解决方案层面真实有效的竞争是争夺标准化体系内的话语权。这套体系里的每一个手握方向盘、掌控着某一块生态位的玩家都借助自己的生态位根据地,试图按照符合自己利益的方式渐进式改造整个标准化体系,同时给竞争对手使绊子。比如Intel过去卡着PCIe带宽的升级速度,让NVidia的GPU始终存在各种瓶颈,包括今天Intel推出CXL作出一定的让利,希望团结更多玩家一起打NVidia。这里推荐夏core之前一篇文章讲了很多这背后的逻辑:Dio-晶:数据中心的暗战

但这些都是已经成功上车,手握方向盘的玩家之间的事情,没有上车的玩家连参与这个层面竞争的资格都没有,打造自建的整体解决方案只是营造了一种自己在车上的虚幻感。

其实NVidia本身也是生态竞争的极佳案例,但学习NVidia不能光看人家今天大口吃肉就有样学样,更重要的反而是过去30年里,NVidia怎么从车下的nobody成功上车,并且拿到了体系里面一个足够大生态位的方向盘。这个尺度应该拉长到30年这个尺度去看NVidia如何在生态竞争的残酷逻辑里实现了上车掌握方向盘的壮举。

生态竞争的逻辑无比残酷,事实标准往往会给大家一种错觉,就是计算机系统似乎就应该是这样的,过于自然而然了,从而使很多人低估了生态竞争的残酷性,认为老黄只是有超出常人的直觉和坚持赌对了赛道。实际上建立赛道本身就是壮举,只不过建立成功了,让人觉得似乎本来就应该存在这样的赛道。

放到今天,我们会觉得计算机系统里自然而然就需要一块独立显卡,因为CPU的集成显卡性能太差了,只能满足中低端需求。但放到NVidia刚成立的那个年代,这件事情可不这么显然。NVidia当时作为一个nobody,实际上需要竞争的并不是已经存在的几百家显卡公司,而是当时整个标准化体系的王牌驾驶员Intel。

Intel作为车上的驾驶员,掌握着制订游戏规则的权力,而Intel制订的游戏规则就是它自己的产品CPU作为“中央”处理器,通过PCIe扩展的形式,让围绕CPU的整个计算机系统变得非常具有可扩展性,可以围绕CPU打造各行各业的解决方案。而这套游戏规则的残酷之处在于,一旦一种PCIe设备的需求变得稳定,Intel就在CPU里增加一些专用指令,于是这种PCIe设备就从历史长河中抹去了,这种方式消失的各类PCIe扩展卡不计其数,显卡在这套游戏规则下也并不例外。

生态竞争的残酷实际上是运动员和裁判的竞争。任何一种新兴需求都有潜力催生一些新的生态位,但游戏规则的定制者会建立一套让自己立于不败之地的规则。生态竞争需要台下的nobody构造一个在这样一个体系内打造并守住独立生态位的战略。这个说实话,没有可复制的路径,不同时间节点下标准化体系的形态是完全不一致的,不同的需求和生态位对生态亲和性的要求,包括可以借力的点也是完全不一致的。

如果没有老黄对于这场竞争深刻的洞察力,以及相应的战略,显卡也一样会消失在历史的长河中。老黄当时意识到这个问题后,提出了Intel的摩尔定律是十八个月翻一番,NVidia要做到六个月翻一番。用更快的性能提升曲线快速拉高需求,让Intel的集显变成落后的产品。于是NVidia把显卡越做越大,功耗越做越高,性能拉升的幅度也远超Intel,从而让游戏画质提升飞快,导致Intel的集显疲于去追NVidia的节奏,面积和功耗各方面都承受巨大的压力。最终,独立显卡在Intel的游戏规则下成为了事实标准,NVidia也卡住了游戏卡这个不大不小的生态位。

但老黄这套竞争逻辑,其实没有直接借鉴的可能性,今天显卡的生态位早成为事实标准中的一环。我们即使学会了怎么在Intel的规则下打Intel也没有什么意义了,因为时过境迁,今天制订规则的变成了NVidia,实际上每个屠龙少年都会成为新的恶龙,他们的成功也同时堵死了对应生态位的后来者。今天要争取的是AI这个需求。老黄这套打法背后的思想,才是真正值得借鉴的,但如何因地制宜在现如今的情形下用好,也是极具挑战性的。

AI芯片这个形态不是既成事实,而是需要靠AI芯片这个赛道的“老黄”去争取这个赛道的独立性的,否则NVidia的GPGPU就会把AI芯片这个赛道打成昙花一现的形态,而GPGPU会生态位也会继续扩大到AI的整个领域。过去十年,几乎没有人把NVidia的GPGPU衬托成AI需求下的落后产品,大家甚至在做产品规划的时候,也是对标着自己产品上市的时间点,去预估NVidia的产品规格。本质上是沿着和老黄一样的曲线去走,自然也不可能把老黄的产品搞成落后的产品,也更不可能争取到独立的生态位了。实际上大家产品迭代的曲线甚至比不过NVidia,在16年那个时间节点宣传的都是比NVidia快十倍,到今天这个时间点宣传的也仅仅是对标了。像TPU这种产品,其性能增长曲线甚至不如NVidia。

这种战略意识的缺失本身就是致命的。诚然,让芯片性能提升速度超过NVidia也极具挑战性,这不仅仅是某一代产品比它高个多少百分比的性能,也不是每一代都比NVidia高个多少百分比的性能。而是NVidia基本2年一代产品,性能提升3~5倍,挑战者如果能每代相比自己上一代提升10~20倍,和NVidia的性能优势越拉越大。这才是NVidia当年挑战Intel时所作的壮举,这对于芯片设计本身也极具挑战,但当年NVidia也是在摩尔定律演进的半导体工艺上走出了黄氏定律增长的GPU性能。

生态竞争最难的地方也在于没有可复制的路径。每一个成功从运动员翻身成为裁判的玩家,本质上也都成功建立了新的游戏规则,堵死了后来者竞争这个新生态位的机会。换句话讲,每一个翻身的案例都是在特定历史时期,特定需求下,设计一套超凡的战略,并且配合超凡的战术执行才完成的壮举。这方面的微操在今天实际上没有任何现实意义。

而老黄不仅完成了这样的壮举,还完成了两次。NVidia成立的最初十年,成功保住了独立显卡这个不大不小的生态位,也成功上市。而Intel虽然没能按死独立显卡的生态位,但倒也不太动摇Intel的王牌驾驶员地位,随着互联网的兴起,Intel在数据中心大把大把捞钱。要和Intel在数据中心领域竞争,最直接的办法似乎是做一款更有竞争力的CPU,但这件事AMD和ARM做了好多年,一直都翻不起巨大的浪花。

生态竞争最有效的路线是生态位的竞争。实际上同一个生态位内的竞争只存在两种可能性:一种是生态位建立的初期,新兴的需求催生了新的生态位,但这个生态位的赢家还没出现时,无数玩家会下场去竞争这个生态位。但最终往往会决胜出一两家,一旦稳定下来之后基本是没有什么机会的。另外一种就是神仙打架了,整个标准化体系内有无数大大小小的生态位,每个生态位也会和周边的生态位有千丝万缕的联系。一个拥有更大生态位的裁判可以借着生态位的影响力去侵入其他稍弱一些的生态位,扩张自己的地盘,比如今天ARM联合苹果和NVidia去侵蚀x86的生态位。但这两条路实际上都不适合今天我们这些nobody。

实际上后面这种生态位都不适合以小博大,NVidia上市之后所掌握的独立显卡的生态位相比Intel的x86生态位还是小到可以忽略不计的。想以小博大根本没有可能性,甚至到16年前后NVidia已经如日中天时,想把NVLink扩展到CPU上替换PCIe都没能成功,只留下IBM的power处理器在风中凌乱。当然,NVidia今天做ARM CPU也是持续不断想侵蚀Intel最后的阵地,但这个过程以今天NVidia的话语权仍然不是一件容易的事情,放到当年只有独立显卡的生态位时更是不可能。而nobody做同一个生态位内的竞争就更是无稽之谈了,但今天仍然有无数玩家前赴后继要和已有的生态位上做差异化竞争。

其实NVidia的第二段壮举向我们展示了另外一种更加有效的生态竞争方式。NVidia并不是靠差异化的CPU去和Intel竞争的,而是靠把GPGPU的生态位在数据中心的价值占比越做越大实现的。这个过程实际上是不同生态位随着需求变化的此消彼长,而不是同一个生态位内部暴烈地替换。这种此消彼长就意味着,在整个更替的全过程,两种生态是高度亲和共存的,而且在很长一段时间内,原有生态位的体量会大得多。所以即使今天一台服务器内90%以上的价值是NVidia的产品,但服务器的常见形态仍然是2个“中央”处理器搭配8个“从属设备”GPU。这个形态实际上还是符合Intel的游戏规则,只不过“从属设备”这边的生态位已经远大于“中央”处理器的生态位了,大家买服务器更多是为了买这些“从属设备”,而且也尽量追求用更少的CPU来支持更多的“从属设备”。

实际上今天这种2CPU+8GPU这种看起来自然而然的形态也不是天然就该这样,而是老黄整个布局和执行的结果,Intel在这个过程处处给老黄挖坑,但奈何老黄对生态竞争逻辑的深刻理解以及十几年的布局。这个过程实际上要解决三个层级的问题:

第一个层级是芯片本身要足够好用,开发效率要足够高。实际上今天很多AI芯片的开发效率是远低于NVidia的CUDA+GPGPU的。这个层级也是无数AI芯片玩家至今没能迈过去的坎。

第二个层级是更进一步的要求,芯片不是一代产品,而是一个延续十几年,需要有持续生命力的体系。硬件层面能有延续数十年的持续性能提升空间,而且这个提升的速度要比竞争对手的更快,同时软件层面也不光是开发效率要高,在芯片持续演进的过程中,这种开发效率、兼容性要稳定平滑地延续几十代产品。这个其实是我在几年前写的文章开篇讲的核心逻辑mackler:专用架构与AI软件栈(1),这套方法论的构建也非常困难,而且远比第一个层级更难。

第三个层级就不光是纯技术问题了,毕竟生态是具有巨大惯性的,一个再好的方案如果游离于目前的主流形态太远,也很难克服生态巨大的惯性。同时,还需要足够好的需求来催化,因为生态位是由需求产生的。

今天的AI芯片大多连第一个层级都还没迈过去,老黄也用好几年时间完成了GPU到GPGPU的改造,同时也建立了CUDA相关的体系,迈过了前两个台阶,同时也为第三个阶段的亲和性做了极致的设计,就像我们最开始讲的,一方面保持对C/C++这套体系的亲和性,另一方面减少对不相关部分的侵入性。

但第三个阶段不光是技术问题,老黄的这套体系也需要需求的东风吹起来,在那个阶段,老黄也很难预料什么样的需求会爆发,只能顶着股价下滑的压力等,同时投资各种潜在的需求。终于,等来了2012年AlexNet引爆的深度学习。

整个这个阶段,老黄给我们演示了,和Intel的CPU竞争的最佳方式不是做另一种形态的CPU,而是在Intel的游戏规则下做大PCIe设备在加速计算领域的生态位。让这个生态位从CPU+PCIe扩展的体系下一个小的生态位逐渐增长为一个足够大的生态位,甚至超过CPU的生态位,进而吞噬Intel在数据中心的市场份额,甚至到今天可以拉着ARM试图把Intel从数据中心的AI解决方案中抹掉。

其实这个事情对我们今天去搞AI芯片的生态是有很大借鉴意义的,当然这种借鉴不是战术层面的微操,生态竞争的战术战略都很难复制,毕竟今天要应对的是NVidia以及CUDA的软件体系。但从更宏观的层面来讲,和NVidia CUDA竞争的不一定是AMD ROCm,这个本质上还是同一个生态位内部的竞争,AMD错过了2012年那个前后的时间窗口后其实就没太多直接从这个生态内部竞争的机会了。

实际上,CUDA之上还有深度学习框架的生态位,当然深度学习框架在12年前后开始形成需求,到16年前后也逐渐开始收敛,到今天事实上已经被PyTorch把持,今天这个时间点继续在深度学习框架上卷机会也不多。深度学习框架同样不是重点,深度学习框架之上仍然有更多生态位机会。这里面任何一层抓住了机会,如果在未来这一层的重要性变得更高了,其他层的重要性相对下滑,这里面实际上是存在非常多机会的。

不过挑战也在魔鬼般的细节里,例如今天的深度学习框架实际上更多解决的是计算图的表示和在不同设备上计算的问题,方便算法用户能够自由探索模型结构。对于算子编写这一层并没有真正意义上隔离,只是通过内置上千个算子的方式满足了高频需求。因此PyTorch这一层实际上没有办法真正意义上隔离掉CUDA的生态位,类似TensorFlow希望隔离GPU和TPU的差异这种尝试就走得异常痛苦。当然了,Google的TensorFlow还是在深度学习框架领域占据过很长一段时间上风的,在这个生态位是,Google至少是有方向盘的,其他没有方向盘的肯定就别想通过这种方式借力了。

今天要看生态的机会,从软件角度也更应当着眼于PyTorch之上的生态位机会,来构思一整套打法,比如今天的大模型实际上也催生了PyTorch之上的大模型训练/推理框架的生态位机会,而且目前实际上正处于生态位建设的早期,大量玩家在这个领域造轮子争夺这一块的生态位。

当然了,这种软件生态位的机会怎么反哺芯片生态位,其实老黄在12年之后的整个动作也可以体会到NVidia对这一块的把控,机会来了怎么把控好也非常关键。

生态的卡位靠的是开发者而不是业务。生态卡位最终目的是要让业务“不得不用”,但如果这个组件时直接服务最终业务的,那只能因为单纯的“好用”而用,但任何一个产品都有不好用的地方,很难真正意义上长期绑定,达不到“不得不用”的地步。实际上不得不用需要两层递进关系,也就是说在一个组件之上有大量“好用”的二次开发的组件,用户因为很多二次开发的组件“好用”,进而才能“不得不用”这些组件依赖的组件。这个层级递进越深,这种“不得不用”会越来越强烈。

我们看NVIDIA第三个阶段,借着深度学习的热潮是怎么布局自己的生态位的。他并不去抢深度学习框架的生态位,而是给各个造深度学习框架的开发者提供无微不至的服务,包括异常健全的文档,甚至连debug API这种估计很少有开发者会关注的文档都写得非常详细,也包括给很多开发者送显卡。当然最关键的,还是产品在这个生态位需求下的绝对竞争力。换句话讲,写深度学习框架的核心需求是让海量算法用户能简单获得极高的算力跑深度学习模型,AlexNet也证明了GPU比CPU快太多,因此对于做深度学习框架的开发者,支持GPU的框架显然也比只支持CPU的框架更具有竞争力,这就给了上面无数开发者最基础的动力去支持GPU,再加上事无巨细的文档和无微不至围绕开发者的一整套打法,自然海量开发者涌入CUDA体系,在CUDA之上写了无数的深度学习框架去竞争。上面开发者开发了不同特点的框架,每个最终用户都会其中一些框架的“好用”而加入某一阵营,但也因为所有框架基本都支持CUDA和NVidia的GPU,从而使得用户进入了“不得不用"CUDA和NVidia的GPU的状态。

这实际上做所有解决方案都绕不开的子集的思路,而大多数人做项目都不自觉会陷入做大而全的超集的思路。以NVidia的软件开发能力,在那个阶段去研发一个深度学习框架和TensorFlow、PyTorch包括早期的Caffe、theano竞争是完全没问题的,甚至可以借助软硬件协同的能力比各家的框架做得更有竞争力,甚至借此干掉其他框架。但NVidia实际上没有这么做,NVidia是一种典型的做子集的思路,做一个所有人都绕不开的子集。与之相对的是做一个大而全的超集的思路,这种思路是今天很多项目不自觉就会落入的思路,所有竞争对手有的所有好的特性我们也都支持,我们再做一些自己的特性,这样是一个功能比所有人更全的超集。实际上NVidia在下面看上面所有人卷超集,各个超集都把自己的CUDA纳入其中,间接促成了自己成为所有人绕不开的子集的目的。

而成为很多解决方案的子集,无论每个方案有多少用户觉得好用,每个解决方案都能给NVidia带来足够多“不得不用”CUDA的用户。而每个深度学习框架自己仅仅靠“好用”捆绑用户,那自然也很容易因为“不好用”而被用户抛弃。

这个其实是一个极具生态竞争智慧的打法,今天很多人说NVidia是一家软件公司,有大量软件的人,于是也投海量的软件工程师去打造产品竞争力,最后都落入了大而全的超集思路,实际上跟NVidia这种做子集的思路完全南辕北辙。大家想想以NVidia的软件能力,真的要去抢各种软件层面的生态位,虽说不一定能干掉其他目前主流的产品,但至少分一杯羹完全不在话下。NVidia真正下场干的软件,要么开源让大家随便抄,把自己的产品继续抄成所有人的子集,要么是觉得整个业界实在没在某个场景下用好GPU,不得不下场带一波节奏。

解决方案式的打法是最后的收割阶段。实际上NVidia这几年才算真正开启了收割模式,如果你关注老黄这几年的演进,他会更多提到“重构计算机工作方式”,实际上这是向Intel发起冲锋了,今天的整个计算机系统实际上是围绕CPU定义的,围绕CPU定义了指令集、软件、以及繁荣的软硬件生态,老黄今天终于拿到了整个生态位里面最大的话语权。老黄借着三十年卧薪尝胆打下来的生态地位,开始真正对这个事实标准的体系进行重塑。这种重塑同样不是destructive的,无论有多大的话语权,生态的惯性仍然需要遵从。老黄更多把AI作为切入点,要在今天的计算机系统上支撑一个围绕AI的全新计算机系统,那么在AI领域拥有最大话语权的老黄自然也就可以将底层的经典计算机系统塑造成一个更适用于支撑上层新兴的AI计算机系统的底座。

这种重塑是王者的特权。回到我们开头说的,学习NVidia不能光看老黄这几年吃肉的模样有样学样,这属于生态竞争最基本的逻辑都没搞清楚。我们更需要关注NVidia这三十年的卧薪尝胆,以及整套战略思维,反过来,去考虑今天在NVidia游戏规则下的真正出路,当然这也是今天最难的问题了。其实生态这个事情就是这样,我们今天站在如此自然而然的计算机系统看过去,似乎到了那个时间点自然而然有这样那样的一些机会被今天的王者抓住了,而今天似乎缺乏这样那样的机会。殊不知,今天的王者正是当时那种绝境种塑造了这样那样的机会,把整个计算机系统塑造成了这种形态,也只有这种今天看起来足够自然而然的形态才能顺应生态的逻辑取得竞争的胜利。

万字长文看到这里也是不容易,说了这么多竞争逻辑,今天该怎么做?

今天围绕NVidia建立的标准化体系看起来似乎坚不可摧,CUDA牢牢卡住了算子编程生态位,甚至PyTorch都没法屏蔽,而今天海量软件又都建立在这套体系之上。但需求一直都在变,这种变化实际上也造成了很多生态位的此消彼长,生态位的萎缩并不是那么立竿见影的,CPU的生态位已经萎缩到今天这个当量也丝毫不会让大家觉得x86似乎没影响力了,其实仍然是强大到基本不可动摇。

同样,这些今天看起来牢不可破的生态位实际上也在悄悄发生很多变化。CUDA的生态位最大的时候实际上是2012~2018年,无数的深度学习框架在CUDA的基础上争夺用户,上面这些通过自身的“好用”帮助CUDA实现“不得不用”的东西越多越碎片,CUDA自然就越稳固。

而深度学习框架收敛到TensorFlow和PyTorch之后,实际上CUDA的生态位是一定程度下降的,但问题在于深度学习框架并没有屏蔽算子编程,只不过内置了一个子集消除绝大多数算子编程的需求。所以实际上CUDA的需求实际上是穿透了深度学习框架捅上去了,今天仍然有无数PyTorch之上的领域框架写了大量PyTorch算子集之外的CUDA算子,所以实际上CUDA虽然削弱了一些,但还是极具生命力。这实际上也是很多希望通过PyTorch这一层解决AI芯片软件生态问题屡屡碰壁的主要原因。

而深度学习框架最辉煌的阶段是在2023年以前,深度学习框架是提供了一个构建不同深度学习模型结构的平台,在模型结构探索最活跃的年代自然也是深度学习框架最高光的时刻。而随着Transformer is all you need被大模型进一步锁定,模型结构的探索活跃度实际上是降低的,深度学习框架的生态位重要性实际上开始逐步降低。

今天最活跃的是大模型的框架,大量开发者在PyTorch之上疯狂造轮子,从各个角度解决大模型训练、推理的各种问题。这里面最核心的实际上是显存和带宽的利用,是大模型不同数据如何在这有限的显存和带宽之上调度,并合理地穿插相应的计算。这一块实际上是一个全新生态位的形成阶段,对于大模型infra开发者而言,是生态卡位的时间窗口,对于芯片厂商而言,也是学习CUDA卡位的逻辑最好的时候,当然现在大模型infra层面,需要肯定不是算子编程,学习CUDA卡位的微操肯定死路一条,各种边界条件完全不同,没有可复制的路径。怎么用好这样的机会,全看对上面生态逻辑的理解和细节的把控了。

除了软件生态上的契机,NVidia这么多年构建的护城河实际上也在削弱,我在之前的一篇文章里也讲了大模型对NVidia的巨大冲击(mackler:英伟达的破绽),NVidia构建的护城河是建立在对算力的巨大需求上,利用CUDA在硬件抽象和软件接口位置的精准卡位,卡住了一波又一波DSA芯片冲击算力高地的企图。实际上对NVidia而言最危险的并不是DSA芯片的算力冲得比它高,反正他有生态位话语权,最危险的是芯片最大的需求不再是算力了。那么此时无论是围绕算力建立起来的CUDA护城河还是在DSA这种在算力这个赛道的竞争者都失去了最重要的东西,需求。

NVidia今年实际上过去延续了十几年的产品路线和节奏被彻底打乱了,这个节奏在过去一波又一波AI芯片的攻势下从未动摇过,但今年AMD的MI300X都足以引起老黄巨大的恐慌。实际上并不是AMD有多强,而是NVidia最大的危机来了。今年早些时候,我也因为这样的原因唱衰了DSA(mackler:DSA已死),DSA这种为堆算力而生,带着一系列软件问题的形态,如果在算力需求收缩的背景下,就只剩下软件上的巨大问题了。

当然对于生态竞争来讲,这种混乱和行业洗牌实际上是最大的生态竞争机遇。

NVidia另一个巨大的潜在隐患在于整套游戏规则没有给其他人空间。相比上一代裁判Intel而言,实际上Intel设计的游戏规则是分配了很多蛋糕给行业内其他赛道的,而NVidia这种几乎吃独食的方式,也给它在各个领域树立了无数竞争对手。这种模式在生态稳定的阶段可以拿到超额的利润,同样在危局之下同样也面临全行业甚至客户的敌对。

这种特点减少了像NVidia当年在Intel划出的蛋糕下长出一个独立王国的空间,但也带来了联合全行业上下游构成松散的反NVidia联盟的空间。今天NVidia不仅在GPU领域面临竞争,在网络层面也同样面临诸多竞争。今天的挑战者在这样的游戏规则下有更多的势能去联合其他生态位的竞争者构造一套白盒标准化的方案。实际上今天有太多竞争者陷入了打造全栈对标的陷阱,即跟NVidia比GPU,又跟NVidia拼互联,也做整机,这样实际上很难借力反NVidia联盟的力。相反,能通过一系列技术和产品的布局塑造一套不同生态位都可以切入并受益的体系,也能更好的在这样的体系中获取更多的生态竞争力。

当然了,这些都是今天各种生态竞争上最大的机会,生态竞争始终仍然是一个无比艰难的挑战,历史上成功案例很多,很多有运气和机缘巧合,但多次成功的恐怕也只有老黄做到了。除了对生态竞争底层逻辑的理解,还需要一整套生态竞争的无解阳谋来实现以小博大,更需要技术和产品设计能匹配,这里面每个点都极具挑战性。

来源:知乎 www.zhihu.com
作者:知乎用户(登录查看详情)

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 点击下载

like

dislike

love

funny

angry

sad

wow

李芷晴 https://tszching.uk