Sticky Posts
Post List
【转载】[陈天奇]构建Agent时代的机器学习编译器基础层
# 序
转载一些重要有趣的文章,侵删。
导读:[陈天奇] CS. PhD 机器学习系统,原文:构建 Agent 时代的机器学习编译器基础层
# 正文
今年是 Agent 元年,不管对于任何的领域,大家都需要感受到这样的变化。对于机器学习编译和 kernel 可能更是如此。传统的机器学习编译尝试利用我们的领域知识从图,tile 和 SIMT 等各个粒度去进行变化和优化,使得我们可以再各个硬件上通过简洁的代码获得很高的效率。强大 agent 的出现使得只要我们有足够多的 token,基本底层的算子和软件都可以都可以蹬出来了。
一方面来看,Agent 已经可以解决从高性能算子的开发到框架优化的各种
more...【MLIR】Transform Dialect【3】Transform 操作进阶
# 前言
本篇是学习 MLIR 中的 Transform Dialect 的第四篇,本章主要讲的是 MLIR Transform Dialect 的进阶用法,核心围绕如何用更规范、更类型安全的方式编写 transform 操作,以及如何定义自己的 transform 类型。内容来自 MLIR 官方教程 《Chapter 3: More than Simple Transform Operations》。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程, 《Chapter 0: A Primer on “Structured” Linalg Operations》
more...【MLIR】Transform Dialect【2】添加新的Transformation操作
# 前言
本篇是学习 MLIR 中的 Transform Dialect 的第三篇,添加新的 Transformation 操作。这一章节主要讲了如何为 MLIR 的 Transform 方言添加一个简单的新变换操作。内容来自 MLIR 官方教程 《Chapter 2: Adding a Simple New Transformation Operation》
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程 。
作为初学者,错误在所难免,还望不吝赐教。
# 基本简介
在前一章节 《Chapter 1: Combining Existing Transforma
more...【MLIR】Transform Dialect【1】组合已有的变换
# 前言
本篇是学习 MLIR 中的 Transform Dialect 的第二篇,主要通过一个具体的 “全连接 + 偏置 + ReLU” 层例子,介绍了如何使用 Transform Dialect 来编写变换脚本。内容来自 MLIR 官方教程 《Chapter 1: Combining Existing Transformations》。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程, 《Chapter 0: A Primer on “Structured” Linalg Operations》,【MLIR】Transform Dialect【0】保持计算结
more...【MLIR】Transform Dialect【0】保持计算结构
# 前言
本篇是学习 MLIR 中的 Transform Dialect 的第一篇,主要讲解 MLIR 为何及如何保持计算结构。内容来自 MLIR 官方教程 《Chapter 0: A Primer on “Structured” Linalg Operations》。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程, 《Chapter 0: A Primer on “Structured” Linalg Operations》。
作为初学者,错误在所难免,还望不吝赐教。
# 基本简介
本章节主要内容是在阐述 : 为什么编译器不直接把高级计算(如矩阵乘)转成低级
more...【MLIR】跟着Toy语言学习MLIR【6】支持复合结构类型
# 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第六篇,前述章节已经完整介绍了 toy 语言经 MLIR 降级到 llvm ir,并通过 JIT 进行编译执行的过程,本章节是教程中增添复合类型章节。前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect,【MLIR】跟着 Toy 语言学习 MLIR【2】pattern 匹配和重写,【MLIR】跟着 Toy 语言学习 MLIR【3】通过接口实现通用转换。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程,【编译器】使用 llvm 编译自
more...【MLIR】跟着Toy语言学习MLIR【5】降级到LLVM及CodeGen
# 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第五篇,前述章节已经介绍到 toy dialect 降级到 Affine dialect,本章节主要介绍将其降级到 LLVM 及 Codegen 生成可执行文件的过程。前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect,【MLIR】跟着 Toy 语言学习 MLIR【2】pattern 匹配和重写,【MLIR】跟着 Toy 语言学习 MLIR【3】通过接口实现通用转换,【MLIR】跟着 Toy 语言学习 MLIR【4】部分降级到低层方言。
相关链接: LLVM P
more...【MLIR】跟着Toy语言学习MLIR【4】部分降级到低层方言
# 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第四篇,主要介绍高层级 toy dialect 降级到低层方言的过程,前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect,【MLIR】跟着 Toy 语言学习 MLIR【2】pattern 匹配和重写,【MLIR】跟着 Toy 语言学习 MLIR【3】通过接口实现通用转换。
学习 MLIR 最好的方式还是照着官方教程来,但是只看 MLIR 官网教程,Ch1 到 Ch6,没有基础的话又让人学着有点吃力。现发现好多细节,不看教程认识不到,所以当前内容跟随官网教程。
相
more...【MLIR】跟着Toy语言学习MLIR【3】通过接口实现通用转换
# 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第三篇,主要介绍如何实现通过接口进行通用转换,前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect,【MLIR】跟着 Toy 语言学习 MLIR【2】pattern 匹配和重写。
学习 MLIR 最好的方式还是照着官方教程来,但是只看 MLIR 官网教程,Ch1 到 Ch6,没有基础的话又让人学着有点吃力。现发现好多细节,不看教程认识不到,所以当前内容跟随官网教程。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程,【编译器】使用 l
more...【MLIR】跟着Toy语言学习MLIR【2】pattern匹配和重写
# 前言
现在开启 MLIR 学习系列。本篇是跟着 Toy 语言学习 MLIR 的第二篇,主要介绍 toy dialect 高层级方言的匹配重写,前述内容请参考【MLIR】跟着 Toy 语言学习 MLIR【1】Toy 语言和 Toy Dialect。
学习 MLIR 最好的方式还是照着官方教程来,但是只看 MLIR 官网教程,Ch1 到 Ch6,没有基础的话又让人学着有点吃力。所以本教程没有直接参照官网 Toy 教程,而是以 MLIR 工程的 toy 相关代码入手。欢迎参考。
相关链接: LLVM Project ,MLIR 官方文档,MLIR 官网教程,【编译器】使用 llvm 编译自定义语
more...【MLIR】跟着Toy语言学习MLIR【1】Toy语言和 Toy Dialect
# 前言
现在开启 MLIR 学习系列。本章介绍 Toy 语言和 Toy Dialect 这一步骤的转换。当然,是从 Toy AST 到 Toy Dialect 这一过程得转换。从 Toy 文本语言到 AST 这个转换过程,需要编译原理的知识和非常麻烦的词法分析器,且这个过程与 MLIR 无关,所以该文章不会包含这个过程。
学习 MLIR 最好的方式还是照着官方教程来,但是只看 MLIR 官网教程,Ch1 到 Ch6,没有基础的话又让人学着有点吃力。所以本教程没有直接参照官网 Toy 教程,而是以 MLIR 工程的 toy 相关代码入手。欢迎参考。
相关链接: LLVM Project ,ML
more...【琐记】你的爱好能坚持多少年
# It's A Rain Day 足球
雨天 足球
踢足球,开始于高中入学...
# 血遗术之谜
推荐一下我的小说:
《血遗术之谜》
更偏向于严肃小说。写小说,开始于研究生时代。
# 另外
还有博客和 3D 建模。
more...【Triton】Triton实现矩阵乘
# 前言
本篇介绍 Triton 实现的矩阵乘运算。本文结合 Triton 官方文档和官方 triton 矩阵乘实现方式,以绘图的方式介绍其加速算法和原理。比这对 NVIDIA GPU 架构理解尚浅,肯定存在理解偏差和错误,请批判性阅读,互相学习。
参考 Triton 中文官方文档、Triron 矩阵乘实现方式
作为初学者,错误在所难免,还望不吝赐教。
# 一点 CUDA 必备知识
# 流式多处理器 SM
一块 GPU 拥有多个流式多处理器 SM。
原子性绑定:一个线程块(Thread Block)中的所有线程,会被绑定到且仅绑定到同一个 SM 上执行。
一对多复用:一个 SM 在同一时刻
more...【LLM推理加速】FlashAttention
# 前言
本文介绍 FlashAttention。本文只关注 FlashAttention 前向推理部分的应用。
参考链接:Transformer 模型详解(图解最完整版) , Attention is All You Need,Pytorch 版本的 Transformer 实现、一文了解 Transformer 全貌(图解 Transformer)、大模型推理加速:看图学 KV Cache、手撕大模型|KVCache 原理及代码解析、FlashAttention 详解:为什么它能让大模型注意力计算又快又省显存?、Flash Attention 原理详解 (含代码讲解)、【手撕 LLM-Fl
more...











