CUDA 编程(二) GPU 编程与 CUDA
本文最后更新于:2025年1月30日 晚上
CUDA 编程并行计算整体流程
-
从主机端申请内存,把内存的部分内容拷贝到设备端(GPU) - CPU
调度在设备端的核函数计算(异步)---> 核函数:设备段执行的函数 -
从设备端拷贝到主机端,并释放内存显存
CUDA 内存模型
- CUDA 中的内存模型分为以下几个层次(硬件):
- 每个线程处理器(SP)都有自己的寄存器
- 每个 SP 都有自己的局部内存,寄存器和局部内存只能被线程自己访问
- 每个多核处理器(SM)内都有自己的共享内存,共享内存可以被线程块内(block)所有线程访问
- 一个 GPU 的所有 SM 共有一块全局内存,不同线程块的线程都可以使用
- CUDA 中的内存模型分为以下几个层次(软件):
- 线程处理器(SP)对应线程(thread)
- 多核处理器(SM)对应线程块(block)
- 设备端(device)对应网格(grid)
- 一个 kernel 其实由一个 grid 执行
- 一个 kernel 一次只能在一个 GPU 上执行
CUDA 编程(二) GPU 编程与 CUDA
https://zzmes.github.io/2025/01/25/CUDA-2/