跳转至

智算卡生态进校园之我见

背景

最近频繁地和各家智算卡(GPU、NPU,或者统称为 xPU)厂商交流,讨论如何培养软件生态、如何进入校园。同样的观点我已经跟不同的人讲过至少五遍了,索性写成一篇博客,一次讲清楚。

大背景

故事的背景并不难理解:国内算力需求旺盛,而英伟达又难以进入,于是无论是国产厂商,还是非英伟达的海外厂商,都在设法培育国内市场。而培育市场特别关键的一步,就是培育生态。

由于我在学校里参与了多门课程的教学,接触到的也多是厂商里负责校园生态对接的员工,因此经常和他们聊起一个问题:怎样把这些算力卡的生态带进校园。国内庞大的算力需求,最终总要有人把它部署起来、用起来;而选哪家卡、能不能把卡的算力真正发挥出来,对从业者的知识储备是有要求的。如果能在学校里提前为企业培养所需的人才,生态就有机会从企业扩展到高校乃至更广的人群,这是厂商最核心的诉求。

在交流的过程中,我也从学校和公司的双重角度,分析过生态可以在校园的哪些环节切入,并向他们提了不少来自学校视角、他们目前尚未顾及的看法。这篇博客就把我的想法分享出来,供国内外各家计算卡厂商参考:如果你们想把硬件或生态推广到校园里,可以走哪些路。这些想法我不藏着掖着,全部公开写在这里。事实上,只要对学校足够理解,任何人都能得出类似的分析;真正拉开差距的,是哪家公司更有魄力,愿意真正从学校的需求和学生的需求出发,把生态这样一个长期推广项目踏实做下去,从而抢占市场先机。这也许是潜在读者最该思考的一点。下面只谈我个人的观点。

现状

先看现状。目前校园里与算力卡相关的课程,显然还是以 GPU、更准确地说以英伟达的 GPU 为主。真正需要实际用到 GPU 的课程其实并不算多:主要是高性能计算方向,以及近几年新开的、与大模型紧密相关的课程,或许还有图形学等。这些课程往往有平台上的惯性:助教和老师过去就用英伟达平台,英伟达本身又足够成熟,于是就这么延续了下来。

所以,目前的市场生态仍牢牢握在英伟达手中。这倒不是说英伟达在学校投了多少人力,而是长达二十年的积累给了它巨大的先发优势。即便如今卡不好买、也未必有人来和学校谈合作,对学校而言,务实的选择仍然是尽量弄到能买到的英伟达卡,提供给学生做教学。

但这个现状终将改变。一方面是不好买,另一方面是大家越来越不愿意用,于是无论国内还是海外的非英伟达生态,都被列入了备选,倒不一定要立刻替换英伟达,毕竟手里的 V100、A100,甚至 4090 这类游戏卡,还能再用很久。等这批机器几年后彻底淘汰,如果那时仍然买不到好的英伟达智算卡,就不得不转向其他方案了。

而眼下这几年,恰好是一个窗口期:各家厂商都在努力推广自己的生态,校园确实是重要的切入点。毕竟无论是生产制造 xPU 的公司,还是下游使用这些卡的公司,其人才都有相当一部分来自学校。在校园层面做推广,规模相对可控,对招聘也有好处。

当然,学校有学校的特点,这往往是厂商从公司视角很难设身处地去体会的。我写这篇博客,也是想提供一个来自学校老师和学生视角的看法,给这些公司一些建议,看看有没有哪家愿意真正把这些事情落地,真心实意地做生态推广,而不是为了应付 KPI。

学校的特点

既然谈到学校,就先谈学校的特点。

学校里授课的主体是老师。老师讲授的内容,一部分来自自己的研究,做研究的老师,往往更倾向于开设与研究方向对应的课程;此外还有一些大家都认为应当开设的基础课程。而在设备选择上,学校有很多考量。

