Triton生态 | 突破CUDA束缚,拥抱开放与多元的未来
直至今天,Triton已然走出了NVIDIA GPU的舒适区,连接起了更多不同的后端,除了设计相似的GPGPU,也有架构迥异的DSA芯片在拓展对Triton的支持,甚至在CPU、RISC-V领域也开启了迁移的探索。不可否认,CUDA生态历经多年的大浪淘沙仍旧在高性能计算领域处于强大的优势地位,无论是领先的硬件架构和芯片算力、成熟完整的开发工具链、还是独占鳌头的市场占有率,都让它成为AI大模型行业的
Triton的雏形诞生于一张多年前的NVIDIA GeForce GTX1070显卡,尽管在高性能计算芯片层出不穷的今天,它的算力已经不再是行业翘楚,但Triton对于突破CUDA生态的雄心壮志从未减弱。
CUDA生态现状
不可否认,CUDA生态历经多年的大浪淘沙仍旧在高性能计算领域处于强大的优势地位,无论是领先的硬件架构和芯片算力、成熟完整的开发工具链、还是独占鳌头的市场占有率,都让它成为AI大模型行业的首选。而CUDA的竞争者们宥于开发成本、性能水平、硬件基础等诸多因素,也一直无法与CUDA匹敌。
后起的芯片厂商为了方便用户接纳和融入现有生态,往往会选择跟随CUDA来建设自己的软件工具,将CUDA的算子库、编译器、分析工具等移植到自研的AI芯片上,由此来鼓励用户方便地切换后端支持。然而CUDA的生态迁移需要克服以下诸多难题:
-
硬件编程接口限制:CUDA的整体设计基于NVIDIA GPU,与原生平台深度相关,替换芯片后端受到硬件差异的局限,需要专门的支持处理,或在功能性能上做出让步;
-
迁移任务繁重:CUDA上下游由一系列软件工具支持,厂商迁移工作量庞大,这要求众多的人力投入并带来冗长的开发周期;
-
性能追赶难度高:CUDA的高性能算子实现以NVIDIA GPU为基础和依赖,大量手写算子需要熟悉硬件和编译的专家针对自研平台深度优化,难以保证性能表现;
-
底层生态相互隔离:芯片厂商在算子库层次与CUDA对齐,而底层实现各具特点、各建体系,无法复用经验、协同配合;
-
生态地位局面被动:CUDA生态完全由NVIDIA主导,其他厂商只能保持长期跟随,无法避免地落后于原生CUDA,充当“平替”的角色。
Triton生态优势
Triton的核心竞争力之一在于其开源特性。开源一方面保证了Triton语言和编译器的更新时刻保持对生态参与者的公开透明,另一方面则允许包括厂商在内的贡献者提出特定的功能需求、加入硬件相关的思考、甚至影响项目的发展走向。厂商能够借助开源的平台,及时地跟进项目最新的设计实现,或者成为生态建设的领导者之一,保持在生态当中的先进位置。
相比CUDA已经推出多个功能稳定、性能卓越且广泛使用的版本,而Triton则仍然处在快速迭代、有待完善的过程当中。我们可以把它视为完成度上的缺陷,也可以从中发现建立生态的机遇优势,即Triton虽然基于NVIDIA GPU开发,但尚未与NVIDIA硬件产生强关联,更加容易与其他芯片厂商相互接纳。从厂商的立场出发,摆脱CUDA的笼罩、融入新生态,能够带来差异化竞争的机会;而对于Triton建设而言,适配更多元的AI芯片也有助于语言和生态的推广,进一步促进自身的提升。
NVIDIA与AMD开发者的加入就是对这一优势的践行与验证。Triton在中间语言设计了针对NVIDIA GPU和AMD GPU的方言与操作,为两大主流芯片开放了硬件相关的专属IR特性,也为更多厂商提供了多后端方案的实现范本。
Triton生态现状
直至今天,Triton已然走出了NVIDIA GPU的舒适区,连接起了更多不同的后端,除了设计相似的GPGPU,也有架构迥异的DSA芯片在拓展对Triton的支持,甚至在CPU、RISC-V领域也开启了迁移的探索。而前端模型向PyTorch的收敛趋势,也使得Triton可以应用于多数主流模型,隐藏AI大模型开发者和用户对后端的感知,实现对CUDA生态的便捷替换。
由智源与多家AI芯片厂商协同参与建设的Triton生态概况如图所示。
随着算力需求急速增长和新兴异构芯片大量涌现,构建易于迁移、广泛接纳的统一生态尤为紧迫,Triton无疑提供了宝贵的机会,使芯片厂商能够规避对齐CUDA生态的种种困境。智源研究院推出的FlagGems和FlagAttention正是在这样的背景下,瞄准大模型对通用算子和专用算子的需求,以算子库的形式承担起衔接AI框架与编译器、打通上下游生态链路的任务。
作为深度学习框架衔接CUDA生态的替代方案,Triton可以支持动态或静态两种路线的下降方式:动态路线即为FlagGems与FlagAttention采取的算子库模式,开发者以Triton作为编程语言编写算子,在模型执行中实时地调用;静态路线的代表则是PyTorch Inductor,结合计算图优化技术,使用Triton作为目标语言来进行代码生成。而在Triton下层由不同厂商分别根据芯片特性作出适配,将硬件编程接口接入编译器,完成多元芯片向Triton统一的底层对齐。
截至本文发稿时,已有六家国产芯片厂商与智源积极共建、密切合作,将Triton编译器与FlagGems算子库协同迁移至多元异构芯片的平台上,同时也有更多厂商开展了自主适配工作。如上图所示,自FlagGems开源发布1.0版本起,各厂商持续跟进FlagGems的开发步伐,逐步提高适配进度和计算性能,总体保持在80%以上的适配率。FlagGems在2024年共完成134个算子的开发目标,覆盖超过70%的大模型算子调用需求。
在过去的多年来,行业巨头固然带来了重要的技术突破,为AI大模型的里程碑式发展做出了不可磨灭的贡献;但我们同时也在期待着芯片行业的百花齐放,生态更包容、性能不妥协,以群策群力来创建高性能计算的新格局,将AI的热潮推向下一个高峰。
扫码回复“Triton”
加入Triton中文社区交流群
欢迎来到由智源人工智能研究院发起的Triton中文社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐
所有评论(0)