首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CUDA nvvp提供的报告中,“发布的指示”是什么意思?

在CUDA nvvp提供的报告中,“发布的指示”是什么意思?
EN

Stack Overflow用户
提问于 2018-04-19 13:17:08
回答 1查看 377关注 0票数 0

我使用Nvidia可视化分析器(nvvp)在cublas内核上执行内核分析。这个链接潜伏期分布是延迟分布的结果。

该文件以这种方式解释了“指令发布”一词--“指令发布--翘曲”,这让我感到困惑。这到底是什么意思?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-19 14:40:02

首先介绍一下CUDA执行模型的背景。

CUDA 经纱是CUDA GPU调度和执行的基本单元。warp是由32个线程组成的固定集合,这些线程一起执行。

因此,在任何给定的时钟周期中,由翘曲中的一个线程执行的指令总是由翘曲中的所有其他线程执行(尽管它们可能被预测为关闭或屏蔽不活动,而忽略了Volta )。

CUDA流多处理器( SM )有调度器,它查看属于可用翘曲的各种执行线程,并从已准备好的执行线程中选择指令,以便将这些指令调度到SM中的各个执行单元上。

然后发出的指令,意味着翘曲调度器选择一条指令,并将它(调度它)发送到一组执行单元上,以进行处理。说“指令被发布”实际上意味着,由于数据自动化系统的执行模式,该指令是在全国范围内发布的,这意味着它被安排到32个相关的执行单元上,以便为翘曲中的所有32个线程服务该指令。我们可以说“那个翘曲被发布了”,这意味着指令是为翘曲中的所有32个线程发出的。

现在,关于分段分发,您可能需要参考这里

分析器使用PC-采样确定样本点处的翘曲状态,然后将如此采样的翘曲状态放入饼图分布图中,以显示特定状态采样的时间百分比。

翘曲可能处于不同的状态,我不打算尝试定义和总结它们。但许多状态将对应于“暂停”状态,这意味着该状态中的翘曲不能发出指令(例如,可能是因为下一条指令对尚未完成的先前发出的指令具有执行依赖关系)。“不失速”的状态,是“发出指示”。(翘曲状态被定义为这里。从技术上讲,“未选择”是一个“失速”状态,但我将在下面讨论)。

从经纱角度看,“发布指令”可能是“最佳”状态。在采样翘曲的时钟周期中,它有一个指令可以调度,实际上一个或多个指令是从该翘曲发出的。

相比之下,"not selected“(技术上也是”state“状态)是”准备好“要发布的翘曲,但由于某种原因,翘曲调度程序选择从另一个翘曲中选择指令,以便在采样的时钟周期中发出指令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49922131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档