英伟达一骑绝尘的奥秘,靠的是400万开发者支持的CUDA“软实力”

文摘   2025-01-01 09:15   重庆  


01

提前拿到剧本的英伟达
  

2023年迄今,凭借GPU芯片在图形计算方面的性能优势,英伟达已然是本次全球AI淘金浪潮中最成功的“卖铲人”,也是各大媒体和社交平台上讨论度最高的一家AI芯片公司。

抛开其目前在算力层高山仰止的优势和惊人利润率不说,如果大概了解英伟达的过往,就会发现它好像没经历过什么行业周期低谷的困扰。

作为上世纪末以独立显卡起家的公司,英伟达先是在主机游戏为主的消费电子行业迅速生长;游戏行业不景气时,能在2012年前后,搭上AI研究需要大规模并行运算的东风;第一轮AI虚火散去后,又成了以太坊和比特币矿工用于“挖矿”的必需品;几乎同时,汽车电气化加速,英伟达车用芯片业务继续补上;甚至还是疫情期间,居家办公电子产品的受益者之一……    

英伟达的市值随着AI进化一路走高

硬件产品性能强劲固然是其一路顺风顺水的重要原因,但做GPU的不止英伟达一家,为什么总是它能领先一步?这就不得不提其构建多年的软件架构“CUDA”(Compute Unified Device Architecture)。

CUDA简单解释,是英伟达于2006年发布的统一计算架构,既是一个并行计算平台,也可以理解为一个编程模型或者编程翻译器,包含一系列的开发工具。CUDA最重要的作用在于,可以将研究人员和开发者等使用的高级计算机语言,转化为GPU硬件能读懂的底层计算机语言,这就又要说回到硬件本身了。

02

低门槛的GPGPU
   

所谓的独立显卡就是独立于处理器的GPU,它有自己的专用内存,不与CPU共享。以我们手中常见的笔记本电脑为例,为什么CPU不够,还需要GPU?

我们能看到的所有画面其实放大看都是由“马赛克”组成的,每一组小马赛克都是由红绿蓝三色组成的像素点,通过不同的颜色和亮度变化,才能组成我们看到的各种画面。

而控制这些变化的关键其实是电压,换句话说,每个像素点的颜色变化都是液晶分子在电压控制下进行旋转和偏转的结果,只要我们能不断调整电压,液晶分子就会有明暗深浅的不同,最终混合出鲜艳的图像画面。

如果把CPU视为下指令的大领导,那GPU就像一个勤勤恳恳的工程师。假设CPU说想要一个喜庆的锦鲤的画面,具体的工作比如锦鲤什么颜色、水面的光影、每一片鱼鳞的颜色过渡等等这种精细的计算工作就是GPU的。GPU会根据指令计算出每个像素点需要的“配方”,即红绿蓝三色的比例和亮度,最后再把配方给显示器,让它按此分配电压。

这个过程听起来简单,但一个负责IT的工程师和一个视觉效果的设计师在沟通过程中会因为专业语言不同,有一定的鸿沟;而工程师和电脑间的沟通,也有鸿沟,所以他们之间有专门的编程语言、编译器。编译器类似翻译,把程序语言翻译成电脑能理解的东西。

在CPU和GPU之间,其实也有理解壁垒,还得有个称职的翻译。针对GPU在图像渲染方面的翻译叫着色器,它把需要绘制的图像和上色步骤翻译给GPU,GPU才能接着计算。当然这些都是原先就写好的程序,不会需要人脑来参与。

都知道GPU现在干的早不止图像渲染的活,但是一以贯之,无论是AI研究者还是自动驾驶程序员,需要GPU来计算其他数据时,也得有能沟通的语言和“翻译员”,让GPU理解研究者意图,进而进行他们想要的计算。

业界当然都希望能降低使用门槛,让不同行业使用者不需要每次都重新学一种语言,只要会最基础的编程语言即可使用GPU完成不同任务,也就是GPGPU(通用图形处理器)概念——而发展这项技术的先驱就是英伟达。   

2006年,英伟达推出了第一款支持通用运算的显卡GeForce 8800 GTX,并在不久后推出了自家第一款GPGPU,名字就叫CUDA。从此以后,原本只是图像渲染用的显卡开始在其他领域大放异彩。

