01
显存基础
显存的作用与架构 · 带宽与容量 · 显存与算力的关系
概念核心
02
压测工具选型
nvidia-smi · nvtop · PyTorch Profiler · Nsight Systems对比
工具对比
03
吞吐量定义
Throughput计算公式 · 影响吞吐量的因素
指标公式
04
显存瓶颈特征
OOM报错分析 · 显存利用率低但性能差 · 带宽饱和现象
诊断OOM
05
搭建压测环境
Docker镜像准备 · CUDA版本匹配 · Python环境配置
环境Docker
06
编写基础压测脚本
PyTorch循环推理脚本 · 记录时间与显存
脚本实战
07
监控显存实时变化
使用nvidia-smi dmon · 解析显存占用曲线
监控命令行
08
定位显存分配热点
torch.cuda.memory_summary() · 内存快照分析
调试PyTorch
09
张量生命周期分析
张量创建、使用、释放的时机与显存峰值
生命周期优化
10
梯度累积与显存
梯度张量存储 · 梯度检查点 (Checkpointing) 技术
梯度Checkpoint
11
Batch Size与显存
Batch Size对显存占用的线性关系 · 寻找最优Batch Size
Batch调优
12
模型并行与显存
Model Parallelism原理 · 显存分片策略
并行分布式
13
数据并行与显存
Data Parallelism的显存冗余 · 梯度同步开销
并行DP
14
混合精度训练
FP16/BF16显存减半原理 · AMP自动混合精度实践
精度AMP
15
显存碎片化问题
碎片产生原因 · torch.cuda.empty_cache()的局限性
碎片内存
16
显存泄漏检测
循环中显存持续增长 · 使用tracemalloc定位泄漏
泄漏调试
17
CPU Offloading技术
将部分张量移至CPU · 牺牲速度换显存
Offload权衡
18
激活值显存优化
激活值 (Activation) 的存储 · Activation Checkpointing
激活值Checkpoint
19
优化器状态显存
Adam优化器的动量与方差 · 8-bit优化器 (bitsandbytes)
优化器8-bit
20
注意力机制显存
Flash Attention原理 · 显存节省效果实测
AttentionFlash
21
KV Cache显存
推理时KV Cache的显存占用 · PagedAttention优化
推理KV
22
连续批处理
Continuous Batching原理 · 提高吞吐量的方法
批处理吞吐
23
显存带宽瓶颈
带宽利用率计算 · 带宽受限时的优化策略
带宽瓶颈
24
多卡显存均衡
手动分配模型层到不同GPU · 显存负载均衡
多卡均衡
25
压测报告生成
自动记录显存峰值 · 吞吐量 · 生成可视化报告
报告可视化
26
实战案例一:BERT推理压测
定位显存瓶颈并优化
实战BERT
27
实战案例二:LLaMA训练压测
显存不足时的解决方案
实战LLaMA
28
实战案例三:Stable Diffusion
显存优化 · 降低显存占用50%
实战SD
29
常见误区
显存越大越好?显存利用率100%就是好的?
误区认知
30
总结与进阶
显存优化方法论 · 推荐学习资源与工具链
总结进阶