文:王智远 | ID:Z201440
打开网易新闻 查看精彩图片
文:王智远 | ID:Z201440

5月22号,华为昇腾开发者大会。

有一场演讲我印象挺深。周斌,昇腾计算产品部部长,讲了30分钟,就一件事:昇腾软件生态怎么让开发者用得顺手。

他列了十几项改进,全冲着一个目标去的:让开发者愿意用。

这个发现挺有意思的。外面人聊芯片竞争,永远在比算力,好像谁的算力大谁就赢,他翻过来在讲另一件事:芯片做出来了,用起来太疼了。

怎么个疼法?他开场放了一组数据,开发者社区攒了一年的反馈。我翻译成人话,就三句:

一,底层锁太死,我施展不开。 二,编程方式太别扭,效率上不去。 三,主流开源社区的东西搬不过来,学习成本太高。

这三句话,往深了想,说的是一个更底层的东西。

AI开发者这帮人,过去十几年是在NVIDIA的CUDA生态里泡大的。写代码用PyTorch,写算子用Triton,部署用CUDA。社区里的教程、代码库、最佳实践,全围着这一套转。

十几年,练成肌肉记忆了。

你让一个在CUDA体系里写了五六年代码的工程师,突然切到昇腾上。他要面对的,是换一套思维方式、一套开发习惯、一套查资料的路径,以前踩过的坑、攒过的经验、写过的代码,全部清零。

这个成本太高了。高到大部分人第一反应就是:算了。

所以开发者抱怨那三件事,本质上是一件事:华为芯片可能不错,可我用起来太累了,这道墙,是CUDA用十几年时间,一行代码一行代码砌起来的。

墙在这,怎么解决?周斌给的答案挺出乎意料。他说:你别学了,你原来咋写,现在还咋写。

先说算子编程

算子这东西,是AI模型里最底层的计算单元,你可以当成盖房子的砖。以前在NVIDIA上写算子,主流用两个工具:Triton和PyTorch;切到昇腾上,这两样都得重新学,很多人就卡在这一步,不来了。

周斌说,现在Triton的接口100%兼容了。你手里现有的Triton代码,不用改,直接跑。

目前已经支持了600多个Triton算子,300多个Taichi算子,DeepSeek、千问这些主流模型的关键算子,全包了。

PyTorch那边也一样。2300多个API和上游社区对齐了,覆盖大语言模型、多模态、推荐系统等五个主流场景。说人话就是:你在PyTorch社区学的写法、用的接口,搬过来就能用。

他在讲这些改进的时候,反复用一个词:一致。API体验一致、精度一致、内存占用一致、计算出来的结果也一致。这个词念叨了好多遍。

「一致」这俩字,才是整件事的关键。

华为做的,是一个「让你感觉不到切换」的替代品;开发者搬过来之后,手感和原来一样,不用重新适应。

这个思路,现场有一个很直观的演示。

中山大学的沈明华教授,带了一个叫Flash Attention NPU的开源库,专门帮昇腾加速注意力计算的东西。

演示过程特别简单,左边是GPU跑的代码,右边是昇腾NPU。沈教授干了三件事:一键安装这个库,把代码拷过来,改一行代码的引用来源。

三秒跑完,精度啥的和GPU那边的误差,在正常范围内,这个库已经发到PyPI(就是Python那个装包平台)上了,GitHub上也开源了。一键安装,改一行代码,无感切换。

同样的「降门槛」思路,也体现在更多细节上。

以前一个算子要交付,开发者得准备七个文件,现在简化成一个。Docker容器镜像也上线了,云端开发环境也上了,听着不性感,对每天写代码的人来说,省的是实打实的时间。

周斌还提了一个更底层的变化:昇腾在全面拥抱Python生态。

他们给底层的编程工具加了Python接口,又把复杂的底层指令封装成了Python模板库,还推出了一个原生支持Python的张量编程工具。

这些名字不重要,重点是方向:

