Tile级原语与自动推理机制融合,TileAI社区发起人深度剖析TileLang核心技术与优势

TileLang与Triton深度对比:跨平台GPU编程语言的技术选型指南 本文深入对比了TileLang与Triton两种跨平台GPU编程语言的技术特点与适用场景。TileLang基于TVM编译器框架,支持多级抽象和自动优化,特别适合多硬件平台部署和性能调优;Triton则深度集成PyTorch生态,提供更简洁的编程模型,适合快速开发和原型验证。文章通过实际案例展示了两种语言在矩阵运算、注意力机制等场景的性能表现,为开发者提供技术选型指南。 阅读详情

7 月 5 日,Meet AI Compiler 技术沙龙第 7 期在北京圆满落幕,既有来自产业界的专家分享最新进展及实战、落地经验,也有来自高校的研究学者详解创新技术的实现路径及优势。

其中,TileAI 社区发起人王磊博士以「Bridge Programmability and Performance in Modern AI Workloads」为题,深入浅出地介绍了创新的算子编程语言 TileLang,分享其核心设计理念与技术优势。

TileLang 旨在提升 AI kernel 编程的效率,将调度空间(包括线程 Binding 、 Layout 、 Tensorize 和 Pipeline)与数据流解耦,并将其封装为一组可自定义的注解和原语。这一方法使用户能够专注于 kernel 的数据流本身,而将大多数其他优化工作交由编译器完成。

评估结果表明,TileLang 在多个关键 kernel 上可实现业界领先的性能,充分展示了其统一的 Block–Thread 编程范式和透明的调度能力,能够为现代 AI 系统开发提供所需的性能与灵活性。

HyperAI 超神经在不违原意的前提下,对演讲分享进行了整理汇总,以下为演讲实录。

关注微信公众号「HyperAI 超神经」,后台回复关键字「0705 AI 编译器」,即可获取确认授权的讲师演讲 PPT 。

为什么需要「新 DSL」

本次分享主要为大家介绍我们团队于 2025 年 1 月 在 GitHub 上开源的 for AI Workloads 的新 DSL TileLang 。

首先想和大家聊一聊为何需要一个新的 DSL?

从个人角度出发,在我于微软的实习经历中,曾参与了一个名为 BitBLAS 的项目,研究混合精度计算,当时主要是基于 TVM/Tensor IR 来实现,最终也获得了非常好的实验效果。但是我们仍发现其有很多问题,例如难以维护——我针对每一个算子,比如矩阵层的混合精度计算写了 500 行 Schedule Primitives(调度原语),虽然写得比较优雅,但只有我自己能看懂这段调度代码,很难找到别人来维护或是扩展。

此外,我发现基于 Schedule 的这一套 IR 很难去描述新的需求或优化。例如,我做 kernel 就是自己写了 3 个 Schedule Primitive 来辅助优化程序,包括 Flash Attention 、 Linear Attention 等,这些算子基于 Schedule 是很难描述出来的。所以,我当时就认为,如果这个项目要继续 Scale 的话,用 TIR 可能是行不通的,需要其他方案。

那么,为什么不能是 Triton 呢?

我也尝试了 Triton,但是发现其很难自定义高性能 kernel 。举例来看,首先我在写 Dequantize 算子时可能需要控制每个线程的行为,如何在高性能 kernel 上实现每个线程的 Dequantize 还是很讲究的。

其次是如何将 Buffer 缓存到合适的 Memory Scope 。例如,在部分 GPU 上,将数据缓存到寄存器上进行反量化(dequantize),然后再写入 Shared Memory 会更好,而有些则是直接写回 Shared Memory 会更好。但在 Triton 上是很难控制的。

最后,我认为 Triton 的 Index 略显复杂。例如,如果需要将一个 Tile 缓存到 Local,则需要编写下图左侧所示代码,但是在 Tensor IR 上则可以像右侧所示用下标去索引,我觉得后者非常好。

基于此,我发现现有的 DSL 都不能满足我的需求,所以我们想做一个创新的 DSL,支持更多的后端和 Custom 算子,并且获得较好的性能。而面向较好的性能,则需要优化 Tiling 、 Pipeline 等各种各样的设计空间。为此,我们提出了 TileLang 这个项目。

什么是「TileLang」

为什么是「Tile」呢?

首先,我们发现 Tile 这个概念很重要。硬件只要是有 cache 的概念,有寄存器、 Shared Memory,那么在写高性能程序的时候就必须考虑计算分块,也就是 Tile 。 其次,因为考虑到大家都比较写 Python 的程序,所以我们要设计一个 Python-like 的编程语言,要像 Triton 一样好写,并且获得更好的性能。

