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

CUDA核函数显存溢出与优化方案

📚 共计 30 章节
01
显存溢出初体验
什么是OOM?显存与内存的区别 · 简单触发案例
入门OOM
02
CUDA内存模型全景
全局/共享/寄存器/本地/常量/纹理 · 层级结构图
核心架构
03
全局内存分配与释放
cudaMalloc / cudaFree · 内存泄漏陷阱
基础安全
04
内存带宽与延迟
为什么全局内存慢?合并访问(Coalesced Access)原理
性能带宽
05
共享内存入门
片上内存优势 · Bank Conflict是什么?
共享内存进阶
06
共享内存优化实战
矩阵转置优化 · 200GB/s → 800GB/s
优化实战
07
寄存器优化
寄存器溢出代价 · 控制每线程寄存器数量
寄存器占用
08
常量内存与只读缓存
__constant__ vs const __restrict__ 选择
常量只读
09
纹理内存与表面内存
适合场景 · 图像处理实际应用
纹理图像
10
内存池技术
cudaMallocAsync · 流式分配 · 减少开销
内存池异步
11
统一内存 (Unified Memory)
CUDA 6.0革命 · 自动迁移与页面错误
统一内存UM
12
统一内存优化
Prefetch / Advise · 手动迁移策略
预取调优
13
零拷贝内存
映射主机内存 · 适合小数据量场景
零拷贝映射
14
固定内存 (Pinned Memory)
cudaHostAlloc · DMA传输加速
固定内存DMA
15
内存带宽测试
手写bandwidthTest · 理论vs实际带宽
测试带宽
16
内存访问模式分析
AoS vs SoA · 结构体数组/数组结构体性能
模式SoA
17
循环展开与内存优化
减少循环开销 · 提高内存吞吐量
循环展开吞吐
18
向量化内存访问
float2/float4 · 128位对齐访问
向量化对齐
19
异步内存传输
cudaMemcpyAsync · 流(Stream) · 计算传输重叠
异步流
20
双缓冲技术
乒乓缓冲 · 隐藏传输延迟
双缓冲延迟隐藏
21
内存压缩技术
无损/有损压缩 · 显存不足应急方案
压缩应急
22
梯度检查点
深度学习显存换时间策略
梯度检查点DL
23
混合精度训练
FP16 / BF16 · 显存减半魔法
混合精度FP16
24
显存碎片化问题
显存增多却分配失败 · 碎片整理策略
碎片整理
25
显存监控与调试
nvidia-smi · Nsight Systems · cuda-memcheck
监控调试
26
常见OOM场景与解决方案
Batch Size过大 · 中间结果缓存 · 内存泄漏
OOM实战
27
显存溢出案例分析
Transformer模型OOM调试全过程
案例Transformer
28
多GPU显存管理
数据并行/模型并行 · 显存负载均衡
多GPU并行
29
CUDA Graphs与内存优化
图捕获(Graph Capture) · 减少内核启动开销
CUDA Graphs启动开销
30
总结与最佳实践
30条显存优化军规 · 从入门到精通路线图
总结路线图