GPU加速基础知识
每个grid都有自己的constant memory和texture memory(用于增加3D模型真实感和细节的图像数据块,通常以二维或三维图像的形式存储在GPU的显存中,并通过专用的纹理硬件和缓存来高效读取和处理,从而映射到模型表面,实现丰富的视觉效果)GPU的主要特点是由非常多算力比较低的核,而CPU是有几个算力比较大的但是数量比较少的核。所以CPU适合串行计算,GPU适合并行计算,而连接C
CUDA(compute unified device architecture)是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够对复杂的计算问题做性能速度优化
GPU的主要特点是由非常多算力比较低的核,而CPU是有几个算力比较大的但是数量比较少的核。所以CPU适合串行计算,GPU适合并行计算,而连接CPU和GPU的工具,就是CUDA。
从软件层面来讲,thread -> thread group -> grid -> kernel
从硬件层面来讲,thread processor(SP) -> multiprocessor(MP) -> GPU
CUDA 内存模型
每个线程都有自己register
每个线程都有自己的local memory
每个线程块都有自己的shared memory
每个grid都有自己的global memory
每个grid都有自己的constant memory和texture memory(用于增加3D模型真实感和细节的图像数据块,通常以二维或三维图像的形式存储在GPU的显存中,并通过专用的纹理硬件和缓存来高效读取和处理,从而映射到模型表面,实现丰富的视觉效果)
存储器的速度 register > local memory > shared memory > global memory
在CUDA编程中, Device = GPU,Host = CPU, kernel = function that run on the device
__global__定义一个CPU 上调用,GPU上执行
device GPU上调用,GPU上执行
host CPU上调用,CPU上执行
GPU加速优化策略
- 内存访问优化
- 共享内存
- 计算并行度优化
- 核函数优化(避免分支发现、同一线程束内的线程执行相同指令,否则性能下降)
- 使用高效库与策略
具体的
- 数据与计算优化(数据预处理加速,在GPU上执行数据增强,减少CPU-GPU传输时间)
- 模型结构与算法优化(模型部署、剪枝、量化、知识蒸馏,高效模型架构,如Flash Attention)算子优化:CUDA Kernel优化(优化线程组合、优化内存访问、计算与传输并行)
- 并行与分布训练(数据并行、单机多卡、多机多卡、DP、DDP)GPU多卡通信对比:PCle、NVLink、RDMA
- 混合精度训练
- 梯度优化策略
- 优化器与学习率策略(自适应优化器AdamW、 LAMB, 学习率调度warmup、cosine annealing等)
- 显存管理:Pageable、Pinned、Unified Memory
- AI编译器:TVM/XLA编译优化(算子融合、自动调优、内联计算、内存复用)
更多推荐


所有评论(0)