更新时间:2024-12-27 20:31:37
封面
版权信息
内容简介
作者简介
FOREWORD序
PREFACE前言
基础篇
第1章 导论
1.1 机器学习应用
1.2 机器学习框架的设计目标
1.3 机器学习框架的基本组成原理
1.4 机器学习系统生态
1.5 本书结构和读者对象
第2章 编程模型
2.1 机器学习系统编程模型的演进
2.2 机器学习工作流
2.2.1 环境配置
2.2.2 数据处理
2.2.3 模型定义
2.2.4 损失函数和优化器
2.2.5 训练及保存模型
2.2.6 测试和验证
2.3 定义深度神经网络
2.3.1 以层为核心定义神经网络
2.3.2 神经网络层的实现原理
2.3.3 自定义神经网络层
2.3.4 自定义神经网络模型
2.4 C/C++编程接口
2.4.1 在Python中调用C/C++函数的原理
2.4.2 添加C++编写的自定义算子
2.5 机器学习框架的编程范式
2.5.1 机器学习框架编程需求
2.5.2 机器学习框架编程范式现状
2.5.3 函数式编程案例
2.6 总结
2.7 拓展阅读
第3章 计算图
3.1 设计背景和作用
3.2 计算图的基本构成
3.2.1 张量和算子
3.2.2 计算依赖
3.2.3 控制流
3.2.4 基于链式法则计算梯度
3.3 计算图的生成
3.3.1 静态生成
3.3.2 动态生成
3.3.3 动态图和静态图生成的比较
3.3.4 动态图与静态图的转换和融合
3.4 计算图的调度
3.4.1 算子调度执行
3.4.2 串行与并行
3.4.3 数据载入同步与异步机制
3.5 总结
3.6 拓展阅读
进阶篇
第4章 AI编译器和前端技术
4.1 AI编译器设计原理
4.2 AI编译器前端技术概述
4.3 中间表示
4.3.1 中间表示的基本概念
4.3.2 中间表示的种类
4.3.3 机器学习框架的中间表示
4.4 自动微分
4.4.1 自动微分的基本概念
4.4.2 前向与反向自动微分
4.4.3 自动微分的实现
4.5 类型系统和静态分析
4.5.1 类型系统概述
4.5.2 静态分析概述
4.6 常见前端编译优化方法
4.6.1 前端编译优化简介
4.6.2 常见编译优化方法介绍及实现
4.7 总结
第5章 AI编译器后端和运行时
5.1 概述
5.2 计算图优化
5.2.1 通用硬件优化
5.2.2 特定硬件优化
5.3 算子选择
5.3.1 算子选择的基础概念
5.3.2 算子选择的过程
5.4 内存分配
5.4.1 Device内存概念
5.4.2 内存分配
5.4.3 内存复用
5.4.4 常见的内存分配优化手段
5.5 计算调度与执行
5.5.1 单算子调度
5.5.2 计算图调度
5.5.3 交互式执行
5.5.4 下沉式执行
5.6 算子编译器
5.6.1 算子调度策略
5.6.2 子策略组合优化
5.6.3 调度空间算法优化
5.6.4 芯片指令集适配
5.6.5 算子表达能力
5.6.6 相关编译优化技术
5.7 总结
5.8 拓展阅读