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

CUDA显存溢出 · 排查与解决

📚 共计 30 章节
01
显存溢出初探
什么是CUDA显存溢出?常见报错信息解读(OOM、CUDA out of memory)
入门报错
02
显存架构基础
GPU显存层级结构(全局显存、共享显存、寄存器、L1/L2缓存),显存带宽与延迟
硬件原理
03
PyTorch显存管理机制
PyTorch的显存分配器、缓存分配器、显存碎片化问题
PyTorch分配器
04
TensorFlow显存管理机制
TF的显存动态增长、GPU选项配置、显存碎片化
TensorFlow配置
05
显存监控工具
nvidia-smi详解、gpustat、nvtop、PyTorch的torch.cuda.memory_summary()
工具监控
06
代码级显存分析
使用torch.cuda.memory_allocated()和max_memory_allocated()定位显存热点
调试API
07
梯度累积与显存
梯度累积原理、如何用梯度累积降低显存占用、batch size与显存的关系
优化梯度
08
混合精度训练
FP16与FP32的显存差异、AMP(自动混合精度)的使用、梯度缩放
精度AMP
09
梯度检查点
Gradient Checkpointing原理、实现方式、显存与计算时间的权衡
检查点权衡
10
模型并行与数据并行
DP与DDP的区别、模型并行(张量并行、流水线并行)的显存影响
并行分布式
11
显存碎片化问题
碎片化产生的原因、如何检测碎片化、torch.cuda.empty_cache()的正确用法
碎片cache
12
大模型加载技巧
load_in_8bit、load_in_4bit量化加载、device_map='auto'的使用
量化加载
13
显存泄漏排查
什么是显存泄漏?如何用gc模块和torch.cuda.ipc_collect()排查泄漏
泄漏gc
14
DataLoader与显存
num_workers设置不当导致的显存问题、pin_memory的影响
数据加载worker
15
中间变量与显存
inplace操作、detach()、no_grad()对显存的影响
中间变量inplace
16
Batch Size调优
如何找到最大batch size、梯度累积替代方案、动态batch size
batch调优
17
序列模型显存优化
Transformer显存分析、KV Cache优化、Flash Attention原理
TransformerAttention
18
卷积网络显存优化
im2col算法、显存复用、cudnn benchmark的影响
卷积cudnn
19
多卡训练显存均衡
DDP中的显存负载均衡、梯度同步的显存开销
多卡均衡
20
实战案例1:BERT OOM
BERT训练OOM排查全过程(从报错到解决)
BERT实战
21
实战案例2:ResNet泄漏
ResNet-50训练显存泄漏定位与修复
ResNet泄漏
22
实战案例3:LLaMA推理
LLaMA推理显存不足的优化方案
LLaMA推理
23
实战案例4:GAN爆炸
GAN训练显存爆炸的根因分析
GAN爆炸
24
实战案例5:多任务竞争
多任务学习显存竞争问题
多任务竞争
25
实战案例6:3D CNN
视频理解模型(3D CNN)显存优化
视频3D CNN
26
实战案例7:GNN溢出
图神经网络(GNN)显存溢出排查
GNN图网络
27
实战案例8:强化学习
强化学习环境模拟显存管理
强化学习环境
28
实战案例9:分布式不均
分布式训练中的显存不均衡问题
分布式不均衡
29
实战案例10:推理动态调整
推理服务中的显存动态调整
推理动态
30
总结与最佳实践
显存优化checklist、常用工具链推荐、学习路径建议
总结checklist