⚡ GPU · CPU 异构计算
📘 实战手册 · 30章完全进阶
🧩 风格 · 全彩目录 30
什么是异构计算 CPU与GPU架构差异 为什么需要异构计算 应用场景
NVIDIA架构演进 流多处理器SM CUDA核心 内存层次结构 Warp与线程束
NVIDIA驱动安装 CUDA Toolkit安装 cuDNN配置 VS/Nsight配置 验证安装
主机与设备 Kernel函数 线程层次结构 Hello World实战
cudaMalloc cudaMemcpy cudaFree 统一内存 内存分配最佳实践
一维/二维/三维索引 线程块大小选择 Occupancy优化
并行归约原理 树形归约实现 Warp Shuffle优化 避免Bank Conflict
__shared__关键字 __syncthreads() 共享内存布局 动态共享内存分配
__constant__使用场景 纹理内存缓存特性 只读缓存__ldg
CUDA流概念 默认流与非默认流 流同步 多流并发执行 重叠计算与数据传输
cudaEvent_t创建/销毁 cudaEventRecord cudaEventSynchronize 计算带宽与FLOPS
cudaError_t cudaGetLastError cudaPeekAtLastError 错误检查宏封装 调试技巧
Nsight Systems时间线 Nsight Compute内核分析 Occupancy分析 瓶颈定位
朴素矩阵乘法 全局内存合并访问 Tiling分块策略 共享内存优化
Bank Conflict消除 向量化加载int4/float4 双缓冲技术 寄存器优化
im2col算法 直接卷积实现 共享内存卷积优化 Winograd算法简介
cuBLAS句柄创建 cublasSgemm/Dgemm 与自定义Kernel对比 最佳实践
cuFFT计划创建 一维/二维FFT 批量FFT cuFFT回调函数
Thrust向量与迭代器 sort/reduce/transform 与原始CUDA互操作 性能对比
cudaSetDevice 多GPU数据传输 点对点通信P2P 多GPU归约
CPU多线程+GPU加速 任务划分策略 数据依赖处理 实战案例
MPI初始化 分布式GPU通信 NCCL库简介 多节点大规模训练
CUDA Graph概念 图捕获与实例化 图更新 图执行性能优势
动态并行机制 嵌套Kernel启动 递归Kernel 使用场景与限制
Tensor Core架构 WMMA API使用 混合精度训练FP16/BF16 cuBLASLt
atomicAdd/atomicCAS 全局内存原子操作 共享内存原子操作 锁自由编程
__shfl_sync __ballot_sync __match_all_sync Warp级归约
合并访问原则 对齐要求 L1/L2缓存利用 只读缓存 预取指令
稀疏矩阵存储CSR/COO 稀疏矩阵向量乘法SpMV cuSPARSE库
图像读取与预处理 GPU加速滤波 边缘检测 性能调优与部署