CUDA 编程(二) GPU 编程与 CUDA

本文最后更新于:2025年1月30日 晚上

CUDA 编程并行计算整体流程

CUDAPipe - 从主机端申请内存,把内存的部分内容拷贝到设备端(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/
作者
YangYangYang
发布于
2025年1月25日
许可协议