针对于此,我们设计了如下图右侧所示的框架——如果你是一名专家(Expert),即很懂 CUDA 或是很懂硬件,则可以直接写很底层的代码;如果你是一名开发者(Developer),即会写 Triton 、懂 Tile 、寄存器等概念,则可以像写 Triton 那样去写一个 Tile 级别的程序;如果你是一个完全不懂硬件只懂算法的初学者(Beginner),那你可以像写 TRL 那样写一个高级的表达式,再通过 Auto Schedule 进行 Lower 成对应的代码。

如下图所示,左侧是我用 TIR 写的 Dequant Schedule,可以无缝地等价写成右侧 TileLang 的形式,实现了 Level 1 和 Level 2 共存。

接下来我会介绍一下 TileLang 的设计需要考虑哪些问题。

下图左侧是 DeepSeek MLA 的 TileLang 实现,大约有 50 行代码。在这个 kernel 上,我们可以看到,用户需要管理很多事情,例如在启动一个 GPU kernel(核函数)时,需要指定多少个 Block(线程块)来并行执行计算任务,要给每一个 Block 多少线程?这就是我们所说的 Tile Configuration,即下面的每段代码都是有上下文的,用户需要控制 Buffer 在哪个 Memory Scope 上,还需要决定 Shared Memory 或是寄存器的 Layout 是什么样的,还需要去关注 Pipeline 等等。这些都是需要编译器来帮助用户刦管理的。

针对于此,我们将优化空间分为了两类,一类是 Inference,即编译器直接帮助用户推导出较好的方案;一类是 Recommend,即通过推荐选择方案。

综合考虑所有优化空间之后,我们把一个原本由 500 多个代码块构成的高性能 FlashMLA 实现,压缩成了仅 50 行 TileLang 代码,并且保留了 95% 的性能。

下面,我将从 TileLang 的最底层开始为大家进行介绍。

如下图所示,对于 TIR 比较熟悉的同学应该能发现,这就是一个 TIR 表达式。那么,我们基于 TIR 是能够做到 PyCUDA 编程的,例如写两个 Python 的负循环,可以通过 TIR Codegen 成 CUDA 表达式。

如果我们使用 Thread primitives,例如向量化,则可以实现 CUDA 的向量化,从而更进一步地实现线程 binding 。上述都是 TIR 原本都具备的程序,用户就能够像写 CUDA 一样去把程序写出来了,但是用 Python 写的话还是复杂度较高的。

我们为了让用户操作更简便,就提出了 Level 1 Tile Library 的写法。举例来看,我们给定 kernel 上下文 128 个线程,然后将 Copy 用「T.Parallel」包起来,经过编译器的 Inference 就能够推导出刚刚展示的高性能形式,最终 Codegen 成一个 CUDA 代码。如果想更「优雅」一些,可以直接写「T.copy」,直接将 Copy 展开成「T.Parallel」的表达式。

而「T.Parallel」不仅可以做 Copy,还能实现复杂计算,能够自动实现向量化以及线程 Binding 。目前,除了 Copy 之外,我们还提供了 Reduce 、 Fill 、 Clear 等等 Tile Library 的集合。随后,基于 Tile Library 就能够像 Triton 一样写出一个很好的算子。

那么,支持「T.Parallel」的核心概念便是 Memory Layout 。

在 TileLang 中,我们支持使用高级接口对多维数组进行索引,例如 A[i, k] 。这种高级索引最终会通过一系列软件和硬件抽象层被转换为物理 Memory 地址。为了对这一索引转换过程进行建模,我们引入了 Layout,用于描述数据在 Memory 中的组织和映射方式。

对于 MLA 计算的 Layout 推导是如何实现的呢?通常,这一过程包括 3 个步骤。

第一步是 Strict Layout Inference,比如像矩阵乘这样的算子,对数据 Layout 有很强的约束,必须遵循指定的布局,与其相连的寄存器的 Layout 因此也是确定的。如果涉及 Shared Memory,并且我们知道这个算子需要进行 Spill(寄存器溢出)操作,那么相应的 Memory Layout 也会被确定下来。

