cuda中的thread、block、grid

本文介绍了CUDA编程的核心概念,如CPU/GPU内存区分、线程/块/网格的组织结构,以及GPU硬件组件如流处理器、StreamingMultiprocessor的细节,展示了CUDA如何利用GPU进行并行计算。
摘要由CSDN通过智能技术生成

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。
  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值