高级检索结果页
欢迎来到工程科技数字图书馆
登录 | 注册
 
您当前的位置:图书 > 深入理解LLVM:MLIR原理与OpenAI Triton实现分析

深入理解LLVM:MLIR原理与OpenAI Triton实现分析

  • 相关图书推荐
  • 相关课程推荐
  • DeepSeek+AI赋能工作效率提升
  • DeepSeek实用技巧
  • DeepSeek与AI办公提效
  • AI通识与DeepSeek提问逻辑
  • Deepseek高效使用技巧
  • 计算机组装与维护教程
  • C语言程序设计
  • Python编程基础与应用
  • Java算法从菜鸟到达人
  • deepseek高效辅助课题申报
  • AI辅助教学
  • deepseek高效辅助论文写作

本书由国内头部科技企业资深编译器专家团队倾力撰写,凝练团队多年深耕MLIR的研究成果与工程实践经验。其主要设计思路如下。
1)系统阐释MLIR核心原理与基础概念,全景梳理各方言间的层级关系与协同机制,并深入探讨针对不同计算场景的优化策略。
2)为强化实战能力,以OpenAI Triton为标杆案例,细致解构其基于MLIR的实现流程与工程细节,帮助读者深度理解MLIR代码体系,从容应对实际业务开发挑战。
3)以60余幅手绘架构/流程图、270余段精讲代码为脉络,由浅入深地剖析MLIR技术体系,助力读者快速建立认知框架。
具体而言,本书共15章,分为4部分。第一部分为MLIR基础知识(第1~7章),系统讲解MLIR的核心概念与底层机制,是理解后续内容的基石。第二部分为MLIR方言详解(第8~12章),全面梳理MLIR生态中的核心方言体系,带领读者了解其强大的表达能力与优化潜力。第三部分为MLIR实战项目剖析(即第13章),以OpenAI的Triton DSL为例,系统剖析MLIR的设计理念及其编译优化与降级流程。第四部分为MLIR中的数学知识与应用(第14~15章),介绍实现MLIR高级优化的理论基础。

封面
前折页
书名页
版权
前言
第一部分 MLIR基础知识
 第1章 绪论
  1.1 当前编译器的发展现状与面临的问题
  1.2 引入MLIR后的变化
  1.3 MLIR使用示例
   1.3.1 高层抽象模型
   1.3.2 接入MLIR体系
   1.3.3 使用线性代数描述代码
   1.3.4 使用仿射描述代码
   1.3.5 接入LLVM体系
   1.3.6 MLIR使用示例小结
  1.4 MLIR的不足
  1.5 本章小结
 第2章 MLIR概述
  2.1 IR的组成、结构与存储
   2.1.1 组成
   2.1.2 结构
   2.1.3 存储
  2.2 关键功能
   2.2.1 谓词、约束、特质和接口
   2.2.2 匹配与重写
   2.2.3 调试
   2.2.4 表描述语言及工具
  2.3 其他功能
  2.4 本章小结
 第3章 类型、属性、操作和方言详解
  3.1 类型
   3.1.1 定义与注册
   3.1.2 文法
   3.1.3 使用方式
  3.2 属性
   3.2.1 定义与注册
   3.2.2 文法
   3.2.3 特性
  3.3 操作
   3.3.1 定义
   3.3.2 内存布局
   3.3.3 文法
  3.4 方言
   3.4.1 定义
   3.4.2 扩展
   3.4.3 管理操作、类型和属性
   3.4.4 方言示例:内建方言
  3.5 编译上下文管理
  3.6 本章小结
 第4章 谓词、特质和接口
  4.1 谓词
   4.1.1 谓词概述
   4.1.2 MLIR中的常见谓词
  4.2 特质
   4.2.1 特质的用途
   4.2.2 特质的定义和使用
   4.2.3 MLIR中的常见特质
  4.3 接口
   4.3.1 方言接口
   4.3.2 操作接口
  4.4 本章小结
 第5章 Pass系统的工作流程
  5.1 Pass、PassManager与Pass Pipeline的应用
   5.1.1 Pass介绍
   5.1.2 在TD中定义Pass
   5.1.3 注册Pass与Pass Pipeline
   5.1.4 Pass的执行顺序
   5.1.5 Pass的约束
   5.1.6 Pass的插桩机制
   5.1.7 标准插桩
  5.2 分析与分析管理
  5.3 本章小结
 第6章 操作匹配与重写机制
  6.1 操作匹配的设计与实现
   6.1.1 模式
   6.1.2 重写
   6.1.3 应用
  6.2 MLIR框架中的两种典型应用
   6.2.1 贪婪匹配
   6.2.2 方言降级
   6.2.3 常量折叠与模式匹配机制
  6.3 本章小结
 第7章 MLIR中常见的通用优化技术
  7.1 操作数位置排序
  7.2 IR归一化
  7.3 控制流下沉
  7.4 公共子表达式消除
  7.5 I R验证器
  7.6 循环不变量外提
  7.7 内存到寄存器转换
  7.8 拓扑排序
  7.9 聚合类型的标量替换
   7.9.1 应用示例
   7.9.2 实现过程
  7.10 内联
   7.10.1 应用示例
   7.10.2 实现过程
  7.11 稀疏条件常量传播
   7.11.1 MLIR数据流分析框架
   7.11.2 sccp的实现
  7.12 本章小结
