Triton开始,这款产品有哪些独特之处?

摘要:Triton,本文指 OpenAI Triton,先看官方介绍, Triton is a language and compiler for parallel programming. It aims to provide a Python
Triton,本文指 OpenAI Triton,先看官方介绍, Triton is a language and compiler for parallel programming. It aims to provide a Python-based programming environment for productively writing custom DNN compute kernels capable of running at maximal throughput on modern GPU hardware. Triton 是一个用于并行编程的 Python DSL,也是一个将计算映射到并行硬件的编译器框架。 两个视角, 算法研究:使用 Python DSL 快速实现高性能算子,无缝接入 PyTorch 生态 编译器开发:为自研 AI 芯片提供编译基础设施,可基于 MLIR 构建完整编译栈 它是一座连接高级算法思想与底层硬件并行性的桥梁,兼顾了生产力、性能与可移植性。 本文聚焦于 AI 编译器开发,想的是怎么把 Triton + MLIR 上手玩起来。 不过在此之前,先聊聊我写这篇文章的初衷。 为什么写 Triton? 我也是初次接触 Triton。那为什么想到写它了呢? 因为目前 AI 编译器的主流方向是 Triton + MLIR,正好打算深入学习一下。 但真要写 Triton,现在又有问题了,怎么写呢?如今问一问 AI 不就好了。 所以,文风与内容,打算稍作变化。啥意思,会多点‘废话’,多唠叨几句,不再简要成手册,这就由 AI 来做吧。 我呢,多谈谈自己的想法:一是让大家感觉更像是在和一个人交流;二是分享个人实践的经验,希望能对大家有所裨益。 GoCoding 定位,让大家了解技术上新的东西,或能引导大家进入新的领域。技术深入跟随会议或社区进展就好。 怎么来学 Triton? 官方渠道:不用多说,当然从官方渠道开始。不建议看我这样的二手信息。 那我写文的价值呢?一,对我个人最有用;二,让关注我的人能了解新的技术、发现感兴趣的领域,一起学习。 AI 辅助:与 AI 聊聊我的目标,看看它建议的学习路径。现在可真方便 ✌️ 那我们开始吧! 首先,了解一样东西,我不仅仅会了解它是什么、用做什么。就如文章开头对 Triton 的描述。我一般还会去了解背景:它的由来、发展历程。挖掘得细一点,有时还会发现一些有意思的小故事。 其次,就是对比。为什么是它,它的优势在哪,它在往什么方向发展。也就是了解一下它“到哪里去”的问题。更远的,未来的可能性与不确定性,学习并深入时可能会想一想。 之后,才是学习。笨办法,是我用得比较多的。就是,把一本书或官方教程,全部写一遍、跑一遍。当然,现在 AI 开道,免费导师,可以试试聪明办法了。又想起我自己说过的那句:AI:不懂的人用,则是引导者 😊 现在,就按上述思考,开始吧! Triton 的发展阶段 发展阶段 大致时间 核心特征与关键事件 技术栈与生态 主要目标用户 初创与原型 2018 - 2021 在OpenAI内部诞生,核心是为NVIDIA GPU提供比CUDA更友好的编程抽象。发表了开创性的学术论文。 独立的编译器,深度集成于PyTorch。后端主要为CUDA/NVVM。 AI研究人员、需要编写定制CUDA算子的开发者。 成熟与生态扩张 2021 - 2023 关键转折:基于MLIR重构。从“编译器”变为“编译器框架”,奠定跨硬件基础。前端DSL稳定,社区采用度激增(如FlashAttention)。 MLIR成为核心中间层。后端扩展至AMD GPU(ROCM)和Intel GPU(OpenCL/SPIR-V)。 高性能计算工程师、框架开发者、其他硬件厂商的编译团队。 平台化与工业部署 2023 - 至今 成为自研AI芯片的“上游编译前端”。其Triton IR(MLIR Dialect) 成为连接算法与多种硬件的关键抽象层。 基于MLIR的完整编译栈。出现针对不同自研硬件的定制后端。生态与Torch-MLIR等融合。 AI芯片公司的编译器团队、构建端到端编译基础设施的架构师。 Triton 的核心优势 Triton 核心优势:用 Python 写 GPU 算子,基于 MLIR 轻松跨硬件,已是 PyTorch 高性能算子的事实标准前端。
阅读全文