第二步是 Common Layout Inference(通用布局推理)。比如,对于与上一步已确定 Layout 相连的表达式,它们的 Layout 也应该是确定的。举例来说,假设我们有一个 accum_s 到 scope_max 的 reduce 操作,其中 QMS 的 Layout 是通过矩阵层指定的,那么我们就可以基于它来推导出 scope_max 的 Layout 。通过这一层的通用推理,大部分中间表达式的 Layout 都可以被确定。

第三步是 Free Layout Inference,即对于剩下的 Free Layout 进行推导,其本身没有被强约束,所以通常会采用一些与与硬件对齐的 Layout Inference 策略,根据访问模式和 Memory Scope,推断出最优的 Layout 方案。

下面介绍一下 Pipeline 是如何做推导的。

一般情况下,我们可以手动展开 Pipeline,但这种写法对用户而言较为繁琐,不够友好。为此,TVM 中曾有工作探索了通过 Annotation 的方式简化该过程。用户只需指定循环的执行顺序(order)和调度阶段(stage),TVM 就可以自动将循环变换为与手动展开等效的结构(如下图中左下角所示)。

但对于用户而言还是比较复杂、麻烦的。所以,在 TileLang 中,我们将其缩减为「num_stage」,用户只需要指定「num_stage」数值,系统就可以自动分析计算中的依赖关系,并据此进行调度划分。在 GPU 或其他多数设备上,实际上只有 Copy 和 GEMM 可以实现真正的异步执行,尤其是 Copy 操作,它可以通过 ASYNC 或 TMA 等机制支持异步传输。

因此,在调度中我们会将 copy 操作单独抽离为一个 Stage,并自动为整个 Pipeline 推导出合适的 Stage 划分。当然,用户也可以选择手动指定调度方式,如左侧图示中的两种自定义排布。

此外,我们还支持基于硬件特性(例如 A100 和 H100 上的 TMA 模块)自动完成 Layout Inference 和调度优化。这部分工作来自我们今年将在 OSDI 25 上发表的项目 Pipe Threader 。

接下来给大家分享关于指令的 Inference 。

以矩阵乘法为例,针对「T.GEMM」可以调用的硬件指令有很多种。例如在 INT8 精度下,可能可以使用 DP4A 指令,或者用基于 TensorCore 的 INT8 实现。而每种指令本身又支持多种 shape,那么在这些实现中,如何选择最优的 Tile 配置就是一个关键问题。

为此,TileLang 提供了两种使用方式:

第一种是 TileLang 可以允许用户可以通过调 PTX 来写 ASM 。但这类方法的缺点是组合空间巨大 —— 如果要兼容全部 PTX,就需要写非常多的代码,同时还需要管理 Layout 。但是这个方法非常自由,我个人也很喜欢该方法。

但我们现在用的是第二种方式,即「T.GEMM」后面用 CUTE/CK-TILE 这种 Tile Library,其提供了矩阵乘常用的 Tile 级别的 Library 接口,但其缺点是由于基于模板展开,编译时间可能非常长。在 RTX 4090 上,编译一个 Flash Attention 可能需要 10 秒,其中 90% 以上的时间都消耗在模板展开上。另一个问题是,它与 Python 前端高度割裂。

所以我们认为,Tile Library 是我们未来会着重发力的一个方向,即通过 Tile 原生的语法支持各种各样的「T.GEMM」和「T.GEMMSP」这一类 Tile 级别的 Library 。

未来工作展望

最后为大家介绍一下我们团队未来的几项工作。

首先是 Tile Sight,其专门用于加速大规模复杂 Kernel(如 FlashAttention 和 FlashMLA)在大语言模型中的性能优化。这是一个轻量级的自动调优框架,旨在为 GPU 、 CPU 和加速器等多种后端生成和评估高效的 Tile 配置(即 tiling 策略或调度提示),帮助开发者快速找到性能优越的调度策略,减少手动调优时间。

基于上述的 custom model,用户就更加容易地去写一个很难的 kernel,例如 MLA,custom model 能够指导用户将每次 cache 放到对应的 shared 上。

下面是 TileLang 的部分性能评测,我们现在主要完成了 H 卡和 A 卡的支持,下图是代码行数和性能的关联对比图,越往左上角的性能越好。其中,对于矩阵乘而言, TileLang 可以获得与 CUTLASS 相近的性能。此外,像 MLA 、 Flash Attention 、 Block Sparse 等算子也可以获得和 CUTLASS 相似的性能,同时代码行数也相对较少,写起来也是比较「clean」的。