第一是经费。 如今大模型如此赚钱,把卡卖给企业做推理所能带来的收益,远高于放在学校里做教学。学校也很难专门为教学拨出大笔经费去买卡,更多是"为科研买卡时顺便服务教学"。如果没有科研需求,教学就更难买得起这些设备了。这是第一道门槛。

第二是严谨与公平。 教学环境需要足够的稳定,不能中途突然宕机,如果恰好在作业截止日期前出问题,后果会很严重。换句话说,教学实验环境要足够可靠,不要求多少个九,但绝不能在关键节点、尤其是截止日期或考试期间掉链子。因此,教学材料最好是离线的、部署在校内的,而不是放在云端。云端看似可用性更好,实际上网络瓶颈不少;更关键的是,本地机器出了问题可以随时派人去修,远程则时间不可控,老师们会缺乏安全感。这是很重要的一点差异。

第三是经费的使用方式。 学校的经费往往倾向于买设备,却很难用来买服务。在一些算力需求大的企业里,厂商会派团队驻场做技术支持,这种模式在企业里行得通,但在学校里很难维持:学校没有这样的经费科目,去买服务,就像我们之前想采购大量云服务一样困难。结合上面提到的可靠性问题,课程最理想的环境是:离线、线下、可靠,同时又因为缺少技术支持而必须足够好用、开箱即用。比如插上卡、装个驱动就能用,不需要找人申请权限、等人给文档。如果做不到这一点,对生态其实是相当不利的。

第四是老师的主导性。 一些学校很强调老师在课程中的主导地位。比如我们学校的一些课程会有企业参与、算力支持,但主导的仍是以老师加助教组成的教学团队,不会做太多商业化的、打广告式的内容,这方面一定是有所限制的。

于是你会看到,学校和厂商的需求往往是相悖的:

  • 学校想要硬件,厂商却没有那么多富余硬件,卡都要卖给急需算力、能赚钱的地方,学校显然不那么赚钱;
  • 厂商说可以把卡放到云端提供,学校又缺乏安全感,担心哪天云服务出问题,出现不可控的情况;
  • 一些智算卡在使用上还设计了保密机制,必须由专门的工程师授权才能访问资料,这对学校来说也是很大的扣分项。

这里列举了很多困难,归根结底来自学校作为事业单位与企业作为盈利组织在性质上的差异。但这并非不可调和的矛盾。生态建设本身就是一件非常长期主义、且不太赚钱的事。换句话说,企业里做生态的人,本就和 KPI、和挣钱的目标不太兼容。只有企业愿意把做生态真正长期化,才可能和学校同频。否则结果往往是:公司为了 KPI,员工也为了 KPI,拼命往校园里塞广告,而这恰恰是学生最不愿意看到的,学生不高兴,给老师打低分,老师也是输家,厂商多半也没讨到好。

说了这么多困难,接下来该讲"扬"的部分了:厂商为什么要花这么大力气在校园里推广生态,它能带来什么,又可以从哪些方面入手。

如何从课程入手

想到智算卡生态进校园,大家的第一反应通常都是课程。但课程对卡的需求,其实差异很大,就像社会上的各类人对卡的需求也很不一样。

最浅的一层,是"只用算力、不关心卡"的人。 他们要的只是算力,用的是 PyTorch 这样非常上层的软件及其之上的生态,兼容性极好,换张卡,代码几乎不用改,重装一套环境就行。对这类需求,推动难度很小,但收益同样有限。比如我们系不少课程里都有用到 AI 的环节,但使用者并不直接碰 AI,而是通过网页或 App 间接使用。你可以告诉他"这个网站背后用的是某家的卡",让他有个印象,但因为没真正上手,印象也不会太深。这类课程其实很多,包括一些计算机入门课,尤其是面向外系的课程,会吸引大量非计算机专业的同学使用 AI。对他们来说,最主要的收获就是:这张卡确实能用,用起来和英伟达没什么区别。

