跳转至

Ch13 计算与操作系统 · 思维导图 (Mermaid)


一 · 章节主入口

🌳 Ch13 章 知识图谱
├─ §01 离散数学
│  └─ 集合
│  └─ 逻辑
│  └─ 组合
│  └─ 复杂度
├─ §02 计算机架构
│  └─ 冯诺依曼
│  └─ CPU
│  └─ GPU
│  └─ 缓存
├─ §03 操作系统
│  └─ 进程
│  └─ 虚拟内存
│  └─ 文件系统
├─ §04 并发并行
│  └─ 线程
│  └─ 锁
│  └─ GPU
│  └─ 分布式
├─ §05 编程语言
│  └─ 类型
│  └─ 范式
│  └─ 编译

二 · 五大子领域

graph LR
    A[数学基础] --> B[硬件]
    B --> C[系统软件]
    C --> D[并行计算]
    D --> E[编程范式]

    A1[离散数学] --> A
    B1[CPU/GPU/内存] --> B
    C1[进程/OS] --> C
    D1[并发/分布式] --> D
    E1[类型/函数式] --> E

三 · §01 离散数学子图

🌳 Ch13 章 知识图谱
├─ 集合
│  └─ 并/交/差
│  └─ 幂集
│  └─ 笛卡尔积
├─ 逻辑
│  └─ 命题
│  └─ 谓词
│  └─ 证明
├─ 组合
│  └─ 排列 P
│  └─ 组合 C
│  └─ 鸽巢
├─ 图论
│  └─ 路径
│  └─ 树
│  └─ 圈
├─ 复杂度
│  └─ O/Ω/Θ
│  └─ P/NP
│  └─ 归约

四 · §02 计算机架构子图

🌳 Ch13 章 知识图谱
├─ 冯诺依曼
│  └─ CPU
│  └─ 内存
│  └─ 总线
├─ CPU
│  └─ IC/CPI/T
│  └─ 流水线
│  └─ 分支预测
├─ 内存层级
│  └─ 寄存器
│  └─ L1/L2/L3
│  └─ DRAM
│  └─ 磁盘
├─ GPU
│  └─ SM
│  └─ Warp
│  └─ HBM

五 · §03 操作系统子图

🌳 Ch13 章 知识图谱
├─ 进程
│  └─ fork/exec
│  └─ PCB
│  └─ 调度
├─ 线程
│  └─ 用户级
│  └─ 内核级
├─ 内存
│  └─ 虚拟内存
│  └─ 页表
│  └─ TLB
├─ 文件系统
│  └─ inode
│  └─ FAT
│  └─ ext4
├─ 调度
│  └─ FCFS
│  └─ RR
│  └─ CFS

六 · §04 并发并行子图

🌳 Ch13 章 知识图谱
├─ 同步
│  └─ 锁
│  └─ 信号量
│  └─ 原子操作
├─ 并行
│  └─ Amdahl
│  └─ OpenMP
│  └─ MPI
├─ GPU
│  └─ CUDA
│  └─ SIMT
│  └─ 内存模型
├─ 分布式
│  └─ MapReduce
│  └─ Spark
│  └─ 共识

七 · §05 编程语言子图

🌳 Ch13 章 知识图谱
├─ 类型
│  └─ 静态/动态
│  └─ 强/弱
│  └─ 推导
├─ 范式
│  └─ 命令式
│  └─ 函数式
│  └─ 逻辑式
├─ 编译
│  └─ 前端
│  └─ 后端
│  └─ JIT
├─ 内存
│  └─ GC
│  └─ 引用计数
│  └─ 手动

八 · 跨章桥接

graph TB
    C01[Ch01 集合] --> T1
    C02[Ch02 矩阵] --> T2
    C03[Ch03 梯度] --> T3
    C07[Ch07 Transformer] --> T4
    C12[Ch12 GNN] --> T5

    T1[Ch13 §01 离散数学] --> FUSE{AI 系统栈}
    T2[Ch13 §02 架构 BLAS] --> FUSE
    T3[Ch13 §04 GPU 并行] --> FUSE
    T4[Ch13 §04 分布式训练] --> FUSE
    T5[Ch13 §04 GNN 内存] --> FUSE

    FUSE --> APP[大模型 + GNN + 推荐]

九 · 演进时间线

timeline
    1936 : 图灵机 / 丘奇 Lambda
    1945 : 冯诺依曼架构
    1958 : LISP 函数式
    1965 : Amdahl 论文
    1970 : Unix
    1972 : C 语言
    1985 : MIPS R2000
    1990 : World Wide Web
    1995 : Java / JS
    2003 : Hadoop / MapReduce
    2007 : NVIDIA CUDA
    2012 : AlexNet GPU 训练
    2017 : Transformer
    2020 : GPT-3 分布式
    2023 : LLM 推理优化

十 · 决策树 (选哪种并行方案)

graph TD
    START([任务?]) --> Q1{瓶颈?}
    Q1 -->|CPU bound| CPU[多线程 OpenMP]
    Q1 -->|GPU bound| GPUQ{显存?}
    Q1 -->|IO bound| IO[异步 IO]

    GPUQ -->|足够| GPUS[单 GPU CUDA]
    GPUQ -->|不够| DIST[分布式]

    CPU --> P1{进程/线程?}
    P1 -->|共享| THR[多线程]
    P1 -->|隔离| PROC[多进程]

    DIST --> D1{同步?}
    D1 -->|同步| AR[AllReduce]
    D1 -->|异步| AS[Async PS]

    AR --> D2{规模?}
    D2 -->|< 16| DDP[PyTorch DDP]
    D2 -->|> 16| FSDP[FSDP / ZeRO]

十一 · 复杂度大 O 表

🌳 Ch13 章 知识图谱
├─ 优
│  └─ O(1) 哈希
│  └─ O(log n) 二分
│  └─ O(n) 线性
│  └─ O(n log n) 归并
├─ 良
│  └─ O(n²) 冒泡
│  └─ O(n³) 矩阵乘
├─ 差
│  └─ O(2ⁿ) 子集
│  └─ O(n!) 旅行
├─ 不可
│  └─ NP 完整
│  │  └─ SAT
│  │  └─ 旅行商
│  │  └─ 团

十二 · 评测基准对比

任务 基准 工具 指标
CPU 性能 SPEC CPU gcc time
GPU 性能 MLPerf CUDA throughput
分布式 MLPerf Training NCCL time-to-accuracy
OS lmbench Linux latency
编译 llvm-test-suite Clang time
GC Dacapo Java pause

十三 · 损失 / 性能函数大全

graph LR
    A[CPU 性能] --> A1[T = IC × CPI × T_c]
    B[并行加速] --> B1["S = 1/(1-p + p/n)"]
    C[缓存] --> C1["T_avg = h T_L1 + (1-h) T_L2"]
    D[内存] --> D1[T_mem = bytes / BW]
    E[调度] --> E1[T_wait + T_service]
    F[GC] --> F1[T_pause × frequency]

这张导图覆盖 Ch13 全章。建议: 先背章节主入口 → 按节背子图 → 演进时间线 → 决策树。