cuda中的thread、block、grid

发布时间:2024年01月17日

cuda编程本质就是进行并行计算,就是同时用多个计算资源解决一个计算问题。

  • host:cpu和内存(host memory)
  • device: gpu和显存(device memory)

软件编程中的概念

  • thread:线程,GPU中最小的执行单元。在并行计算中,每个线程都执行相同的指令,多个thread同时进行计算。
  • block:多个thread组成一个block。同一个block内的thread可以同步(synchronize),也可以使用shared memory(GPU中的共享内存,下文会讲到)进行通信。block可以是一维、二维或者三维。
  • grid:多个block组成一个grid。grid可以是一维、二维或者三维。

下图中,有两个grid,每个grid中有4个block,每个block又有16个thread。

在这里插入图片描述

GPU物理概念

下图左边是软件中的概念,右边则是与之对应的物理概念。

在这里插入图片描述

  • cuda core,或者叫SP(Streaming Processor)流处理器。从上图可以看出,SP就是thread的物理映射。
  • SM(Streaming Multiprocessor),里面包括多个cuda core(具体的数量与GPU架构有关)。里面还包括SFU(特殊运算单元)、shared memory(共享内存)、register、warp scheduler(线程束调度器)等。
    在上图中,block和SM是对应的,但实际执行时,一个SM可以存放多个block。
  • GPU,多个SM就组成了整个GPU。
文章来源:https://blog.csdn.net/Tulip_Alice/article/details/135632121
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。