算力芯片的“CUDA难题”

姬晓婷
CUDA之所以会成为算力芯片硬件厂商必须要认真考虑的一个选择,最直接的原因,是其已经实现了与算法客户的强绑定。众多算法工程师已经习惯了CUDA提供的工具库及其编程语言,向外迁移总是会存在不习惯的问题。

1.png

本文来自微信公众号“中国电子报”,作者/姬晓婷。

“生成式AI时代和AI的iPhone时刻已经到来”。北京时间8月8日晚间,英伟达创始人黄仁勋在计算机图形学顶会SIGGRAPH上发布了GH200 Grace Hopper超级芯片、AI Workbench等成果时这样讲道,并透露首批GH200预计于2024年第二季度出货。在全球范围内白热化算力争霸的当下,英伟达已经赢得了竞争先机,而其并行计算和编程平台CUDA可能是最重要的“幕后英雄”。凭借强大而丰富的计算库,CUDA得到了算法工程师的认可,甚至被认为是“巩固英伟达硬件市场地位的护城河”。因此,CUDA成为摆在其他算力芯片企业眼前的两难问题:兼容还是不兼容?

兼容CUDA是因为“好用”

CUDA之所以会成为算力芯片硬件厂商必须要认真考虑的一个选择,最直接的原因,是其已经实现了与算法客户的强绑定。众多算法工程师已经习惯了CUDA提供的工具库及其编程语言,向外迁移总是会存在不习惯的问题。

因此,很多算力芯片硬件厂商选择了兼容CUDA的路线——使硬件能够直接用CUDA调动起来,这样可以降低用户更换硬件平台的不适感。

换手机有“一键迁移”功能。而如果兼容CUDA——记者在采访中了解到——换芯片硬件也可以像换手机一样容易。如果芯片客户原本用的是CUDA软件和英伟达的卡,在向兼容CUDA的算力硬件迁移过程中,原有的代码一个都不改,直接就能用起来。这样一来,客户尝试选用新的算力芯片的意愿将大大提升。

算法工程师对CUDA的使用习惯并不是一天养成的。

英伟达GPU及其并行计算和编程平台CUDA进入行业时间早,这为英伟达积累了非常明显的先发优势。从当前火热的大模型的发展历程来看,许多大模型发展之初都是基于开源机器学习库PyTorch训练,最早期使用的也是英伟达的GPU,与之相配套,算法工程师便会大量地用到CUDA库代码。从机器学习出现到大模型盛行,经过十几年的发展,算法工程师们不可避免地会用到CUDA库支持的算子。这样一来,如果使用CUDA驱动硬件,大模型写好之后,编程语言就能直接运行起来,实现无缝对接。

1.png

CUDA主页

包括大模型企业在内,使用计算芯片的企业所采用的硬件基础也基本上是由英伟达的产品搭建的。在一次计算训练中,统一硬件品牌,也能更好保证其训练的稳定性。因为英伟达产品入局早,许多工程师对CUDA的使用习惯甚至是从学校受教育阶段便培养起来的,在毕业参加工作后,各企业采用的软硬件工具也是英伟达厂牌。这样一来,算法工程师在软件工具使用上存在非常大的惯性。

这对于英伟达之外的算力芯片来说意味着,如果不兼容CUDA,市场推广过程将存在一定的困难。

某算力芯片企业告诉记者,要想打开市场,短期内必须兼容CUDA生态。如果不兼容CUDA,就会出现很多问题,包括要在代码上做微调,跑模型时要实现收敛等问题,这背后的工作量相当大。但如果整个软硬件能够支持CUDA,客户就无需再做二次开发或者修改算法。这被认为是降低客户使用成本最简单的方式。

兼容CUDA也是在帮助客户节约时间。对于以大模型为主营业务的企业而言,时间就是生命。模型推演快一天、比竞争对手的产品早一天上线都是非常重要的。因此,若是硬件迁移需要工程师花大量的时间适应软件工具,将极大地降低客户对新产品的接受意愿。

