CUDA进阶(一)

本文介绍了CUDA的硬件和软件术语,包括SP作为基本处理单元执行线程,SM类似CPU,线程组织成block和Grid。重点讲解了warp的概念,它是调度和运行的基本单位,一个warp内的线程执行相同指令但使用不同数据资源。CUDA的线程调度策略和驻留线程数量与SM和warp的关系也进行了说明。
摘要由CSDN通过智能技术生成

1.硬件和软件术语的对应

硬件软件
1.1 SP1.2 thread
1.3 SM

1.4  blocks(很多block构成一个SM)

1.5device1.6 Grid

1.1SP 是最基本的处理单元,指令和任务最后都是在这里处理, 并行说的也是很多个SP(线程)同时进行

1.2一个SP会执行一个thread,一个thread里会有:instruction,address,counter,状态寄存器,执行路径

1.3SM 可以类比成CPU

CPUSM
RAM

shared memory

registerregister
时钟

warp scheduler

ALUSP

1.4block,由很多个thread构成,可以通过共享内存通信,

1.6更多个block构成一个Grid(很多个SM构成了GPU device)

2.warp:很多个thread构成一个warp。在同一个warp里的线程,以不同的数据资源执行相同的指令

一个warp是调度和运行的基本单位

(为啥不直接调度block或者thread呢,我才是因为thread单位太小,而block可能又太大,所以才在中间加了这么一个单位,这个是可以被设定好的,我们不能改的单位大小,

那一个block到底有多少个thread呢?是我们自己可以设定的,凡是可自己定义的,都会有优劣之分)

3.一个warp执行时候需要占用整个SM,啥意思?就是我一个SM中可能有贼多个warp,但是我每次只能翻一个warp的牌子,多了受不了,等这个warp执行完了,warp scheduler再调度下一个,所以!一个GPU上驻留线程(resident thread)最多有SM的个数乘上warp个(什么是驻留线程,就是正在工作而非闲置的线程)

4.软件层面上来讲,thread是被分进block里的,block是被分进Grid里的

5.一个warp中的thread可以以任意顺序执行,切换warp是没有什么消耗的(无需保存或读取上下文),而CPU中切换线程是需要的

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值