一文了解国产算子编程语言 TileLang,TileLang 对国产开源生态的影响与启示
🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/
文章目录
- 一、TileLang 是什么?
- 二、TileLang 的设计思想
- 三、TileLang 的核心技术
- 3.1 Tile 级抽象:贯穿始终的核心思想
- 3.2 自动调度与推理机制
- 3.3 分层编程范式
- 四、TileLang 作者团队与项目发展
- 4.1 北大杨智团队:深耕 AI 系统研究
- 4.2 项目发展历程与成果
- 五、开源生态与社区建设
- 5.1 开源进展与社区活跃度
- 5.2 产学研融合的创新模式
- 5.3 开发者培养与社区赋能
- 六、TileLang 对国产开源生态的影响与启示
- 6.1 从 "可用" 到 "好用":提升国产硬件开发体验
- 6.2 加快构建自主可控的技术体系
- 6.3 开源生态与商业化共赢
- 七、总结与展望
一、TileLang 是什么?
随着人工智能(Artificial Intelligence,AI)技术的迅猛发展,深度学习模型的复杂度和规模正呈指数级增长,这给底层计算效率带来了前所未有的挑战。AI 算子是构成深度学习模型的基本计算单元,其性能直接决定了整个模型的训练和推理效率。然而,传统的算子开发语言存在诸多瓶颈。例如,CUDA 编程门槛高;Triton (提供了领域专用的语言和编译器)等现有领域专用语言(Domain-Specific Language,DSL)在自定义高性能 Kernel 方面灵活性不足;TVM 和 Tensor IR 的调度代码复杂且难以维护。在此背景下,一款名为 TileLang 的新兴国产 AI 算子编程语言应运而生。
TileLang 起源:王磊博士发现现有的领域特定语言(DSL)均无法充分满足其需求,因此他计划开发一种新的 DSL,以支持更多后端及自定义算子,并实现较优性能。为实现性能目标,需对 Tiling、Pipeline 等多种设计空间进行系统性优化。基于此,他与合作者共同提出了 TileLang 项目。
TileLang 的论文链接:https://arxiv.org/abs/2504.17577
TileLang 的官方文档:https://tilelang.tile-ai.cn/
TileLang 的 GitHub 主页:https://github.com/tile-ai/tilelang
Tile Language(tile-lang)是一种简洁的领域专用语言,也是一款开源的 AI 算子编程语言,它由北京大学计算机学院 杨智副教授 团队主导开发,王磊和程羽是其中的核心开发成员,也是论文的共同一作。
TileLang 旨在简化高性能 GPU/CPU 内核(Kernels)的开发,例如 MLA(Multi-Head Latent Attention)、GEMM(GEneral Matrix Multiplication)、Dequant GEMM、FlashAttention 和 LinearAttention 等。通过在 TVM 之上构建底层编译器基础设施,并采用 Pythonic 语法,tile-lang 使开发者能够专注于提升开发效率(门槛较低、易用),而无需牺牲实现最佳性能所需的底层优化。
TileLang 的核心价值在于能够将高级数据流描述自动转换并优化为高效的底层代码(如 CUDA C/C++、Ascend C 等)。值得一提的是:华为昇腾通过 PTO (Parallel Tensor/Tile Operation)编程范式,已成功适配 TileLang 的 Sparse Flash Attention 和 Lightning Indexer 算子,并进行了相应优化,进一步提高昇腾融合算子的编程易用性。
TileLang 实际通过独特的 Tile 级抽象和自动调度与 Layout Inference Pass 机制,开发者能够以更简洁的代码表达复杂计算,并获得最先进的性能,从而显著提升 AI 算子的开发效率。
为什么命名为 “TileLang”?
-
“Tile” 一词在高性能计算中特指计算分块技术,这是优化内存层次结构访问效率的关键方法。不论是 CPU 的多级缓存系统,还是 GPU 的共享内存与寄存器层次结构,合理的分块策略都是实现高性能计算的必备条件。
-
TileLang 将这一技术概念转换为语言的核心抽象机制,使开发者能够直观描述计算分块策略,同时支持编译器实施智能优化。
二、TileLang 的设计思想
TileLang 的设计目标可概括为:通过引入创新的编程范式,从根本上解决 AI 算子开发中性能与效率难以兼顾的核心矛盾,让「算法人」不用啃 CUDA 也能写出硬件级性能。下表清晰地展示了其在不同维度上的具体设计目标:
设计维度 | 核心目标 |
---|---|
🎯 核心理念 | 将复杂的硬件调度与开发者的算法逻辑解耦 |
💻 开发效率 | 显著降低 NPU/GPU 算子编程的门槛和代码量 |
🚀 高性能保障 | 追求生成代码的性能可比肩甚至超越专家编写的优化内核,在多种常见算子上的测试表明,其性能可达业界领先水平的 95% 以上。 |
🔧 灵活与扩展 | 提供不同层次的编程接口,以支持专家深度优化与初学者快速上手 |
🌐 生态与国产化 | 支持多种硬件后端,当前版本已支持昇腾(Ascend C)、NVIDIA GPU(CUDA)、AMD GPU(ROCm)、寒武纪(BANG C)和沐曦(MXMACA)等主流 AI 加速硬件,助力国产 AI 芯片的软件生态建设 |
除上述表格所列内容之外,TileLang 还有一些更深层次的设计思想值得关注:
-
分层编程模型:TileLang 创新地提供了高、中、低三个层次的编程接口。初学者可像书写数学表达式般描述算法;开发者可利用内置的 Tile 程序库进行更好的硬件感知编程;专家(如 DeepSeek 团队)则可直接使用线程级原语执行极限优化。这一设计显著拓宽了其适用人群范围。
-
以 “Tile” 为核心抽象:TileLang 将高性能计算中关键的 “分块” 技术提升为语言的一等核心抽象。开发者直接对数据块进行操作,从而屏蔽了底层复杂的线程组织与内存管理细节。
在最新的 DeepSeek-V3.2-Exp 发布后,DeepSeek 开源了基于 TileLang 的算子版本。王磊随后发 Twitter 帖子,称赞 DeepSeek 勇于采用新型编程语言开发核心产品的举措。此外,DeepSeek-V3.2-Exp 的成功实践也验证了 TileLang 确实具备支持大模型训练的能力。
三、TileLang 的核心技术
3.1 Tile 级抽象:贯穿始终的核心思想
TileLang 的核心技术优势源于其统一的 Tile 级抽象。在高性能计算领域,Tiling(分块)是优化数据局部性、提升缓存利用效率的关键技术。TileLang 将这一概念从简单的循环分块提升为一级语言抽象,使开发者能够以数据流为中心描述计算过程,而无需过度关注硬件实现细节。
与传统领域专用语言相比,TileLang 的创新性体现在将调度空间(包括线程绑定、内存布局、张量化和流水线并行)与数据流解耦,并将其封装为一组可定制化配置的注解和原语。这一架构设计使得开发者能够聚焦于计算内核的数据流逻辑,而将大部分优化任务移交编译器处理。实际应用表明,该抽象机制显著降低了代码复杂度 —— 以 FlashAttention 算子为例,其实现代码从逾 500 行缩减至 80 行,同时保持与基准版本相当的性能水平。
3.2 自动调度与推理机制
TileLang 中的编译器集成了先进的自动推理机制,能够在多个层面优化算子的性能表现:
-
TileLang 引入了一套完整的布局推理系统(Layout Inference Pass),用于描述数据在内存中的组织与映射方式。该系统涵盖严格布局推理(适用于矩阵乘法等具有强布局约束的算子)和通用布局推理(用于推导相连表达式的布局),使编译器能够自动确定最优内存布局。
-
并行推理:通过 T.Parallel 等原语,编译器能够自动推导出适合目标硬件的并行策略,包括线程绑定与向量化优化。这里引入了 Layout,用于描述数据在 Memory 中的组织和映射方式,以支持「T.Parallel」。例如,在给定 Kernel 上下文中共有 128 个线程时,若将 Copy 操作用 T.Parallel 包装,编译器即可自动推导出其高性能实现形式,并最终通过代码生成(Codegen)输出为优化的 CUDA 代码。
-
内存层次优化:TileLang 允许开发者精确有效控制数据在内存层次结构中的流动。例如,可将数据缓存至寄存器,在反量化后写入共享内存,或直接写回共享内存。这种灵活性使得专家开发者能够针对特定硬件特性实现深度优化。
3.3 分层编程范式
为满足不同背景的开发者的需求,TileLang 创新性地设计了多层级编程范式。这种分层设计既能让硬件专家充分发挥极致性能,又能帮助初学者和算法研究人员快速实现创意,从而显著拓宽了该编程语言的适用场景。
# Level 1: 专家级编程 - 直接控制硬件细节
@tilelang
def kernel_expert_level(A: [128, 128], B: [128, 128]):# 直接指定线程配置和内存层次for i in range(128):for j in range(128):# 精确控制计算和内存访问...# Level 2: 开发者级编程 - 使用 Tile 级抽象
@tilelang
def kernel_developer_level(A: [128, 128], B: [128, 128]):# 使用 Tile 原语描述计算T.copy(A, B)T.reduce(A, B)...# Level 3: 初学者级编程 - 高级表达式
@tilelang
def kernel_beginner_level(A: [128, 128], B: [128, 128]):# 直接描述数学表达式C = A @ B...
TileLang 的多层级编程范式支持如下表所示:
即使不熟悉 CUDA 编程的算法研究人员,现在也能高效开发高性能算子,并更便捷地适配国产硬件。
四、TileLang 作者团队与项目发展
4.1 北大杨智团队:深耕 AI 系统研究
TileLang 由北京大学计算机学院杨智副教授领导的科研团队研发。杨智老师是北京大学计算机学院的副教授、博士生导师,拥有国家高层次青年人才称号,在深度学习模型的分布式并行、计算优化、算法与系统设计方面具有深厚积累。
该团队的研究特色鲜明,采用自顶向下的系统性研究方法,注重培养学生构建从上层算法应用到底层数据处理与计算系统的全方位能力。该团队长期与阿里巴巴、微软研究院等产业界领先机构保持密切合作,开展联合研究与人才培养,使学生能够接触实际需求、数据与系统,有效提升科研与实践能力。这种产学研深度融合的模式为 TileLang 的研发提供了坚实支撑。
4.2 项目发展历程与成果
关于国产算子编程语言 TileLang 的起源和发展,虽然其项目历史不长,但进展迅速,已在业界引起关注并得到了实际应用。按照时间线梳理了其从概念提出到近期应用的关键节点,如下图所示:
TileLang 项目虽然相对年轻,但已取得一系列令人瞩目的成果:
-
开源表现亮眼:TileLang 在 GitHub 上开源仅两个月,便获得约 800 个星标,并吸引超过 280+ 位开发者加入社区,体现出学术界与工业界的广泛关注,发展到 2025 年国庆节假期期间,TileLang 已获得 2.5K+ 星标。
-
技术生态合作:项目与 vLLM、SGLang 等主流大模型推理引擎项目建立了技术生态合作关系,逐步构建起自身的技术影响力圈。
-
行业认可:在 2025 年 9 月华为全联接大会开发者日上,TileLang 作为代表性创新成果亮相。团队核心成员董宇骐现场演示了 TileLang 在 FlashAttention 算子开发中的显著优势 —— 代码量由 500 余行精简至 80 行,同时性能可能跟最先进的专家优化的内核 FlashMLA 相当。此外,最显著的进展是其已被 DeepSeek 团队在 DeepSeek-V3.2-Exp 模型的开发中正式采用,这证明了其工程实用性。在新模型的研究过程中,需要设计和实现大量新的 GPU 算子。 DeepSeek 采用高级语言 TileLang 进行快速原型开发,以支持更深层次的算法探索。在最终实现阶段,以 TileLang 版本作为精度基准,逐步使用底层语言实现更高性能的版本。因此,DeepSeek-V3.2-Exp 开源所包含的主要算子均提供 TileLang 与 CUDA 两种实现版本。DeepSeek 还建议研究者在进行探索性实验时,优先使用基于 TileLang 的版本,以便于调试和快速迭代。
-
推动国产生态:TileLang 能有效适配华为昇腾、寒武纪、沐曦等国产 AI 芯片。它与国产大模型、国产芯片的协同发展,对于构建自主可控的中国 AI 技术生态具有一定的战略意义。
TileLang 的性能表现已在多个关键 Kernels 上得到验证,包括 FlashAttention、MLA(Multi-Head Latent Attention)等复杂算子。评估结果表明,TileLang 在这些 Kernels 上可实现业界领先的性能,充分展示了其统一的 block-and-thread 编程范式和透明的调度能力。
在 H100 上,MLA 的解码性能比较如下图所示:
在 H100 上,Flash Attention 的解码性能比较如下图所示:
参阅更完整的实验结果,请看论文:https://arxiv.org/pdf/2504.17577
五、开源生态与社区建设
5.1 开源进展与社区活跃度
TileLang 秉承开源开放的原则,自 2025 年 1 月在 GitHub 开源发布以来,迅速受到 AI 编译器与算子开发社区的广泛关注。在短短两个月内,该项目便斩获了约 800 个星标,吸引了超过 280+ 位开发者加入社区,形成了活跃的技术交流氛围,发展到 2025 年国庆节假期期间,TileLang 已获得 2.5K+ 星标。这一快速的社区成长,充分反映出业界对更高效 AI 算子开发工具的迫切需求。
在技术生态建设方面,项目已取得初步成效,并与 vLLM、SGLang 等知名开源项目建立了生态合作,进一步扩大了其技术影响力。此类合作不仅有助于 TileLang 在更广泛的场景中应用,也推动了项目自身的持续优化与完善。
5.2 产学研融合的创新模式
TileLang 的发展模式体现了产学研深度融合的先进理念。作为北京大学计算机学院的科研项目,它既保持了学术研究的前瞻性与创新性,又紧密契合产业界的实际需求。团队与阿里巴巴、微软研究院等机构建立的合作关系,有效推动了研究方向与产业需求之间的协同。
在 2025 年 9 月举办的华为全联接大会上,TileLang 作为鲲鹏昇腾生态的一项创新成果展出,体现了其在国产硬件平台中的深度集成能力。目前,TileLang 已实现将高级数据流描述自动转换并优化为高效的 Ascend C 代码(即华为昇腾的 AI 算子编程语言),从而为国产 AI 算力平台带来更友好的开发体验。
5.3 开发者培养与社区赋能
TileLang 团队高度重视开发者生态建设,并通过多种方式降低学习门槛、促进知识共享:
-
完善文档与示例:开发团队对项目文档进行了全面升级,提供了从基础语法到高级特性的丰富示例代码,以帮助开发者快速掌握 TileLang。
-
性能基准测试:文档中新增了性能基准测试部分,展示 TileLang 在不同硬件平台上的表现,为开发者在性能评估与优化方面提供参考依据。
-
预构建二进制包:项目提供了基于 CUDA 加速的预构建二进制包,主要适配 Ubuntu 20.04 系统与 Python 3.10 环境,大幅简化了 TileLang 在支持 CUDA 的 GPU 环境中的部署流程。
-
答疑:Discord、微信交流群
六、TileLang 对国产开源生态的影响与启示
6.1 从 “可用” 到 “好用”:提升国产硬件开发体验
随着中美科技竞争持续加剧,发展自主可控的 AI 算力已成为国家层面的战略需求。在此背景下,国产 AI 芯片(如华为昇腾、寒武纪等)不仅需要在硬件性能上具备竞争力,更离不开成熟软件生态的有力支撑。TileLang 通过与鲲鹏昇腾生态的深度整合,为国产 AI 芯片提供了易用的开发工具,显著降低了开发者的学习成本与使用门槛。
在华为全联接大会 2025 的开发者日活动上,TileLang 展示了将高级数据流描述自动转换为高效 Ascend C 代码的能力,这一技术对改善国产 AI 芯片的开发者体验具有重要意义。传统上,在昇腾平台上开发高性能算子需熟练掌握 Ascend C 编程,而 TileLang 则允许开发者使用更贴近上层的 Pythonic 语法描述计算过程,并自动生成高度优化的底层代码,从而显著提升了开发效率。
6.2 加快构建自主可控的技术体系
互联网上有种说法,国产化替代在开源软件领域的应用可分为三个阶段:封装换皮、融会贯通与创新迭代。TileLang 已超越初级的 “封装换皮” 模式,进入 “融会贯通” 阶段,并正朝着 “创新迭代” 的目标迈进。它并非对现有领域专用语言的简单封装,而是基于对 AI 算子开发核心挑战的深入洞察,提出了创新的 Tile 级抽象与自动调度机制,这种基于开源理念而又不拘泥于现有开源技术的创新范式。
TileLang 的发展体现了在基础软件领域构建自主可控技术体系的重要性。实际上,TileLang 并没有完全从头开始设计编程语言,而是选择 Python 作为宿主语言,借鉴了现代领域专用语言设计的优秀理念,同时针对 AI 算子开发的特定场景进行了创新性探索。这种策略平衡了技术自主性与发展效率之间的关系 —— 既避免了完全从零开始的高成本,又确保了核心技术的可控性和创新性。在 AI 编译器这一关键基础软件领域,这种发展模式具有重要的参考价值。
6.3 开源生态与商业化共赢
TileLang 坚持开源开放的技术路线,通过社区协作推动项目发展。这种模式实际有助于形成广泛的技术共识和生态支持,避免重复造轮子,从而集中有限资源攻克关键技术难题。以禅道项目管理软件为例,开源、开放与共享不仅能够加快技术迭代速度、降低技术准入门槛,其透明性也有助于构建可信的技术体系。
对 TileLang 这类基础软件来说,开源不仅是开发模式,更是技术推广和生态建设的有效途径。通过吸引学术界的研究者与工业界的开发者、从业者共同参与,TileLang 有望加速成熟与完善,形成良性循环的开源生态。
七、总结与展望
TileLang 作为一款新兴的 AI 算子编程语言,未来可期,凭借其创新的 Tile 级抽象设计、多层级编程范式和强大的自动调度能力,为 AI 算子开发提供了兼具高生产效率与高性能的解决方案。它的问世恰逢其时,既满足了日益复杂的 AI 模型对高效算子的迫切需求,也为国产 AI 芯片的软件生态建设提供了有力支撑。
从技术层面看,TileLang 的核心优势在于将调度优化与计算描述相分离,使开发者能够专注于数据流本身,而将性能优化任务交由编译器自动完成。这一设计理念使 TileLang 在保持代码简洁性的同时,仍具备优异的性能竞争力,从而实现了开发效率与运行效率的良好平衡。
从生态影响角度而言,TileLang 展现了国产基础软件从 “使用开源” 到 “贡献开源” 再到 “引领开源” 的演进路径。它基于对 AI 算子开发痛点的深入洞察,提出了创新解决方案,并与国产硬件平台深度集成,为构建自主可控的 AI 技术生态提供了关键支撑。
展望未来,TileLang 仍面临诸多挑战与机遇。在技术层面,需持续扩展对更多硬件后端的支持、优化自动调度算法的效能,并增强语言表达能力与调试体验。在生态层面,需要吸引更多开发者参与贡献,拓展工业应用场景,建立可持续发展的开源社区运营模式。
TileLang 的发展实践表明,在基础软件领域,国产化替代绝非简单的 “封装替换”,而是需要深入理解并消化开源技术,结合具体应用场景进行创新迭代,最终构建具有自主核心竞争力的技术体系。唯有如此,方能在 AI 技术 “黑土地” 上培育出自主成果,构建健康繁荣的生态体系。随着 AI 技术的持续演进及国产算力崛起的背景下,对高效 AI 算子的需求将日益迫切。TileLang 作为一种高效的 AI 算子编程语言,凭借其统一的编程模型、自动化的优化机制和硬件感知能力,将成为国产算力生态中不可或缺的组成部分。
📚️ 参考资料链接:
-
DeepSeek-V3.2 背后的国产算子编程语言 TileLang 是什么?如何保持性能领先的同时减少 6 倍代码量?
-
DeepSeek-V3.2-Exp 发布,训练推理提效,API 同步降价
-
Tile 级原语与自动推理机制融合,TileAI 社区发起人王磊博士深度剖析 TileLang 核心技术与优势
-
DeepSeek 突然拥抱国产 GPU 语言!TileLang 对标 CUDA 替代 Triton,华为昇腾 Day 0 官宣支持适配
-
什么是 TileLang?为什么国产算力离不开 TileLang?
-
90 行代码干翻 500 行 CUDA?DeepSeek 拥抱的 TileLang 是啥黑科技?
-
TileAI 社区与昇腾完成对接,携手推动开源生态发展
-
昇腾 Day 0 支持 DeepSeek-V3.2-Exp,PyPTO/TileLang 加速算子编程
-
华为全联接大会 2025 丨高校创新力量 “花开” 开发者日,鲲鹏昇腾使能科研创新