AI开发者现在基本都用Python,华为就把自己的底层能力全部包上一层Python的壳。你不用学华为的语言,华为来学你的。

光说「你的语言我都兼容」,不够。如果华为自己的软件架构还是铁板一块,开发者进来也动不了手脚。

所以,周斌讲的第二件大事,是华为对自己动了刀子。

CANN,这是昇腾整个软件栈的地基,所有的计算、通信、算子开发,全长在这上面。去年华为把它全部开源了。

50多个源码包全部给你打开,不给你看一眼就算完,运行时、算子编译、通信库、算子库,每一层的接口都给你亮出来。

开源的意义在哪?

以前在昇腾上搞开发,像在一个关着门的房间里干活,墙上开了几个窗口,你就只能从窗口递东西进去。现在墙全拆了。

你想动哪一层就动哪一层,组件也能自己升级,不用牵一发而动全身。

再往上看芯片。昇腾从910B到950,这一代有一个重要变化,950在架构上多了一种计算单元。

周斌说,华为做了一套混合编程能力,开发者可以在同一个算子里,根据不同阶段的特点,灵活切两种编程方式。

遇到规则的、连续的计算,用一种,发挥高吞吐的优势。遇到不规则的、离散的逻辑控制,换另一种,发挥灵活性。

听着挺技术,翻译过来就一句话:以前一把锤子敲所有钉子,现在工具箱里有扳手也有螺丝刀,看情况选。

通信这边也有大变,大规模训练和推理的时候,多个芯片之间要互相「说话」,这个环节经常卡脖子。

周斌说,现在把跨芯片的通信编程改成了像读写本地内存一样的方式,一行代码直达底层,通信下发延迟优化了30倍。

他们还搞了一个计算和通信融合的模板库,开发者拿来就能用。融合算子的开发周期缩短50%,性能还能再提30%。50%和30%,做过程序的都懂是啥概念。

软件栈上层也在拆,MindSpeed,就是那个大模型训练加速套件。

周斌原话说,把原来大而全的方案拆开重构了,组件独立解耦。拆完之后,开发者额外要适配的代码量,从过去的上万行,降到了百行级别。

MindIE,推理服务那边也升级了,两个数字比较扎眼:容器出故障后,恢复时间压到了一分钟以内;长视频推理场景下,用了注意力稀疏加速,端到端性能提升超过40%。

MindStudio,工具链那边全面开放底层API接口,支持二次开发,能对接第三方生态。

模型量化这块,就是把大模型里那些精度很高的参数压缩成低精度的,省内存还跑得快,新模型进来,量化效率提升了50%以上。

还有一个东西值得说说,MindSpore,华为自己的AI框架,这次也出了两个新组件。

打个比方:

你在厨房做饭,每个菜单独炒,锅用完洗了再炒下一个,效率很低;聪明的厨师会把几个菜的步骤合在一起,同时开两三个灶眼,边炒这个边煮那个。

AI模型跑起来也是这回事,很多计算步骤其实可以合并着做,省掉中间的等待。

华为搞了一个叫AKG的组件,专门干这个事;它能自动把模型里可以合并的计算找出来,融合到一起跑,在30多个主流模型上都跑过了,加速效果明显。

第二个组件叫HyperParallel。

现在大模型训练动不动就是几千张卡一起算,这些卡怎么分工、怎么配合,是个很复杂的排布问题。

HyperParallel帮你把这个复杂度藏起来了,开发者加一行代码就能用上,MoE类型的模型,就是把大模型拆成一堆小专家,谁擅长谁上,可以提速10%以上。

这一串名字你不用记,记住一件事就行:

华为把自己的软件栈,从底到顶,一层一层拆开了。拆开不为别的,让外面的人能把手伸进来。

还有一件事值得单独说:华为这次的策略里,有一条是「我去你家」,不等你来。

周斌专门讲了华为在主流开源社区的投入。

