VIP20
本课程属于:008-显存碎片治理 AI算力与GPU工程 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

从零学会显存碎片分析

📚 共计 30 章节
01
显存碎片初探
什么是显存碎片?为什么大模型训练会遇到OOM?显存分配的基本单位。
概念OOM
02
CUDA内存管理基础
cudaMalloc与cudaFree的工作原理,虚拟内存与物理内存的映射。
CUDA底层
03
内存池机制
为什么深度学习框架要自己管理内存?内存池的分配与回收策略。
内存池框架
04
内部碎片与外部碎片
两种碎片的定义、产生原因、对显存利用率的影响。
碎片分类利用率
05
碎片率量化
如何定义和测量碎片率?碎片率的计算公式与工具。
量化指标
06
PyTorch缓存分配器
PyTorch的caching allocator源码分析,stream与block的管理。
PyTorch源码
07
碎片产生场景一
动态shape模型训练,频繁的tensor创建与销毁。
动态shape高频
08
碎片产生场景二
混合精度训练中的master weights与gradients。
混合精度master weights
09
碎片产生场景三
pipeline parallelism中的中间激活值存储。
流水线并行激活值
10
碎片产生场景四
gradient checkpointing与重计算的内存模式。
checkpoint重计算
11
碎片分析工具一
nvidia-smi与gpustat的显存视图解读。
nvidia-smigpustat
12
碎片分析工具二
PyTorch memory summary API实战。
PyTorchsummary
13
碎片分析工具三
CUDA Memory Checker与cuda-gdb。
cuda-gdbChecker
14
碎片分析工具四
Nsight Systems的显存时间线分析。
Nsight时间线
15
碎片分析工具五
自定义hook追踪tensor生命周期。
hook生命周期
16
碎片优化策略一
预分配与tensor复用,减少动态分配。
预分配复用
17
碎片优化策略二
调整PyTorch分配器参数(max_split_size_mb等)。
分配器参数调优
18
碎片优化策略三
使用torch.cuda.empty_cache()的正确姿势。
empty_cache最佳实践
19
碎片优化策略四
手动实现内存池,绕过框架分配器。
自定义池高级
20
碎片优化策略五
使用CUDA Graphs固定计算图,消除动态分配。
CUDA Graphs静态图
21
碎片优化策略六
调整batch size与sequence length,使其对齐内存块。
对齐batch
22
碎片优化策略七
使用activation checkpointing与offloading。
checkpointoffload
23
碎片优化策略八
使用vLLM/PagedAttention的显存管理思想。
vLLMPagedAttention
24
碎片优化策略九
使用NVIDIA的MPS与MIG进行显存隔离。
MPSMIG
25
碎片优化策略十
使用ZeRO系列优化器减少冗余存储。
ZeRO优化器
26
实战案例一
LLaMA推理时的显存碎片诊断与优化。
LLaMA推理
27
实战案例二
Stable Diffusion训练中的显存抖动问题。
SD抖动
28
实战案例三
多任务并发推理服务的显存碎片治理。
并发推理
29
实战案例四
MoE模型在专家并行中的显存碎片挑战。
MoE专家并行
30
总结与展望
显存碎片管理的未来趋势,硬件级解决方案(如CXL、HBM3)。
趋势硬件