Day 11 · 显存管理
拆开 PyTorch 的 caching allocator:Segment / Block 两级结构、small/large pool 分裂、stream 池隔离;掌握 memory_summary / memory_snapshot 工具链,学会 OOM 排查的标准流程,并理解 expandable_segments 如何根治碎片化。
拆开 PyTorch 的 caching allocator:Segment / Block 两级结构、small/large pool 分裂、stream 池隔离;掌握 memory_summary / memory_snapshot 工具链,学会 OOM 排查的标准流程,并理解 expandable_segments 如何根治碎片化。
拆开 PyTorch 算子实现层:c10 是底座,ATen 是算子库,native_functions.yaml 是真理之源。从代码生成管线到 TORCH_LIBRARY 注册机制,跑通一个自定义 CUDA 算子。
用 ~200 行 Python 手写一个 mini-autograd:理解动态计算图的构建、链式法则的层层应用、拓扑排序的反向遍历。在最小可运行实现里看清 PyTorch backward() 的真面目。
打开 PyTorch 黑盒:Tensor 与 Storage 的分离、Dispatcher 的多重派发机制、Autograd Engine 的工作原理。跟踪一行 a + b 从 Python 一路调到 CUDA kernel 的完整路径。