CUDA的指令发射与warp调度

概念

下面的图是fermi的sm单元,可以看到里面有Warp Scheduler和Dispatch Unit,那么这两个单元是干什么的?
在这里插入图片描述

通俗理解

首先假如有n个warp是等待处理的,根据下面的图就可知道,在一个cycle中会有3个warp加载到warp_scheduler中,我们知道一个warp其实就是32个线程,说白了就是这个warp_scheduler同时可以加载32个线程的指令,接下来,每个线程可能都有很多事情要做,比如此刻有个warp需要做32个浮点数计算,从下面的图可以看到,一个warp_scheduler只有一个任务分发器,而这个任务分发器只连接到了4个FPU,所以这32个浮点数的计算就需要8个clycle才能完成(剩下7个cycle可以发射点其他任务,比如内存的读取存储等指令),主要是因为任务单元有限,你只有4个FPU。下图的建模方式是比较简单的,不同架构的调度器,发射器,计算单元配比不大相同,比如dual-issue, 但抽像的按照下图理解应该问题不大。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值