在 TileLang 的生态上,目前已经有一些用户在使用了,例如微软的低精度大模型 BitNet 模型的核心量化算子是基于 TileLang 来开发,微软的 BitBLAS 也是完全基于 TileLang 。在国产芯片支持方面,算能 TPU 和昇腾 NPU 我们也都做了一些支持。

发送到百科下的摘录最少摘录 100 字

TileLang 的沐曦 GPU 适配版本 一种简洁的领域特定语言,旨在简化高性能 GPU/CPU 内核的开发 Tile Language (tile-lang) 是一种简洁的领域特定语言,旨在简化高性能 GPU/CPU 内核(例如 GEMM、Dequant GEMM、FlashAttention、LinearAttention)的开发。通过在 TVM 之上采用带有底层编译器基础设施的 Python 语法,tile-lang 允许开发人员专注于生产力,而不会牺牲最先进性能所需的低级优化。 立即下载

相关推荐

华为云CodeHub代码托管

什么是代码托管 代码托管(CodeHub)是面向软件开发者的基于Git的在线代码托管服务,是具备安全管控、成员/权限管理、分支保护/合并、在线编辑、统计服务等功能的云端代码仓库,旨在解决软件开发者在跨地域协同、多分支并发、代码版本管理、安全性等方面的问题。 代码托管具有以下特性 · 在线代码阅读、修改、提交,随时随地开发,不受地域限制。 · 在线分支管理,包含分支新建、切换、合并,实现多分支并行开发,效率高。 master分支:最为稳定,功能比较完整,随时可发布的代码。 develop分支:用于平时开

LUJINYUANA的博客 1万+

什么是 TileLang?为什么国产算力离不开 TileLang?

TileLang:这是核心模块,负责编程语言的设计、跨平台支持和硬件优化。 FrontendInterface:为用户提供接口,支持 Pythonic 接口和 TVM 集成接口,简化代码编写。 Compiler:将 TileLang 高层代码转换为低层的硬件代码。 SchedulingOptimization:负责内存和线程调度优化,提升代码执行的效率。 CodeGeneration:负责生成适配 GPU 和 CPU 硬件的代码。 GPUHardware 和 CPUHardware:最终的硬件执

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 4813

螺丝锁付系统软件设计 C# Winform

视觉螺丝锁付系统软件设计 C# Winform ,这是其中通信子模块设计

weixin_42522973的博客 340

一文了解国产算子编程语言 TileLang,TileLang 对国产开源生态的影响与启示

TileLang 旨在简化高性能 GPU/CPU 内核(Kernels)的开发,例如 MLA(Multi-Head Latent Attention)、GEMM(GEneral Matrix Multiplication)、Dequant GEMM、FlashAttention 和 LinearAttention 等。通过在 TVM 之上构建底层编译器基础设施,并采用 Pythonic 语法,tile-lang 使开发者能够专注于提升开发效率(门槛较低、易用),而无需牺牲实现最佳性能所需的底层优化。

叶庭云 成为自己的光 8825

别再踩坑了!CAPL脚本里局部变量和全局变量的那些“怪事”(附CANoe实测代码)

本文深度解析CAPL脚本中局部变量和全局变量的特殊机制,揭示其与通用编程语言的差异。通过实测代码展示静态局部变量的默认行为和全局变量的节点隔离特性,并提供高效避坑指南,帮助汽车网络测试工程师避免常见陷阱。

weixin_30225755的博客 293

【AWS】创建aws云服务器EC2实例

本文介绍了如何创建aws的EC2云服务器,并介绍了如何使用Xshell远程连接上云服务器

Marcos921的博客 2501

tilelang:加速GPU/CPU内核开发的专业领域语言

tilelang(**tile-lang**)是一种简洁的领域特定语言(DSL),旨在简化和优化高性能GPU/CPU内核(如GEMM、Dequant GEMM、FlashAttention、LinearAttention)的开发流程。tilelang采用了类似Python的语法,并在Apache TVM之上构建了编译器基础设施。这使得开发人员能够在不牺牲底层优化和保持最先进性能的前提下,提高生产效...

gitblog_01132的博客 1653

Python连接高斯数据库踩坑实录:从SASL报错到SSL安全连接的完整指南

本文详细记录了Python连接高斯数据库时遇到的SASL authentication报错及其解决方法。通过剖析SASL认证机制,对比了修改数据库配置、使用官方驱动等方案的利弊,并重点提供了通过自动化脚本生成SSL证书,实现安全、免密连接的完整指南,帮助开发者彻底解决连接难题。

weixin_28340315的博客 438

TileLang——一款开源的国产化AI算子编程语言!

