References
ML Architecture
编程接口
- pybind
- ctypes
Computational Graph (计算图)
计算图由基本数据结构张量(Tensor)和基本运算单元算子(operator)构成。在计算图中通常使用节点来表示算子,节点间的有向边(Directed Edge)来表示张量状态,同时也描述了计算间的依赖关系,通常为有向无环图DAG。
计算图是机器学习框架的核心理念之一,了解主流机器学习框架的设计思想,有助于深入掌握这一概念,建议阅读 TensorFlow 设计白皮书、 PyTorch计算框架设计论文。
图外控制流直接使用前端语言控制流,熟悉编程语言即可掌握这一方法,而图内控制流则相对较为复杂,建议阅读TensorFlow控制流论文。
动态图和静态图设计理念与实践,建议阅读TensorFlow Eager 论文、TensorFlow Eager Execution示例、TensorFlow Graph理念与实践、MindSpore动静态图概念。
Torch JIT
- https://github.com/louis-she/torchscript-demos
- https://zhuanlan.zhihu.com/p/370455320
- pytorch2.0新特性:https://www.bilibili.com/video/BV1p84y1675B
- pytorch计算图例子
- How Computational Graphs are Constructed in PyTorch
AI编译器和前端技术
编译器前端基础结构
主流编译器LLVM
编译器后端和运行时
编译器后端总体架构简图
硬件加速器
算子编译器
当前业界的算子编译器/编译框架主要有
- TVM/Ansor [Zheng et al., 2020]
- MLIR [Lattner et al., 2020]
- 华为昇腾芯片上的TBE/AKG [Zhao et al., 2021]
- 加速器实践
数据处理框架
数据模块的核心组件
模块设计重点
- 易用性
- 高效性
- 保序性
AI 推理框架
移动端
模型部署
分布式训练
进阶:
- 华盛顿大学 Deep Learning Systems,机器学习程序的编译过程,Apache TVM深度学习编译器
- AI Systems 微软亚洲研究院