第二部分 MLIR方言详解
 第8章 业务接入方言
  8.1 业务接入方言概述
  8.2 tosa方言
   8.2.1 上下游关系
   8.2.2 优化
   8.2.3 降级示例
  8.3 本章小结
 第9章 优化方言
  9.1 linalg方言
   9.1.1 目标与定位
   9.1.2 上下游关系
   9.1.3 重要操作
   9.1.4 优化与变换
  9.2 affine方言
   9.2.1 affine方言概述
   9.2.2 仿射表达式与半仿射表达式
   9.2.3 部分操作分类与说明
   9.2.4 上下游关系
   9.2.5 优化与变换
   9.2.6 降级示例
   9.2.7 扩展阅读:affine方言与传统多面体编译的异同
  9.3 vector方言
   9.3.1 vector方言概述
   9.3.2 常用操作
   9.3.3 上下游关系
   9.3.4 优化与变换
   9.3.5 降级示例
  9.4 bufferization方言
   9.4.1 bufferization方言概述
   9.4.2 优化与变换
   9.4.3 降级示例
  9.5 应用示例
  9.6 本章小结
 第10章 结构方言与数据方言
  10.1 结构方言
   10.1.1 func方言
   10.1.2 scf方言
   10.1.3 cf方言
  10.2 数据方言
   10.2.1 builtin方言
   10.2.2 arith方言
   10.2.3 index方言
   10.2.4 complex方言
   10.2.5 tensor方言
   10.2.6 sparse_tensor方言
   10.2.7 memref方言
   10.2.8 shape方言
   10.2.9 math方言
  10.3 本章小结
 第11章 目标输出方言
  11.1 llvm方言
   11.1.1 类型
   11.1.2 属性
   11.1.3 操作
   11.1.4 降级示例
  11.2 硬件方言
   11.2.1 硬件方言概述
   11.2.2 arm_sme方言
   11.2.3 GPU相关知识概述
   11.2.4 gpu方言
   11.2.5 nvgpu方言
   11.2.6 nvvm方言
  11.3 本章小结
 第12章 元编程方言
  12.1 transform方言
   12.1.1 transform方言概述
   12.1.2 transform方言的扩展实现
   12.1.3 变换机制实现的难点
   12.1.4 关键操作
   12.1.5 transform方言的应用与扩展
   12.1.6 辅助接口与特质
   12.1.7 方言扩展说明
  12.2 pdl与pdl_interp方言及pdll
   12.2.1 pdl方言
   12.2.2 pdl_interp方言
   12.2.3 pdll
  12.3 irdl方言
   12.3.1 概述
   12.3.2 关键操作
   12.3.3 应用示例
  12.4 本章小结
第三部分 MLIR实战项目剖析
 第13章 Triton DSL的设计与编译优化
  13.1 GPU优化挑战与Triton DSL设计思路
  13.2 Triton DSL的编译
   13.2.1 Triton中的方言
   13.2.2 Triton的编译过程
  13.3 Triton的编译优化及降级
   13.3.1 编译过程的优化与降级
   13.3.2 Python代码解析与Triton IR生成
   13.3.3 Triton IR的优化
   13.3.4 TritonGPU IR中的数据布局
   13.3.5 TritonGPU IR的优化
   13.3.6 基于MLIR社区方言的优化与降级
  13.4 Triton的未来发展趋势
  13.5 本章小结
第四部分 MLIR中的数学知识与应用
 第14章 多面体编译理论概述
  14.1 仿射集、凸集、锥与多面体的定义
  14.2 凸集的保凸运算
  14.3 凸函数的保凸运算
  14.4 一般优化与凸优化问题
   14.4.1 一般优化问题的形式
   14.4.2 凸优化问题的形式
  14.5 循环优化
   14.5.1 循环中的内存依赖分析
   14.5.2 循环并行
   14.5.3 循环融合
   14.5.4 循环分块
  14.6 本章小结
 第15章 整数规划求解方法
  15.1 方程组求解
   15.1.1 高斯消元法
   15.1.2 傅里叶-莫茨金消元法
  15.2 线性规划与单纯形法
   15.2.1 线性规划
   15.2.2 单纯形法的发展与理论基础
   15.2.3 单纯形法简介
  15.3 整数规划与分支定界法
  15.4 Presburger算术
   15.4.1 概述
   15.4.2 化简
   15.4.3 集合操作
  15.5 MLIR中的整数规划求解分析
   15.5.1 无目标的可行性求解与单纯形表变换
   15.5.2 整数规划求解的变量分类与实现方式
  15.6 本章小结
附录 其他方言
后折页
封底

机工科技数字图书馆