GPU编程模型与核心概念速通

📚 共计 30 章节
01
GPU计算概述
从CPU到GPU的演进 · SIMT架构 · 适用场景 · CUDA/OpenCL/ROCm生态
基础概念
02
CUDA开发环境搭建
驱动安装 · Toolkit · cuDNN · 环境变量 · nvcc & deviceQuery验证
环境CUDA
03
GPU内存层次结构
全局/共享/寄存器/本地/常量/纹理内存 · 访问延迟对比
内存延迟
04
CUDA编程模型核心
Kernel定义调用 · Grid/Block/Thread · 内置变量
线程层次
05
线程束与执行模型
Warp概念 · 调度机制 · 分支发散 · Occupancy计算
Warp性能
06
共享内存与同步
__shared__ · Bank冲突 · __syncthreads() · 矩阵转置优化
同步优化
07
全局内存访问优化
合并访问 · 对齐要求 · 内存事务 · cudaMallocPitch
带宽对齐
08
常量内存与纹理内存
__constant__ · 缓存机制 · 纹理缓存特性 · 图像处理
只读缓存
09
CUDA流与并发执行
Stream概念 · 默认/非默认流 · 同步 · 多流并发Kernel与数据传输
并发异步
10
事件与计时
cudaEvent_t · Record · Synchronize · 计算Kernel执行时间
性能分析
11
CUDA错误处理
cudaError_t · GetLastError · PeekAtLastError · 异步错误检查
调试健壮
12
CUDA库简介
cuBLAS · cuFFT · cuRAND · Thrust (C++模板库)
加速
13
GPU原子操作
atomicAdd/Sub/Exch/CAS · 原子操作性能影响
原子同步
14
动态并行 (Dynamic Parallelism)
GPU启动新Grid · 嵌套Kernel限制与适用场景
高级嵌套
15
CUDA统一内存
cudaMallocManaged · 页面错误迁移 · Prefetching与Advise
统一易用
16
GPU性能分析工具
Nsight Systems · Nsight Compute · nvprof/ncu命令行
工具调优
17
CUDA编程最佳实践
最大化Occupancy · 最小化传输 · Page-Locked Memory · 异步重叠
最佳优化
18
OpenCL基础
平台模型 · 执行模型 · 内存模型 · VectorAdd Kernel
OpenCL跨平台
19
OpenCL vs CUDA
语法对比 · 生态对比 · 性能对比 · 选择建议
对比选型
20
ROCm与AMD GPU编程
ROCm安装 · HIP编程模型 · 生态工具
AMDHIP
21
GPU矩阵乘法优化
Naive · 共享内存分块 · Bank Conflict避免 · 向量化加载
矩阵分块
22
GPU归约 (Reduction) 优化
树形归约 · Warp Shuffle · 避免Bank Conflict · Unroll
归约Shuffle
23
GPU直方图计算
原子操作实现 · 共享内存优化 · 多通道直方图
直方图原子
24
GPU排序算法
双调排序 · 基数排序GPU实现思路
排序并行
25
GPU图计算
BFS的GPU实现 · 顶点与边并行策略
BFS
26
深度学习中的GPU编程
卷积GPU实现 (im2col+GEMM) · cuDNN · 混合精度FP16
DL卷积
27
多GPU编程
cudaSetDevice · P2P通信 · NCCL库 (AllReduce, Broadcast)
多卡NCCL
28
GPU虚拟化与云计算
GPU Passthrough · vGPU · MIG · Kubernetes管理GPU
虚拟化
29
GPU编程的未来趋势
C++标准并行 · SYCL · OneAPI · AI专用芯片对比
趋势SYCL
30
综合实战:高性能GPU卷积层
Forward+Backward · 内存优化 · Kernel设计 · 全流程调优
实战卷积