知识体系

按主题积累 · 按脉络阅读

从异构编译器的完整链路出发,把语言、IR、优化、代码生成与算子执行连接起来。零散记录逐步整理为有前置知识、有实验、有参考资料的专题。

理解计算与智能

编译器与工具链

语言语义、LLVM IR、MLIR、优化与代码生成,以及编译、链接、运行时和调试之间的协作。

体系结构与计算模型

并行执行、数据流、存储层次和成本分析;通过公开案例理解异构与可重构计算中的映射问题。

模型与算子

连接训练、推理、张量计算与系统执行,关注算子表达、融合、布局、精度与性能之间的取舍。

计算机科学基础

算法、类型与程序语义、操作系统和计算模型,为源码分析与工程判断建立基础。

编译器学习与实践

下面是逐步展开的主题顺序。每个单元将关联原理说明、源码阅读、最小实验和延伸资料;成熟内容再整理成系列。

01 / 起点

程序如何执行

编译与链接、主机与设备、并行执行模型,先建立端到端的全貌。

02 / 前端

语言与 CUDA 语义

Clang、语法与语义分析、主机/设备代码划分、诊断与语言行为差异。

03 / 中间表示

LLVM IR 与多层 IR

SSA、类型、控制流、内存与副作用;理解不同抽象层需要保留什么信息。

04 / 变换与映射

MLIR 与计算降层

Dialect、合法化、Pass、张量与循环变换、布局与数据流。通过公开案例理解调度、存储约束和代价模型;MLIR 提供表达与变换基础,具体映射仍需设计与验证。

05 / 后端

从 IR 到目标代码

指令选择、调度、寄存器分配、ABI 与目标描述,结合代码和测量分析取舍。

06 / 执行链路

运行时与工具链协作

编译、链接、加载、内存与同步,以及设备端诊断、调试和分析工具。

07 / 算子与框架

把计算接入系统

CUDA C++ 与 Triton 算子、PyTorch 编译链路,以及 vLLM、SGLang 中的后端接口与算子执行。

08 / 验证

正确性、性能与演进

最小复现、回归、差分测试、数值误差与基准方法,持续记录兼容范围和版本变化。

兼容与适配,分层看问题

以 CUDA 及相关算子编译为主线,按实际依赖逐步展开。下面列的是研究与验证范围,具体支持状态需要用版本、测试用例和测量结果说明。

语言与编译输入

CUDA C++ 语法与语义、主机/设备代码、构建参数和工具链行为;Triton 程序有独立的编译链路,需要分别分析。

运行时、库与通信

内存、流、事件、同步和图执行;按算子依赖核对数学库、设备库与集合通信接口,例如 cuBLAS、cuDNN 和 NCCL。

算子与编译栈

PyTorch 算子分发、自定义算子、torch.compile 与 Inductor;关注 GEMM、Attention、归一化、量化、KV Cache 和 MoE 中的表达与编译问题。

框架与端到端行为

vLLM、SGLang 的平台接口、算子后端、执行图与通信依赖。区分可编译、可运行、结果正确和性能达标,记录模型、形状、精度及版本范围。

ONNX / ONNX Runtime、StableHLO / OpenXLA、IREE、TVM、SYCL 与 HIP 作为按需研究的相邻路线,结合具体问题比较,逐项形成资料与实验。

理解思想

哲学

从问题与概念出发,理解思想传统和看待世界的方法。

逻辑与批判性思维

检查前提、推理与证据,区分事实、解释和判断。

理解世界

科学技术史

理解科学发现与技术演进如何发生,以及它们所处的历史背景。

数学与物理

从直觉、模型与推导出发,建立解释自然与计算的工具。

把事情做成

问题定义、方案取舍、测试验证、调试与复盘,让理解进入可执行的实践。每个长期单元保留适用版本、复核日期、原始资料和勘误;代码、图表与讲义随主题组织。

原始资料与阅读记录

主题目录持续完善,具体文章与实验将逐步补齐。