如上所述,CUDA是一种计算平台和编程模型,它提供了一个简单且灵活的编程模型,包括核函数的调用、内存管理、线程同步等功能,使得开发人员能够更轻松地利用GPU的并行计算能力,开发高性能的通用计算应用程序。

常说AI要大算力需求,但是AI在算什么?GPU在其中的角色又是什么?

人工智能范围很广,但我们用到的AI工具,多半属于机器学习或深度学习,其实就是通过特定的数学模型,用已经掌握的资料(海量数据)去预测结果。实际上,它们的本质就是数学运算,只是任务量和复杂程度庞大得超出我们的认知,不仅有一维的向量、二维的矩阵、三维或者更高维度的张量计算都包含其中。

AI运算量变化

CPU每次只能完成一件工作,但GPU有多个逻辑单位,类似于布满流水线的工厂,特别适合AI运算。而CUDA的作用就是给每条产线分配原材料以及工作。   

CUDA要负责CPU和GPU的沟通,还要管理GPU的“生产”。一个好的管理者知道如何合理分配工作,知道某个任务该给哪条产线,通过它的分配才能让每条产线在工作量不变的前提下,让工厂的整体产能硬是比友商高好几倍——这就是CUDA。

既然知道AI有大量的运算任务,那一定会有性质相同的,CUDA就将其分配到一个计算逻辑中,这样只需要调用一个函数算法即可,减少内存的压力。

当然这只是比较浅显的解释,读者需要了解的是,自从CUDA推出,相对封闭的GPU体系被打破,科学计算、数据分析、深度学习、虚拟现实等领域的学生或大牛,都能通过CUDA生态系统完成相关软件的开发,更是成了AI开发者离不开的中转站,也真保了英伟达的“富贵荣华”。

03

高投入高回报
   

CUDA作为英伟达现在在软件生态领域的护城河,刚开始也是投入巨大,创始人的前瞻性支撑了很久。

2007年刚刚推出CUDA时,营业额只有30亿美元的英伟达每年要投入5亿美元去支持GPGPU的研发,还要不断更新和维护,开放给当时美国的大学、科研机构免费试用。虽然后来有了更多软件开发商、硬件制造商和学界的支持,但英伟达在CUDA上还是亏损状态,因为实在没有一个领域对它有大量需求,也就没法落地,相当于拿着锤子一直找不到钉子。   

CUDA架构示意图 图源:CSDN

直到2012年。

那一年,AI研究者发现基于CUDA架构的大规模并行运算芯片Tesla,在人工智能、深度神经网络技术上有着天然的契合性,大大降低了训练神经网络等高算力模型的难度。在算力基础设施领域深耕多年的英伟达,为AI和深度学习提供了专门设计的Tensor Cores,加速矩阵运算,一下子成为AI训练首选。

对任何厂商而言,想要在AI硬件层面挑战英伟达,除了比拼芯片性能,还要抗衡CUDA软件生态。近年来,AMD、英特尔均希望分羹AI服务器芯片市场,持续推出硬件产品的同时,亦分别推出ROCm、one API等平台,尝试抗衡英伟达的CUDA生态。有意思的时,这两家平台均有工具支持将CUDA程序迁移至自家。

在国内,许多GPU厂商都采取了“培育自家软件生态、兼容CUDA”的权宜之计,从而在起步阶段避开英伟达的软件生态壁垒。国内某GPU独角兽企业工作人员表示,现在无论是供应链优势还是软件生态优势,都是国产厂商难以匹敌的。   

“芯片设计和供应链话语权就不说了,目前CUDA有400万开发者,基本垄断了GPU的软件生态。我们当然想做软件生态,但这个生态的建立和发展没有捷径,只有通过大量时间、投入和用户反馈的积累才能做到。”

微信订阅

欢迎通过邮局渠道订阅2025年《电脑报》
邮发代号:77-19
单价:8元,年价:400元
编辑|张毅
审核|吴新
爆料联系:cpcfan1874(微信)
壹零社:用图文、视频记录科技互联网新鲜事、电商生活、云计算、ICT领域、消费电子,商业故事。《中国知网》每周全文收录;中国科技报刊100强;2021年微博百万粉丝俱乐部成员;2022年抖音优质科技内容创作者

壹零社
传播科学强化科普 ,音像制品和互联网出版
 最新文章