⚡ GPU · CPU 协同计算
性能调优实战 · 30章完全目录
📘
风格 · 全彩卡片
01
异构计算概述
异构计算定义
CPU/GPU架构差异
协同计算必要性
典型应用场景
02
GPU架构基础
SM / CUDA Core
Tensor Core
内存层次结构
Warp与线程束
03
CUDA编程入门
编程模型
Kernel编写
Grid/Block/Thread
cudaMalloc/Memcpy
04
CPU与GPU任务划分
Amdahl/Gustafson
任务分解策略
数据并行 vs 任务并行
负载均衡原则
05
数据搬移优化
PCIe带宽瓶颈
cudaMemcpyAsync
流水线重叠
零拷贝内存
06
共享内存与同步
共享内存声明
Bank Conflict
__syncthreads()
Warp Shuffle
07
全局内存访问优化
合并访问
对齐与跨步
只读缓存 __ldg
纹理/表面内存
08
流与并发执行
CUDA Stream
多流并发
Stream回调
MPS服务
09
事件与性能测量
CUDA Event
时间测量技巧
Nsight Systems
nvprof
10
核函数优化策略
Occupancy优化
寄存器压力
循环展开
分支发散处理
11
CPU端优化
数据预取
缓存友好设计
SIMD向量化
OpenMP多线程
12
内存池与统一内存
统一内存原理
cudaMallocManaged
内存迁移策略
性能陷阱
13
CUDA库的运用
cuBLAS矩阵
cuFFT
Thrust模板库
cuRAND随机
14
多GPU编程
多GPU任务分配
P2P通信
NVLink/NVSwitch
多GPU同步
15
CPU-GPU流水线设计
生产者-消费者
双缓冲/环形缓冲
异步任务提交
背压机制
16
性能瓶颈分析
Roofline模型
计算/内存密集型
带宽利用率
延迟隐藏
17
编译器优化
nvcc编译选项
-arch / -code
PTX / SASS
内联PTX汇编
18
数值精度与混合精度
FP32/FP16/INT8
混合精度训练
Tensor Core使用
精度损失控制
19
动态并行与递归
Dynamic Parallelism
子核函数启动
递归实现
适用场景与限制
20
CUDA Graphs
Graph创建/执行
依赖关系管理
Instantiation优化
与Stream对比
21
CPU-GPU协同调试
cuda-gdb
cuda-memcheck
Nsight Debugger
常见错误排查
22
深度学习协同计算
PyTorch/TF加速
DataLoader优化
混合精度训练
分布式训练
23
科学计算中的协同
分子动力学模拟
有限元分析
气象模型加速
粒子模拟案例
24
图像与视频处理
OpenCV CUDA
GPU加速滤波
NVDEC/NVENC
实时处理管线
25
数据库与大数据
GPU加速SQL
cuDF / RAPIDS
GPU排序/哈希
ETL流水线优化
26
容器化与云部署
Docker GPU镜像
K8s GPU调度
NVIDIA Operator
弹性伸缩策略
27
功耗与散热管理
nvidia-smi监控
动态频率调整
TDP限制
绿色计算策略
28
安全与可靠性
ECC内存校验
计算错误检测
容错机制
MIG安全隔离
29
前沿技术展望
CXL互连
存算一体架构
量子计算+GPU
AI编译器趋势
30
综合实战项目
端到端协同系统
性能调优全流程
项目文档与交付
课程总结与展望