vLLM,目前最主流的大模型推理框架,昇腾是里面唯一的国产硬件厂商;SGLang,另一个主流推理引擎,昇腾也是主仓里唯一的国产非GPU类厂商,代码直接合入主干。

VERL,大模型强化学习的主流框架,华为在里面累计贡献超过一万行代码,拿到了多个maintainer席位。

强化学习这块华为下的注不轻;除了VERL,他们还跟vo、slim等好几个社区建了官方合作,设备支持、特性开发、模型适配都在做。

还贡献了一个叫transferQ的组件。这玩意干啥的?

大模型训练时,数据在不同节点之间搬来搬去,搬运效率直接影响整体速度。transferQ就是专门优化这个搬运过程的,端到端性能能提升7%到20%。

这个组件现在已经成了VERL和其他几个社区的核心基础设施。

就好比,不光去别人家帮忙干活,你还带了自己的工具箱,用完之后工具箱留在人家那了,大家都在用。这个融入的程度,不是蹭个名字挂个logo能比的。

注意,这些社区是开发者每天都在用的家伙;华为选择去那里贡献代码、搞持续集成、拿维护者的身份,没另起炉灶让大家过来。

除了大模型训推这块,在搜索推荐这种AI最常用的场景上,华为也把整条链路都打通了;从芯片底层的本事,到开源的算子库,全都适配好。已经在好几个头部互联网公司跑起来了,真在用了。

再加上和高校合作共建的扩展库,覆盖了深度学习、智能驾驶、广告推荐什么的。

所有,这些动作指向同一个意思:华为在拆自己的围墙。拆墙比砌墙难,但拆完了,外面的人才进得来。

做到这一步,大部分人觉得差不多了吧。兼容了、开源了、社区也去了,开发者该来了吧。

周斌又加了一层。

他说华为搞了一套叫CANBot的算子开发工具,基于AI Agent。这玩意能干嘛?你告诉它你要什么算子,它自己去写。

单个算子,从生成到部署,一天之内搞定;传统人工干这活,差五倍以上效率。

往深了想,这事挺让人感慨的,前面聊的三个问题,全在琢磨「怎么让开发者少学点」。到这一步,连「学」这件事本身都快被跳过了。

华为还干了一件配套的事,他们把4000多名昇腾工程师多年攒的开发经验,提炼成了200多个skills技能包。这些skills已经上线开源社区,开发者两条命令就能调。

你可以这么理解:

以前你去一家陌生工厂干活,所有坑都得自己踩一遍。现在这家工厂把老师傅的经验整理成了操作手册,塞进了Agent里。你不用找老师傅请教,Agent替你问了。

这个思路不只在算子开发上。周斌说了,MindStudio工具链也在全面Agent化。

把专家的调试调优经验转化成Agent的skills,再让多个Agent协同干活。实测下来,端到端开发流程提速超过50%。

同一个演讲里,华为还出了一份算子的「教材」和「考试卷」。

「教材」就是算子数据集,里面各类算子数据都有,先把数据洗干净,再把解题思路捋好。大模型拿这东西去学,学出来的效果自然更对路。

「考试卷」就是评测集,分了不同难度等级,覆盖22类典型算子,内置4000多个考点。

合在一起什么意思?数据给你了,怎么考你也知道了,谁想学都能来比划比划。

这一步才是整场演讲里最该注意的信号。前面那些改进,不管兼容、开源还是进社区,说到底都是在降低「人学昇腾」的成本。到这一步,开始变成「让AI学昇腾」了。

如果AI自己就能写出合格的昇腾算子,那开发者要「学」的东西,又少了一大块。

国产AI芯片这仗,打到今天,最大的槛早就不在算力上了,是开发者愿不愿意坐到你这张桌子前面来。

周斌的意思,说到底就一句话:

让芯片去适应开发者,别让开发者伺候芯片;这道理听着简单。做起来呢?要学别人的话、去别人的地盘干活、把自家的门槛一道一道削平,最后还得把压箱底的经验全交出去。

打开网易新闻 查看精彩图片