VIP8
本课程属于:036-CUDA内存传输与带宽优化 AI智能与边缘计算工程 · 共 8 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

显存优化:从内存拷贝开始

📚 共计 30 章节
01
显存瓶颈的根源
为什么数据搬运比计算更贵?——理解PCIe带宽与内存层级。
PCIe内存层级
02
CPU与GPU的内存模型
统一内存与异构内存架构的差异。
异构统一内存
03
Page-Locked Memory
锁页内存:告别缺页中断,加速Host到Device传输。
锁页Host-Device
04
零拷贝技术 (Zero-Copy)
映射GPU显存到CPU地址空间,绕过显式拷贝。
映射Zero-Copy
05
异步传输与Stream
用cudaMemcpyAsync隐藏数据传输延迟。
异步Stream
06
内存池化 (Memory Pool)
预分配与复用,减少cudaMalloc开销。
池化预分配
07
统一内存 (Unified Memory)
自动迁移数据,但小心性能陷阱。
自动迁移陷阱
08
双缓冲 (Double Buffering)
计算与传输重叠的经典模式。
重叠缓冲
09
流水线 (Pipelining)
多Stream并行,榨干PCIe带宽。
流水线多Stream
10
数据分块 (Tiling)
将大张量切块,分批传输减少显存峰值。
分块张量
11
梯度累积与显存复用
训练场景下的显存优化策略。
梯度累积复用
12
混合精度训练 (FP16/BF16)
降低单元素大小,间接减少传输量。
FP16BF16
13
梯度压缩 (Gradient Compression)
通信场景下的显存与带宽优化。
压缩通信
14
激活值重计算 (Activation Checkpointing)
用时间换空间,减少中间结果存储。
重计算Checkpoint
15
显存碎片整理
理解cudaMalloc的分配策略与碎片化问题。
碎片cudaMalloc
16
cudaMemPrefetchAsync
主动预取数据到指定设备。
预取Prefetch
17
cudaMemAdvise
给统一内存管理器提供访问模式提示。
提示MemAdvise
18
cudaHostRegister
动态注册/注销主机内存为锁页内存。
注册锁页
19
cudaMallocManaged vs cudaMalloc
区别与选择。
Managed选择
20
Nsight Systems 分析
分析内存拷贝耗时。
Nsight分析
21
Nsight Compute 显存访问
分析内核中的显存访问模式。
Compute访问模式
22
nvidia-smi 监控
监控实时显存使用与带宽。
监控带宽
23
CUDA Graphs
将内核启动与内存拷贝固化为图,减少启动开销。
Graph固化
24
MPS (Multi-Process Service)
多进程共享上下文,减少显存冗余。
MPS共享上下文
25
NVLink/NVSwitch
多GPU间高速直连,绕过PCIe瓶颈。
NVLink直连
26
GPUDirect RDMA
GPU与网卡/存储设备直接通信。
RDMAGPUDirect
27
cuDF 与 RAPIDS
在DataFrame操作中自动优化显存。
cuDFRAPIDS
28
PyTorch pin_memory & non_blocking
框架层面的优化。
PyTorchpin_memory
29
TensorFlow tf.data & prefetch
数据管线的显存优化。
tf.dataprefetch
30
综合案例:优化完整训练管线
从内存拷贝开始,优化一个完整的深度学习训练管线。
综合案例训练管线