1.png

来源:CUDA官网,《中国电子报》整理

“要站在用户的角度思考问题”,这是企业选择兼容CUDA的立足基点。客户开发大模型,是以效率为第一要义的,很多软件工程,也都是拿到现成的代码再做调优。现在很火的大模型的开发也是同样的,很多厂家先拿到小模型和机器学习的代码,再在此基础上做累加和调优,最终实现规模化。

要让客户觉得“好用”,首先要解决的是“能用”的问题。也就是首先得将客户积累了十几甚至二十几年的软件基础跑起来,解决“从0到1”的问题。只有这个问题解决了,才能考虑“好用”的问题、“从1到100”的问题——能帮助客户通过编程支持新功能。

从企业战略的角度来看,英伟达的生态已经形成比较成熟的市场、标准和护城河。基于这样的事实,在既有标准的基础上切入,对于算力芯片企业而言,将是更加便利且高效的路径。

兼容CUDA也是一把“双刃剑”

不过,也有业界专家提醒记者,许多宣称“兼容”CUDA的产品,并不是真的“兼容”,而是通过架构的相似性,使产品可以比较容易地运行CUDA的代码。因为CUDA不是开源代码,是“黑盒子”,因此100%兼容CUDA在技术上是无法实现的。同时在安全、知识产权方面存在风险。

“兼容”CUDA就像一把双刃剑,一方面可以降低算力芯片企业的获客成本,另一方面,也会在一定程度上给产品的创新潜能带来限制。

许多算力芯片企业选择在软件栈上另辟蹊径,主要是因为担心“兼容”CUDA会成为自家产品发展“天花板”。当前“兼容”CUDA的方式,主要是试图将编程模型做到与CUDA一致,但实际底层的硬件架构难以实现与英伟达的GPU完全相同。由此,兼容CUDA很有可能只能是短期行为,长期来看将不利于芯片架构创新与性能的提升。而自研软件栈,则相当于将创新的“天花板”掌握在自己手中。

从全球来看,许多国外的做算力芯片企业,例如Graphcore、SambaNova、tenstorrent,没有一家兼容CUDA。而之所以不去兼容CUDA,归根结底,是因为各家希望探索出更适合做AI计算的路。英伟达的GPU早期只做GPU图形渲染,只是因为其产品能够借助CUDA在通用计算领域,也就是在包括AI在内的领域用起来,才使其逐渐成为AI算力芯片领域的领头羊。但从英伟达产品的计算架构和性价比来看,都不是最合适的AI计算的产品。

换句话说,如果英伟达是最合适的,可能也就没有这么多AI芯片公司存在了。

算力芯片的后来者,要做的是从前人的发展中吸取经验,但依然要摸索自己的路。CUDA的出现,最初只是为了使GPU能够满足除视觉处理之外的其他通用计算功能。而之所以CUDA会富有市场竞争力,核心在于它实现了从硬件层到软件层的全跑通,且基于其百万级的客户体量,实现了对性能的优化。

芯片设计、软件开发,这是一件亟需创新能力的事情。如果还想走CUDA的老路,只是尽可能模仿英伟达的产品,其实就没有往把AI芯片做得更好的路径上走,兼容CUDA某种程度也是在壮大英伟达的生态,增强对CUDA的依赖性。

而如果不兼容CUDA,走自主创新的道路,产品和企业发展的路径都将更宽。因此有的企业选择了走自定义编程模型的路线,提供从硬件平台到开发者工具包、计算库和框架的一整套方案。

而对于这条路可能存在的获客困难问题,有的算力芯片企业向《中国电子报》记者表示,如果客户下定决心向英伟达生态之外的其他产品迁移,其实平台间迁移的困难并没有想象中那么大,客户还是能获得丰厚商业价值回报的。

底层逻辑是构建开发者生态