这一点看起来不大,短期也未必有效果,这类用户粘性很差,对他而言用什么卡都一样,无非多了一个"某家的卡用起来和英伟达没差"的印象。但未来某天,当他参与某家企业或单位的采购决策时,可能会想起自己当年上过这门课、真正摸过这块硬件,并意识到:在某些场景下,这张智算卡确实可以替代主流国际品牌,评估结论是可以用。这就是一种非常长期、潜移默化的用户观念培养,短期之内不会有任何效果。

再深一层,是重度使用智算卡的同学。 比如清华最近新开的一些课程,要用一整个学期把大模型的训练流程完整走一遍。虽然用的也是 PyTorch 这类上层生态,但他们会长时间亲手与卡打交道,看利用率、看多卡表现等等,尽管不强调太多优化,也会有具体的使用感受。这些同学能作为真实用户较深入地体验智算卡,理解它好在哪、不好在哪,从而积累大量第一手经验。而且他们未来很可能进入本就依赖算力的企业岗位,把课程中积累的经验迁移到工作中,这会在一定程度上影响采购决策,或促进后续的算力落地,是很不错的切入角度。

这类课程相对较新,英伟达的包袱或传统没那么深;在算力紧缺的背景下,又需要课程内完成一件相对算力密集的事情,自然比那些能在单机上用 CPU 跑的小应用更依赖算力;课程新、有算力需求、硬件又昂贵,同时还没有形成很强的英伟达壁垒,因此新的计算卡相对容易进入这样的课程。

再往下一层,是真正与 GPU 深入打交道的课程,尤其是 GPU 编程和并行计算。这类课程的内容本身就大量贴合英伟达 GPU 的结构与编程方式,对口的是算子编程、编译等领域所需的人才,而算子与编译器生态恰恰是当前生态建设中很重要的一环。所以这些课程非常重要,但也没那么容易切入:一旦把 GPU 换成其他计算卡,编程模型会有不少变化。要做算子级别的编程,就不可避免地触及大量细节,这对老师和助教的知识储备要求很高,他们得有足够的使用经验,才愿意、也才敢开这门课。

一个利好是,一些国产智算卡可能早已部署在超算等领域,也有很多科研项目在上面开展。也就是说,不少课题组里的老师和博士生,其实已经积累了大量与这些智算卡"搏斗"的经验,或许有能力去改动课程内容,毕竟改动幅度不小。但关键在于,怎样让他们有足够的动力去推动这个变化,因为他很容易产生路径依赖:讲了这么多年英伟达,突然要在英伟达之外加入另一种智算卡,学生愿不愿意学?可行的做法是先从小班实验、让同学自愿报名开始,再慢慢扩大。长期来看,这一定能培养出一批懂系统、做 AI Infra 的人才。

最深的一层,是硬件本身。 国内这些课程,主要还是由做科研的老师开设的专业课。但无论国内还是国外,xPU 硬件方向的科研和业界都有较大脱节,因此很难在老师中找到做计算卡硬件的人,至少计算机系里很少,或许集成电路学院能找到。这种情况下,既难找到也难开设相关课程:老师要花大量精力去学,未必有信心开;若直接由企业来开,内容又太局限于某一款具体型号的架构,公司色彩过重,不太适合校园氛围。

所以这一层对老师的要求极高,而这恰恰是智算卡厂商非常需要的人才。前阵子廖博发了一个视频,主要讲体系结构人才的缺口:CPU 有问题,GPU 其实问题一样多。高校在这方面的人才培养,我觉得是有所不足的,确实存在空缺。这个空缺一部分来自缺失的课程,一部分来自缺失的科研,而两者本是一体的。解决它需要全链路地推进:先打通企业界与学术界的壁垒,因为现在企业做的东西和学校、科研做的东西已经相当割裂。只有放出一些课题交给学术界去做、能够发论文,才会有老师愿意投入这方面的科研,进而拿到项目、开出课程。这是一个非常长期的人才培养周期,但反过来也能帮企业把入职后的培养前移到本科或研究生阶段。

我大致从这四类课程分析了智算卡生态如何进入校园。其实这四类也正是社会人群的缩影:只用 AI、不关心用什么卡的;使用高层工具的;深入到算子的;深入到硬件的。这些课程对应着不同的需求,而其中的道理不仅适用于课程,也适用于社会上的各类人群。