TileLang是一种基于TVM的领域特定语言,通过Pythonic语法简化高性能AI内核开发。其核心优势包括:1)用极简代码(如80行实现GEMM)达成硬件级性能;2)内置内存优化、自动调优等关键技术;3)支持矩阵运算、注意力机制等主流算子。该语言采用模块化架构,包含Python前端、TensorIR中间表示和自动代码生成系统,显著降低GPU/CPU编程门槛。目前已在GitHub开源,为AI和高性能计算领域提供算法与硬件的高效桥梁。

飞乐鸟的博客 1400

手把手教你学SOC芯片架构--NoC(片上网络,Network on Chip)全方位解析

​、​。

MHD0815的博客 864

华为OD机考双机位C卷 - 信道分配(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 信道分配

算法大师! 453

TileLang 使用教程

TileLang 是一个简洁的领域特定语言(DSL),旨在简化高性能 GPU/CPU 内核(如 GEMM、Dequant GEMM、FlashAttention、LinearAttention)的开发。通过采用类似 Python 的语法和一个基于 TVM 的底层编译器架构,TileLang 允许开发者在不牺牲低级别优化的情况下,专注于提高生产效率。 ## 2. 项目快速启动 ### 安装 #...

gitblog_00722的博客 3080

【部署】OpenClaw版本降级实操(含全量卸载)

本文详细介绍了OpenClaw工具的降级与卸载方法。主要内容包括:1)通过npm安装指定版本的核心命令及国内镜像加速方案;2)两种卸载路径:CLI工具存在时的简易一键卸载(含交互式与非交互式命令)和手动分步卸载流程;3)CLI已删除但服务仍在运行时,针对macOS(launchd)、Linux(systemd)和Windows(计划任务)系统的具体清理步骤。文章特别强调了卸载前备份的重要性,并提供了不同安装方式(常规安装与源码克隆)的额外说明,确保用户能彻底清理所有组件。

海兰 3173

[GPU] TileLang vs Triton: 选择合适的GPU编程语言

*GPU编程正在从手工优化向自动化、从单一平台向跨平台、从简单抽象向多层次抽象发展。TileLang和Triton都是这个趋势的重要参与者,它们将推动整个生态系统向前发展。*

No Game No Life 2185

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

全文 -- TileLang: A Composable Tiled Programming Model for AISystems

现代AI工作负载在训练和推理过程中高度依赖优化的计算内核。这些AI内核遵循明确的数据流模式,例如在DRAM与SRAM之间移动数据块,并对这些数据块执行一系列计算。尽管这些模式清晰可见,编写高性能内核依然复杂。要实现峰值性能,需要以硬件为中心进行细致优化,以充分利用现代加速器。虽然领域专用编译器试图减轻编写高性能内核的负担,但它们在易用性和表达性方面仍存在不足。本文提出TileLang,一种通用的分块编程模型,旨在实现更高效的AI内核编程。

eloudy的专栏 1491

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

TileLang简介

最近Deepseekv3.2发布关注到TileLang,简单总结下;

Mr.Gao的博客 1019

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TileLang快速入门:30分钟实现你的第一个高性能算子

你是否还在为GPU算子开发效率低下而困扰?是否面对CUDA/ROCm复杂的编程模型望而却步?本文将带你30分钟上手TileLang——这款专为高性能异构计算设计的领域特定语言(Domain-Specific Language,DSL),从零开始实现一个带ReLU激活的矩阵乘法算子,并通过PyTorch验证其正确性。 读完本文你将掌握: - TileLang核心语法与编程范式 - 高性能算子开发的...

gitblog_00752的博客 1019

TileLang vs Triton:AI编译器性能对决与适用场景分析

在AI大模型训练与推理场景中,GPU核函数性能直接影响整体效率。TileLang(领域特定语言)与Triton(开源AI编译器)作为两类高性能编程工具,常被用于优化Transformer架构中的关键算子。本文通过稀疏注意力(Sparse Attention)算子实现对比,从开发效率、性能表现和场景适配三方面展开深度分析,为开发者选择工具提供决策依据。 ## 核心技术架构对比 TileLang与...

gitblog_00388的博客 1098

Meet AI Compiler丨跨硬件的统一编译生态,TVM/Triton/TileLang 各展所长

TVM/Triton/TileLang 各展所长

HyperAI超神经 2460

TileLang:国产高性能计算新锐语言

