作者:泽南、张倩
不降落大模型算法精度,还能把芯片的算力利用效率提升 2~10 倍,这便是编译器的魅力。
在《沙丘》构建的未来天下里,「得喷鼻香料者得天下」。但在天生式 AI 席卷的智能天下里,得 GPU 者得天下。
(图片来自网络侵删)前段韶光,外媒 The Information 曝出了一则重磅:微软和 OpenAI 正在方案一个年夜志勃勃的数据中央项目 —— 建造一台名为「星际之门」的 AI 超级打算机。这台打算机将配备数百万个专用做事器芯片,是目前一些最大数据中央的 100 倍。当然,这个操持是相称烧钱的,本钱可能高达 1000 亿美元,令其他公司望而生畏。
在海内,天生式 AI 引发的这场算力竞赛也变得愈发激烈。但除了猖獗堆卡,企业还有没有其他更加经济、有效的方法来提升算力,尤其是在 AI 芯片国产化进程加速确当下?对此,中科院打算所编译团队卖力人、中科加禾创始人崔慧敏提到了一条鲜有人涉足的路径 —— 编译技能。
编译的浸染就像一位翻译,它能把高等编程措辞翻译成芯片可以理解并实行的机器措辞。同时编译器还要做优化,让天生的机器代码运行起来更高效。
这种优化的力量有多大?崔慧敏提到,「我们能做到的是在不降落算法精度的情形下,把算力的利用效率给提上来,供应额外的 2~10 倍的性能提升。」这个数字可能超出了很多人的预见,就像崔慧敏所说,「在 AI 这样的负载里面,编译器的浸染实在是被远远低估了的。」
那么,她提到的加速是在英伟达 GPU 上实现的,还是在国产卡上也行?是针对特定大模型做的优化,还是换个模型也能用?对此,她的答案是两个字 —— 通用。
「我们做的是一层根本的软件平台层。有了这一层往后,底下的芯片就可以随意切换,上面的模型也可以随意切换,它们之间不再是一个紧耦合的状态了。」崔慧敏阐明说。
实在,在当前的国产芯片生态中,这种紧耦合的状态非常常见。在 AI 芯片加速国产化的进程中,大多数国产芯片做了大量算子定制化开拓事情,这不但大幅增加了开拓本钱,随之而来的还有技能标准化进程缓慢和兼容性的问题。各家厂商形成一个个独立的生态小岛,造玉成部行业趋于碎片化,这无疑限定了技能和家当的快速发展和广泛运用。
崔慧敏团队想要做的,便是链接这些生态孤岛,通过一个编译中间平台,让模型、运用可以在不同的硬件平台之间自由移植,同时优化移植后的性能,后续涌现的新模型、新运用也能无缝适配,担保持续的可用性。
「我们要用一套软件工具,实现大模型运用在国产算力平台上的 0 本钱适配、0 损耗实行、0 延迟支配。」崔慧敏说。
这有望补齐海内 AI 家当生态的缺位,大幅降落上层运用在国产芯片平台上的落地门槛和本钱,显著提升多种异构算力的利用和适配效率。
崔慧敏毕业于清华大学打算机系,并于中科院打算所得到打算机体系构造博士学位,持续从事编译方向研究事情,曾在芯片和编译器领域顶级会媾和期刊揭橥论文五十多篇。她已有 20 年以上的编译器开拓履历,曾作为核心成员主持或参与过多款国产芯片的编译器研发事情。为了实现上述目标,她以中科院打算所原始编译团队为核心组建起了中科加禾的精英军队。去年 8 月以来,中科加禾已经完成两轮,共计近亿元融资,股东涉及有名芯片领域投资机构、头部国产芯片、做事器、互联网等高下游厂商,个中不乏有过紧密互助的 AI 芯片家当伙伴。
近日,我们与崔慧敏进行了一番对话。
在采访中,崔慧敏向我们先容了海内编译技能的发展进程、海内 AI 芯片家当面临的寻衅,同时也对未来跨多平台 AI 算力产品的前景进行了展望。
创业缘起:国产芯片市场走强,呈现市场机会
机器之心:从做学术到创业,您走过了一段若何的心途经程?
崔慧敏:自 97 年开始,我在清华打算机系读本科和硕士,毕业后在打算所读博,之后包括事情,就一贯在做编译器和芯片工具软件干系的科研事情。编译这个方向比较倾向于理论和实践的结合,既有前沿的理论探索又有落地的工程开拓。在这一过程中,我们一贯都伴随着国产芯片的发展进行实践,形成了一支伴随着国产芯片的研发而发展起来的编译军队。
在这个过程中我们做了很多方向,包括面向通用芯片、专用芯片的编译优化,我们在国际顶会和期刊上揭橥了一些论文,进行了很多学术互换。
近些年来,随着国家对国产芯片家当的推动,我们团队承担了很多构建芯片工具链方面的职责。但在这个过程中我们创造,纯靠科研的办法,只管会产生很多创新打破,但可能面临难以家当落地的困境。一个软件从原型走到真正能用的工具,这里面还是有非常多工程化的事情要做。
做编译器这个事情,大家一贯都以为可能没有那么好做。不过,后来涌现了两个驱动力,一个是大模型的涌现,它对算力的需求极大,并且打算模式有一定的收敛;另一个便是业内对国产芯片的需求激增,而国产芯片的生态和英伟达比较又存在很大的差距。我们以为在这个过程中,须要编译层和根本软件工具来弥合这个差距,让国产芯片把现有的生态利用起来,或者融入到整体生态中。我们希望通过增强国产芯片的通用性和适配能力,做事于国产芯片算力崛起,把自主生态的整体可用性提上去,把市场需求转化落地。
海内稀缺的创业团队,从学术成果抵家当履历
机器之心:在创业之前,您的团队紧张做出了哪些成果?
崔慧敏:我们之前一贯在做很多面向底层芯片的兼容工具。最早做二进制翻译工具,便是能把 X86 的二进制程序翻译到底层不同的其他的指令集架构上。从那开始我们积累了非常多的关于兼容性、适配性、跨平台实行的能力。近些年来环绕 GPU 等架构,AI、高性能打算等负载,我们做了大量编译器优化的事情。
在这个过程中我们创造,在 AI 这样的负载里面,编译器的浸染实在是被远远低估了的。通过深度的编译优化,一方面可以让同一个程序直接运行在不同的平台上,办理程序移植的难题;另一方面,移植后的程序还能在不同平台上保持优化后的性能,这是编译器能够发挥长处的一个机会。
在这些方面,我们前期有非常多的论文的积累,像我们近年在 ASPLOS 上揭橥的一系列论文。论文结果表明,编译器可以充分地挖掘硬件算力,在 GPU 和 NPU 上都能够取得非常好的性能。而且通过编译器的方案,我们能够比较彻底地办理问题 —— 它不是只针对某个场景或者某个芯片,而是比较通用的。
我们这个团队做了 20 多年编译,以是我们如果要创业,一定是环绕着编译这个核心技能来做。而在大模型涌现之前, AI 的负载实在是比较发散的,个中的差异性还是比较大的。以是像 TensorFlow、 PyTorch 这些框架实在做了非常多的事情,对负载多样性供应了支持,比如说动态性、多样性,对各种神经网络的形态都能够支持得很好。那时算子存在着多样性,这意味着如果想要去做一层国产芯片上的软件,然后让它去支撑所有的负载,难度是相称大的。
大模型的涌现,实在可以认为是一种模型构造的收敛。可能它不会代表所有,但是已代表了一大类负载,这一大类负载的市场足够大了。以是针对这一类负载,我们就有机会供应一套端到真个优化和编译的方案。
机器之心:中科加禾的团队中包含很多参与过海内主要 AI 芯片项目的专家,这些履历和能力对付目前做的事有哪些帮助?
崔慧敏:要把一颗 AI 芯片利用好,有两个方面的事情必不可少,一是可编程性,能够方便地把运用映射到芯片上;二是性能,能够充分地把芯片的算力利用好。
关于这两个方面,我们团队的核心成员在 CPU、GPU 和 NPU 上都积累了丰富的编译优化履历。对付某一款特定的芯片,我们可以用编译的方法把不同打算单元编排好,提升打算、数据传输效率,做到资源的最大化利用。另一方面,我们节制了若何去做一套优化,让它尽可能地适配不同平台。在这个过程中,我们形成了一套编译设计、优化的理念。
同时,我们会把这些能力尽可能地模块化,个中一部分是公共模块,适用于不同平台、不同芯片;其余一些是须要定制的模块。这两部分模块我们都有了很好的前期探索和理解,基于这些理解我们可以更好地构建出一个根本平台,当有新的负载或者新的芯片需求,我们可以更随意马虎地去接入到这个平台上来。
编译的「魔力」—— 极致优化
机器之心:我们知道,像 ChatGPT 这样的大模型算力花费非常大,有人认为这里面可能还有成百、上千倍的优化空间……
崔慧敏:所谓上百倍、上千倍的优化,里面既有硬件人的功劳,也有算法人、软件人的功劳。在硬件层面上,可以通过研发一些更好的芯片,比如分外架构的芯片,把本钱降下来。在算法层面,可以通过量化、压缩、剪枝把模型的打算量降下来。其余一个层面便是我们所做的,通过软件的支配把本钱降下来。
我们做的事情和前面两个层面是正交的,便是说芯片设计出来如果是低功耗、低本钱的,那编译层可以把芯片的算力充分地榨干。如果上层算法做了一些优化,那可以把做完优化往后的模型再拿到我们这个引擎上来支配。可以理解成:上层做好了算法,底层做好了硬件,我们来做更好的映射。
不过这里面也有一些权衡,比如说有的人对精度的哀求特殊高,就不肯望通过量化、压缩捐躯模型的精度。我们能做到的是在不降落算法精度的情形下,把算力的利用效率给提上来,供应额外的 2~10 倍的性能提升。
机器之心:从编译技能的角度看,优化是如何做到的?
崔慧敏:编译技能会从三个方面去做优化。
首先是如何做算子领悟。大模型有很多算子,我们可以把这些算子进行一些比较激进的领悟,比如把十几个算子压成一个,这样就可以把 AI 加速卡的利用率提到一个很高的水平。进一步,如何把领悟往后形成的大算子优化映射到不同的硬件平台上也是编译优化要做的事情。
其次是如何天生高性能的算子。在大模型中会有很多不同形状的矩阵打算,如何让这些打算都能得到靠近硬件峰值的性能,是每个芯片厂商都须要付出大量努力去做的事情。我们会基于编译器的思想,通过基算子加组合的办法来自动天生这些算子,高性能的算子是大模型能够高效实行的根本。
末了是如何编排访存、打算和通讯。我们总希望芯片大部分韶光都在算,而访存和通讯是要等待的,这就涉及如何更好地去切分和编排任务。考虑到不同的国产卡在打算、通讯、存储、带宽等方面存在差异,我们要做的便是怎么把这些成分抽象出来,再基于这个抽象去决定任务的切分,这也是我们要做的事。
以上这些优化集中在一起,就能达到一个整体的效果。
「天下苦 CUDA 久矣」,
探索国产 AI 芯片生态培植
机器之心:说到打算架构,行业内有一个绕不过去的 CUDA,有人说它很大程度上已是英伟达的护城河,如何看待目前行业的现状?
崔慧敏:我以为您说得很对,不管是做编译器还是说做全体软件生态,我们可能都绕不过 CUDA。我们以为 CUDA 确实是英伟达的一个护城河,多年来英伟达也确实环绕 CUDA 构建了非常弘大的生态,乃至可以说全体 AI 都是建在 CUDA 上面的。
有人说「天下苦CUDA久矣」,这背后是两个问题:如何利用、领悟现有的CUDA生态,如何让国产自主生态成长起来。对付海内来说,各个芯片厂商会有不同的意见。有的芯片厂商会想要建一个自己的生态,便是成为中国的 CUDA;其余也有做 CUDA 兼容的芯片厂商。这是两条不同的路线。
我以为这两条路线在长期来说该当是会共存的。纵然是在英伟达 GPU 上,大家也是有用 CUDA 的,有用 Triton 等工具的。以是可能在未来很长一段韶光,大家都在争取用户。这个韶光会有多长,实在不好说。在 CPU 上,C 措辞用了好多年,一贯到现在也在用,大家也在持续提出新的措辞,不同的措辞反响了不同的设计诉求。以是我们以为在国产芯片的生态培植过程中,CUDA 可能是绕不过去的一环,但它也肯定不是唯一的路径。
我们以为可能兼容 CUDA 对硬件厂商来说是一个短期内盘踞生态的捷径,像 Triton 、SYCL 等新的措辞,我们也要积极地去拥抱,由于它们或许代表了未来。
国产的芯片自建生态这条路我以为在一定领域内也是可行的。
以是我们以为两条路都是可以,都是该当走的。从这个角度来说,我们的芯片生态比较碎片化,可能这两条路都是必不可少的。
机器之心:在这个中,中科加禾紧张走的路线是哪一条?
崔慧敏:我们紧张探索的是与措辞和芯片解耦的编译平台方向。作为一个中间平台,我们对前端措辞不依赖,所有不同的措辞都可以翻译到平台的中间表示上,然后通过中间表示再往不同平台上去走。
在支持的优先级上,一方面我们有一部分的算子会去做 CUDA 源源翻译,便是通过软件来做一些算子转译的事。另一方面我们也会去接入像 Triton、SYCL 这样的新措辞。我们会采取一套统一的中间表示,让任何措辞都可以翻译到这个中间表示上。这样的话,如果将来再出一个新的措辞,或者要推一个新的标准,都可以比较随意马虎地接入到这个平台上来。
上接各种大模型,下接各家芯片,
打破通用性寻衅,供应商业化最优解
机器之心:你们在做的,是面向大量硬件、大量模型的对接事情?
崔慧敏:对,大概是这样一个角色。比如传统行业的公司须要支配一个大模型,目前基本上因此手工的方法来做适配,大家依然面临通用性的寻衅。而我们的办理方案是在中间做一层根本的软件平台层,有了这一层往后,底下的芯片就可以随意切换,上面的模型也可以随意切换,它们之间不再是一个紧耦合的状态了。
在模型收敛、算力巨量、运用激增的情形下,现在很少有开拓团队写最底层的模型,更多的事情是在微调开源模型,这也导致适配层面的稀薄、薄弱成为共性问题。目前大家都在办理「如何让已有的运用在国产芯片上运行起来」。按发展态势来看,「往后要开拓新的运用怎么办」的问题会加剧显现出来。
我们在做的通用性的软件工具便是为理解决这些问题存在的。我们要用一套软件工具,实现大模型运用在国产算力平台上的 0 本钱适配、0 损耗实行、0 延迟支配。
机器之心:给不同的国产芯片去供应相对统一的一个平台,是件很有寻衅的事。
崔慧敏:确实是这样,这也是碎片化的生态带给运用方的一个寻衅。由于不同的芯片,首先底层的架构就不一样。海内的芯片大概分成两种,一种是类 GPU 架构,一种是 NPU 架构。我们肯定不肯望运用层须要针对每一家不同的芯片去重新构建自己的程序,也不能哀求每一家硬件厂商都供应足够丰富的算子让运用层利用。以是这里面就有一个寻衅,若何通过一套工具把不同的架构归拢在一起?
这里我们会有不同层次上的考虑。像大模型,我们便是从框架或引擎的层面上进行统一。比如算子层有统一的接口,我们就能够统一纳入考虑。其余便是可以通过算子转换工具,或是算子天生、编译等优化方法,这些方面我们都布局了干系的产品线。
不过,这里面也有一个抵牾,便是你一旦通用了,性能就会受影响。如何能够做到既通用又尽可能降落性能丢失,这是我们冲要破的核心问题,是技能侧的寻衅。
由于芯片本身的研发节奏不一样,我们还会受到不同芯片厂商本身研发节奏和软件工具链研发节奏的影响。
在商用侧,本钱、性能、效率是绕不开的问题,我们希望通过一套稳定、可靠的适配优化平台,实现软硬件协同、平衡本钱、性能、效率的最优解。
大模型时期,也是编译器的黄金时期,
建好一座「桥梁」
机器之心:2019 年,两位图灵奖得到者 ——John Hennessy 和 David Patterson 刊文说,打算机架构正在迎来一个新的黄金时期。而作为驱动打算机架构改造的主要组成部分,编译器也在迎来它的黄金时期。能否根据您过去几年的经历、体会谈谈对这句话的理解?
崔慧敏:对,我以为确实是这样。这个黄金时期不只是科研事情的黄金时期,也是培植国产芯片生态的黄金时期。
从学术角度来看,近几年顶会上冒出来非常多 AI 编译干系的文章,包括底层编译,而且一贯在飞速增长。以前这类文章很难发在顶会上,比如 ASPLOS 这样的顶会。
中科加禾两篇模型推理干系论文揭橥于打算机体系构造顶会 ASPLOS’2024,干系技能已经融入公司产品。来源:https://mp.weixin.qq.com/s/vx8mfmDmhJz3InhdZSQuSQ)
从家当角度来看,在国外,提出「编译器黄金时期」的大牛 Chris Lattner 本身也创办了自己的公司 ——Modular AI。在海内,受 Modular AI 的启示,投资人判断海内也有这样一个机会。实在,大家最初的出发点非常朴素,便是说从芯片的多样性上来说,中国一定是一个芯片最多样化的市场,这个市场一定会对编译提出一个统一的需求。在公司成立之后,许多投资人和家当伙伴来联系我们,希望达成互助。我们看到,无论是投资圈还是家当圈,大家都有一个共识,那便是编译器领域存在明显的市场机会。
在发展进程上,编译器是轻微滞后于体系架构的。以是当体系架构的黄金时期到来之后,紧接着就会迎来编译器的黄金时期。我们也是跟做硬件、软件、算法的伙伴都做了互换磋商之后,才终于确信这对我们来说是一个很好的机会。
机器之心:根据您的不雅观察,在大模型时期,AI 加速的需求正在发生若何的变革?
崔慧敏:我以为分为两个方面。一方面,AI 大模型会给未来的硬件带来一些新的机会,由于它们确实和以前的模型不一样了,它们会对优化办法提出很多不一样的哀求。以是我们看到做 LPU 的 Grok 就针对大模型提出了新的硬件架构。实在海内的很多厂商也在探索类似的事情,便是怎么针对 Transformer 做更好的硬件加速。我以为这方面迭代会很快。
其余一方面便是大模型须要的绝对算力确实是太大了,以是它对性能的哀求是极致的,要从全体链条的环节上去压缩本钱。AI 1.0 时期的模型,芯片性能发挥到百分之四五十也可以。但是现在,你要把每一点代价都充分挖掘出来,一定要极致地去压榨芯片的性能,以是它对优化 —— 无论是硬件的优化还是软件的优化 —— 都提出了不一样的寻衅。
在这个背景下,我们以为,大模型推理侧的市场会非常大。在大模型推理侧,大家面向的场景可能会非常不一样,对模型大小的需求也不一样,以是这会是第一个非常多样的市场,便是多种大模型推理芯片共存,以是对碎片化生态的整合需求也比较大。
机器之心:我们看到,在这次的大模型浪潮中,AI 芯片的国产替代进程正在加快,那么与之强关联的编译器能做到多大?
崔慧敏:编译器分两个观点,一个是芯片本身的编译器,我们把它叫做底层编译器,这个肯定是每个芯片公司来做的。我们做的是更上层的编译工具软件,这个软件基本上是用来完成开放生态和国产芯片底层的对接这件事。我们之间是相互合营的关系。AI 芯片的国产化替代是一个不可避免的过程,而且本身大模型对卡的需求也会有一个增长,以是我们以为未来国产芯片的市场还是会快速增长的。
2023 年,中国 AI 芯片市场规模已经超千亿元,英伟达仍旧独占最大份额,如果国产芯片替代率可以在 3 到 5 年内达到 50% 或更高,再加上 AI 算力本身需求的增长,国产 AI 芯片的市场规模可能也会很快达到千亿公民币的水平。伴随着大模型和算力市场的双重推动,我们做根本举动步伐软件的机会还是很大的。
在成立之初,我们定下的目标便是争取让我们的软件装到每一块国产卡上去。当然,这不是说我们要管每一个国产芯片厂商去收钱。我们的付用度户可能是多方的,比如集成商、云的培植方、智算中央的培植方…… 我以为只要我们能把国产卡变得更好用,那市场是认可来给这个软件付费的,毕竟现在 AI 能创造的代价太大了。
机器之心:现在大模型落地的速率很快:手机 SoC 正在加入大模型优化机制,电脑也涌现了 AI PC 的观点。在消费电子端,海内公司在打算架构层是否会有机会?
崔慧敏:机会还是挺多的。像现在的聪慧屏、学习机、儿童互动游戏举动步伐已经把大模型的对话能力、措辞能力利用起来了。由于这些领域落地本钱没那么高,市场需求也比较明朗,比较随意马虎针对家庭环境、家庭成员来做定制,以是我以为大模型会在家居场景中很快落地。其余值得关注的便是 AI PC,以及端侧 NPU 的加入对大模型落地的推动,这可能带来新的办公模式。
机器之心:中科加禾会往这方面布局吗?
崔慧敏:也会发展。我们的大模型推理引擎分云侧和端侧,以是端侧我们也在做,也在打仗一些厂商了。
机器之心:您之前演讲提到,随着 AI 时期的到来,编译器的内涵和外延正在不断扩大,能否阐明一下这个现状?
崔慧敏:我们以为 PyTorch 的路径是能够代表这个方向的。实在最早我们说编译器的时候可能做类比的便是 CUDA,CUDA 往下叫编译器。这是严格意义上传统的芯片编译器,便是类似 CUDA 把程序翻译到英伟达的 GPU 上去。对应到我们国产芯片也都有各自的底层芯片编译器。
到了 AI 时期,大家在框架层面也做了很多编译器的事情。大家会把这一层叫 AI 编译,包括 TVM、XLA 等。这个时候,编译的观点就往上走了一些。但是进到上层,大家原来做的事情并没有那么多,可能更多是图的领悟、张量的优化之类的。
但是我们现在看 PyTorch 2.0 实在是把全体编译的观点大大延伸了,它把图上的编译、动态性的处理等都纳入到它的架构里了。当然,它的这个设计也是为了未来让更多的芯片能够比较随意马虎地接入进来。它中间有很多层,每一层都有很多编译技能的支撑,让它能够更灵巧、更通用。
我以为编译的目的便是让全体系统变得更灵巧、更通用。由于全体 AI 系统一开始构建起来的时候,走的是一个快速路线,即让更多人更随意马虎地用起来。但是在对硬件的支撑和适配方面,原来没有考虑那么多,考虑更多的还是算子的接入,也便是硬接入的办法。PyTorch 2.0 更多的是把对算子的依赖变成自动天生算子:工程师在上面写一个算子,它可以一点一点自动天生。作为一个芯片后端,只要把这个接入做好,就能很好地接入到全体生态里面去了。大家都在朝着这个目标去努力。
以是我们看到编译的外延实在逐渐被延伸到了全体的 AI 框架里。大家在每一个层面上都会包含很多编译的能力和理念。包括像 MLIR 这样的编译的根本平台,也是希望能够通过从最高层接入编译的一些知识,中间层是编译的剖析,最底层是编译的映射,这种架构设计,让运用能够更随意马虎、更快地映射到不同的平台上去。
我以为对付编译而言,问题还是在于怎么能在软件和硬件之间建立一个更好的桥梁。在 AI 时期,这个桥梁可能不是一下子就建好的,须要一层一层来建。这便是我们正在做的事情。
「聚芯片之协力,筑国产之生态」,让国产芯片更好用是我们的初心,也是我们的梦想。