如何从竞赛入手

除了课程,另一个重要的抓手是竞赛。这也是当前许多智算卡厂商优先切入的方向,因为竞赛门槛相对低一些,但也确实鱼龙混杂,各种层次、各种质量的比赛非常多。

首先,比赛能很好地激励学生,尤其是学有余力的学生去探索课外内容,再通过奖金、保研加分等激励,促使他们有动力参赛。而参赛本身,就是在为生态建设出一份力:要算子人才就办算子竞赛,要硬件人才就办硬件比赛,要应用人才就办应用竞赛。总之,这是相对容易定制、也容易举办的赛事。

主要的难点在于定位与赛务:怎样定位这场比赛、怎样把它办起来、怎样把你想要的人请进来。比赛不是给钱赞助就完事了,赛务决定了它的成败。办得好,能为行业和公司输送新鲜血液,也能给学生提供上升通道,让他愿意投入这个行业去学习和奋斗;办得不好,反而会影响公司声誉。所以,办比赛本身不难,难的是愿意花时间精力把它办好,这同样是一件需要长期主义的事。

每到这时我就要举龙芯杯的例子。今年正好是龙芯杯十周年,我作为往届选手参加了在西安的十周年活动。过程中我最深的感受是,龙芯公司和各位老师都非常投入。各位老师一开始是义务劳动,想推广国内的组成原理与 CPU 课程;到后来,龙芯发挥了很大作用,他们的教育事业部对这个活动的投入非常大。且不说投入了多少奖金,单看投入的人力、请来的众多专家费心费力地把比赛办好:保证公正、高效,提供良好的参赛和办赛体验,让学生学到知识,同时对公司的招聘和学生的发展都有帮助,这就已经非常难得。但要看到,这是靠十年的努力,一年一年投入积累出来的。十年是很长的时间,而公司里人员流动性往往很高。如何长期维持一支专业团队,去服务比赛的公平性,让大家相信作弊一定会被惩罚,相信平台不会成为比赛的瓶颈……这背后有大量隐性的时间和金钱成本。

因此我也建议厂商先从竞赛入手,感受一下如何与学生、老师打交道,再考虑与课程合作。竞赛门槛较低,声音也容易做大;但要持续做好,可能比课程更难。因为在课程里,真正把课做好的是学校的老师和助教;而在比赛中,如果连公司自己人都不愿意、或不觉得要把比赛办好,那还有谁能把它办好?比赛做砸了,最终损失的是自己的名誉。

一点题外话

除了与本科教育紧密相关的内容,我也聊了很多其他方面的生态培养。

比如,为什么英伟达的生态大家觉得好?因为它门槛确实低:随便买张卡、装个驱动就能用。但很多智算卡是"有人想用却用不了":要么买不到卡,要么买了之后要签各种保密协议,不让用、不让往外说,装个软件还得找人。这些做法非常伤害"散户"生态。对一买就是几百上千张卡的大客户,你派人驻场当然可以;但如果你的目标不止于此,而是想和英伟达竞争、把生态推广到更广的范围,那你的追求就不该是这样。

你应当把东西做得非常可用、门槛足够低、足够开放,让用户在 90% 的日常使用中不需要和你的任何人沟通,自己买卡、自己从网上获取资料,就能很好地用起来。这是长期要做的功课。短期内,国产智算卡要迈出的第一步,是先让用户觉得"这东西能用、靠谱",愿意把它当作英伟达的一个下位替代,至少先做到"可替代",再谈进一步的事情。下一步,才是去谈超越英伟达:和你一样好用,甚至更好用、更容易用,在某些方面比你做得更好,这才是未来的方向。

总结

最后总结一下:生态想进校园,一定得让学校的人和公司的人想到一起去;否则目标不同,就常常会出现分歧。也希望各家计算卡越做越好,能撑起英伟达之外的市场。

评论 / Comments