TileLang 是一种专为高性能计算设计的国产算子编程语言,其核心思想是通过抽象化底层硬件细节,让开发者专注于算法逻辑。语言采用类 Python 的语法风格,但内置张量计算原语,支持自动并行化和硬件加速。内存模型采用写时复制(Copy-on-Write)机制,配合惰性求值策略减少不必要的内存拷贝。TileLang 的编译器能将高级语言代码转换为优化的中间表示(IR),并针对不同硬件后端(如 CPU/GPU/TPU)生成高效机器码。其类型系统支持泛型张量,允许编写硬件无关的算法代码。

EYW_uage的博客 603

【Tilelang入门】Tilelang语法糖看哭十亿CUDA手写哥

tilelang是一种面向GPU编程的python DSL,在它出现之前GPU编程的主流是CUDA和Triton,前者是类C语言,后者也是个python DSL,他们分别继承了C和python的特点,一个难写,性能高,一个有许多语法糖,隐藏编码复杂度,好写,但性能差。所以一个介于这两个语言之间的GPU编程语言是必要的。这就是Tilelang,一方面也是python DSL,编写很简单,但相比Triton,给了更高的自由度,允许我们直接操作共享内存,寄存器,进行线程,Warp级别调度,这都是Triton做不到

Maxwell_Newton的博客 265

TileLang:让GPU编程像Python一样简单的高性能计算新范式

还在为CUDA编程的复杂性而头疼吗?当传统GPU编程面临陡峭学习曲线、繁琐内存管理和难以捉摸的性能调优时,TileLang以创新的领域特定语言设计,为开发者提供了全新的解决方案。本文将带你深入探索这个革命性的GPU计算框架,展示如何用简洁的Python语法实现接近手写汇编的性能表现。 ## 为什么GPU编程需要一场革命? 在AI和科学计算领域,GPU已成为不可或缺的计算引擎。然而,传统的GPU

gitblog_00045的博客 349

一文了解国产算子编程语言 TileLang,TileLang 对国产开源生态的影响与启示。

TileLang 是一种国产算子编程语言,专注于高效计算和并行处理。其设计目标是为科学计算、人工智能和大数据处理提供简洁的语法和高效的运行时性能。TileLang 的核心理念是通过抽象的算子(Tile)描述计算任务,自动优化计算流程,降低开发者的编程复杂度。TileLang 的语法借鉴了函数式编程和声明式编程的思想,支持高阶函数、惰性求值和并行计算。开发者可以通过组合算子实现复杂的计算逻辑,而无需手动管理内存或调度任务。TileLang 是一种国产算子编程语言,专注于高效计算和并行处理。

trC_xowp的博客 693

【论文阅读】TileLang: A Composable Tiled Programming Model for AI Systems

现代人工智能工作负载在很大程度上依赖于优化的计算内核进行训练和推理。这些人工智能内核遵循定义良好的数据流模式,例如在DRAM和SRAM之间移动瓦片,并在这些瓦片上执行一系列计算。然而,尽管这些模式很清晰,但编写高性能内核仍然很复杂。实现峰值性能需要仔细,虽然特定于领域的编译器试图减轻编写高性能内核的负担,但它们经常在可用性和表现力方面存在差距。在本文中,我们提出了一个广义的平铺编程模型TileLang,用于更有效的AI内核编程。

m0_51697446的博客 1580

TileLang 入门,简化张量程序编写的新型语言

本文深入解析 TileLang,一种简化张量程序编写的新型语言。针对 AMD ROCm 生态及 MI300X 架构,TileLang 提供比 HIP C++ 更优雅的抽象,显著提升自定义算子开发效率与性能,是开发者优化 GPU 内核的理想选择。

2600_96323227的博客 42

DeepSeek拥抱国产GPU语言TileLang

国产GPU编程语言TileLang引发业界关注。由北大团队开发的TileLang是一种面向AI算子的开源编程语言,能简化高性能GPU/CPU内核开发,同时保持优化性能。该语言支持跨硬件平台,已适配华为昇腾等国产芯片,并被DeepSeek团队用于V3.2-Exp模型开发。TileLang开源仅两个月就获得800星标,2025年国庆期间增至2.5K,显示出强劲的发展势头。其优势在于能用更少的代码(如80行实现FlashAttention)达到与专家优化内核相当的性能,对构建自主AI技术生态具有重要意义。

haylee的专栏 1957
上一篇: 【vLLM 学习】Encoder Decoder
下一篇: HyperAI超神经邀您共赴 Community Over Code Asia 2025,超豪华演讲阵容揭晓!
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值