软硬件协同完善的生态是客户选择CUDA的根本原因,也是英伟达领先于其他算力芯片企业最核心的竞争力。

尽管在是否兼容CUDA的问题上,算力芯片设计企业具有不同的观点,但在搭建企业生态的问题上,记者接触的算力芯片企业都给出了一致的回答:要建设企业自己的生态体系。

至于何为生态、如何搭建生态,业界的观点存在些许差异。

有的企业选择从指令集开始,到计算库和编译器等层次进行自研,构建软硬件相结合的生态。构建自己的软件栈首先是打好基础,对标CUDA及以下的抽象层次,充分发挥自己芯片的特色,开发出一套用户可用、易用的编程模型。积硅步以至千里,最终帮助目标客户完成从英伟达到自家芯片的平滑迁移,同时又能使客户在使用自己的软件栈时充分感受到新特性带来的更优体验。

CUDA生态合作伙伴

1.png

所谓的“生态”底层逻辑是开发者生态。AI芯片作为技术属性很强的产品,其核心价值是帮助开发者在这个硬件的基础上加速其算法开发与业务部署。生态建设的成功与否取决于这款产品能否给客户带来价值。例如学生学习了这款产品的知识能够帮助其找到工作,企业使用该产品后能实现其业务目标,并且市场上也有相应熟悉该产品的人才储备等等;生态里的每一个角色都能获得利益才是生态健康成长的关键。

因此,有的算力芯片厂商给出了这样的发展建议:国内厂商协同定义自研编程模型,以此联合拓展开发者,集聚企业的力量,让更多的高校、商业伙伴使用。

大模型的出现,为生态搭建从芯片厂各自为战走向产业联合提供了契机。

如果没有大模型,各家都会选择适合自己的通用方式,缺少将供应链上下游集合到一起解决问题的利益取向。用简单的话来说,如果是三五张卡一台服务器就能解决的问题,一家企业单点调优就可以实现了。而大模型是需要大算力和大互联的东西,动辄要调动上万张卡、上千台服务器,还要考虑供电等各种问题,最后呈现的是关乎生产基础甚至国计民生的东西,它所需要的资源就不是一家企业能够做到的,因此更需要产业链的协作,更有机会调动产业链更多的资源。

不仅如此,大模型的出现,也为算力芯片市场突破提供了机会。大模型的发展使人工智能的技术路线出现了收敛的趋势。在大模型出现之前,对应一个需求的解决方案非常繁杂,每个企业都会提出自己的方案。而大模型的发展,使得算法技术路线逐渐统一于Transformer模型,从而也为算力芯片日后需要瞄准的技术方向树立了“靶子”。在这种情况下,如果算力芯片企业能够争取到大的算力供应商(例如大的互联网公司)作为合作伙伴,再以此为基础推出结合其他行业的特点做微调,进而产出适合多行业的解决方案,就有很大的机会赢得更广阔的市场前景,也就有了打破英伟达商业壁垒的机会。

关于如何实现产业链协作,实现算力芯片的破局,记者采访的企业表示,可以联通可控的供应链,在所有的供应链成员中了解自己有哪些独特的技术,评估有竞争力的地方,结合自己的技术特色解决人工智能发展中存在的问题。、

要做好自己的产业生态,当前最缺的是大量工程师的调优工作。英伟达的GPU加速库中有数学库、并行算法库、图像和视频库、通信库、深度学习库等多个类型,有100个加速库,每个计算库又积累了开源代码。这是英伟达几万工程师耕耘了20年,通过解决客户的问题所积累起来的结果。

对于算力芯片企业而言,要做好自己的软件生态,当前不存在很多科研问题,很多问题都可以通过开源代码找到答案。当前业内存在的是工程问题,需要安下心来一点一点做,需要依靠众多工程师的力量,集中力量办大事。现在算力芯片从0到1的突破已经实现了,剩下的就要看时间和积累。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论