社区
CUDA高性能计算讨论
帖子详情
CUDA中一个SM如果包含了多个线程块
考完高考high起来
2020-12-22 03:58:29
那么这个SM是一个线程块一个线程块的进行处理呢,即对第一个线程块取一个线程束,处理完之后对这个线程块的第二个线程束处理。
还是每个线程块,各取几个线程,组合成一个线程束进行处理。
还是第一个线程块的第一个线程束处理完之后,从另一个线程块中选择一个线程束进行处理?
...全文
540
回复
打赏
收藏
CUDA中一个SM如果包含了多个线程块
那么这个SM是一个线程块一个线程块的进行处理呢,即对第一个线程块取一个线程束,处理完之后对这个线程块的第二个线程束处理。 还是每个线程块,各取几个线程,组合成一个线程束进行处理。 还是第一个线程块的第一个线程束处理完之后,从另一个线程块中选择一个线程束进行处理?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CUDA
中
SM
对
线程
块
的调度
sm
流处理器簇对blocks的调度策略 在
cuda
中
,GPU
中
的
SM
(比如GTX650有两个
SM
处理器)被CPU调度器把
线程
块
逐个分配到
SM
上,每个
SM
同时处理这个被分配的
线程
块
,但是每次每个时刻只能处理
一个
warp的
线程
束。由于有时候存在读取等操作导致等待,那么
SM
会转而处理其他warp 来掩盖这个延迟。
一个
warp 的
线程
束不是在同一
线程
块
中
。 为什么 每次同时处理
多个
block,而且为什...
CUDA
线程
调度
1,
一个
GPU会有
多个
SM
(Streaming MultiProcessor),
SM
之间是并行的; 2,
一个
SM
可以同时处理
多个
Block的
多个
wrap,也就是说,同一时刻,
一个
SM
内,不止只有
一个
wrap在执行; 3,
SM
处理完
一个
Block后,才会处理下
一个
Block,也就是说例如
SM
可以同时处理3个Block,那么这3个Block的其
中
一个
处理完后,才会处理第四个Block。 4,
一个
wrap的
线程
会分配到32个(假设
一个
wrap的
线程
数量是32)
CUDA
core,也叫stream proce
3.1
CUDA
执行模型概述
一、
CUDA
执行模型概述 1.1 GPU架构概述 GPU架构主要围绕流式多处理器(
SM
)进行的搭建。如下图所示。
SM
中
有
多个
CUDA
执行核心,支持数百个
线程
的并发执行。当启动
一个
grid时,其
中
的
线程
块
被划分到
SM
上进行执行,
一个
线程
块
不会跨
SM
进行执行。同时在
一个
SM
中
可能执行
多个
线程
块
,
线程
块
之间根据
SM
资源的可用性进行调度(主要由Warp Scheduler负责)。
SM
会将
线程
块
再次进行划分,划分为
线程
束(每个wrap有32个
线程
),然后再调度执行,wrap是
SM
调度运行的最小单位。此外
cuda
线程
调度
硬件描述 从硬件上看,一
块
显卡的最小单元是GPU核(或者叫做Stream Processor),所有核心平均分配在
多个
SM
中
,而
多个
SM
共同构成整
块
显卡的核心。比如RTX2070有36个Streaming Multiprocessors,而每个
SM
有64个
CUDA
Cores,RTX2070具有36*64=2304个
CUDA
Cores。 软件描述 thread,block,grid,war...
CUDA
基础教程(2):费米架构
1、总体架构 费米架构的计算能力为2.0和2.1。G80/G92的设备为1.0,1.1,1.2。GT200架构为1.3。3.0以上的设备是开普勒架构的设备。在费米架构设备上,每个
线程
块
至多可以容纳1024个
线程
。在每个
线程
块
的
线程
不是很多时(小于等于192时),
一个
SM
可以容纳8个
线程
块
。 每个
线程
块
中
的
线程
数固定设置为192-768时。可以获得GPU的百分百利用率。 执行每个
线程
块
的事件是不
CUDA高性能计算讨论
353
社区成员
615
社区内容
发帖
与我相关
我的任务
CUDA高性能计算讨论
CUDA高性能计算讨论
复制链接
扫一扫
分享
社区描述
CUDA高性能计算讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章