如何解释CUDA中的指令重放

2023-12-04

谁能总结一下 CUDA 中不同类型的指令重放的定义和原因吗?

他们是:

  1. inst_replay_overhead:
  2. 共享重播开销:
  3. 全局重播开销:
  4. 全局缓存重播开销
  5. 本地重播开销
  6. 原子重播开销
  7. 共享加载重播
  8. 共享存储重播
  9. global_ld_mem_divergence_replays
  10. global_st_mem_divergence_replays

此答案适用于计算能力 2.0 - 3.7(费米 - 开普勒)设备。

每个周期,每个 SM warp 调度程序都会选择一个 warp 并发出 1-2 个独立指令。

事件安装执行是完成的扭曲指令的计数。线程安装执行是完成指令的线程数。

如果SM由于以下原因无法完成所发出的指令

  1. 立即常量(指令中引用的常量)上的常量高速缓存未命中,
  2. 索引常量负载中的地址分歧,
  3. 全局/本地内存加载或存储中的地址分歧,
  4. 共享内存加载或存储中的存储体冲突,
  5. 解决原子或归约操作中的冲突,
  6. 加载或存储操作需要将数据写入加载存储单元或从超出读/写总线宽度的单元读取(例如128位加载或存储),或者
  7. 加载缓存未命中(当数据在缓存中准备好时发生重放以获取数据)

那么SM调度器必须多次发出该指令。这称为指令重放。值 inst_issued ==inst_issued2 * 2 + inst_issued1是已完成的指令数 + 指令重放数。

指令重放使用指令发布槽,降低了 SM 的计算吞吐量。

The _重播_开销下面列出的指标可以帮助您确定哪些类型的操作导致重播。这

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解释CUDA中的指令重放 的相关文章

  • Golang调用CUDA库

    我正在尝试从 Go 代码中调用 CUDA 函数 我有以下三个文件 test h int test add void test cu global void add int a int b int c c a b int test add v
  • CUDA:如何在设备上填充动态大小的向量并将其内容返回到另一个设备函数?

    我想知道哪种技术可以填充设备上的动态大小数组 int row 在下面的代码中 然后返回其内容 以供另一个设备函数使用 为了将问题置于上下文中 下面的代码尝试使用在 GPU 上运行的高斯 勒让德求积来跨越勒让德多项式基组中的任意函数 incl
  • libstdc++.so.6 与 cuda 相关的链接器问题

    今天我在链接我编译的 cuda 内容时遇到了问题 我有一个最新的 debian 测试 w 2 6 32 3 amd64 我整天都在写我的代码 不时编译 没有问题 但在进行了较小的代码更改后 我收到以下错误 gcc o pa CUDA o h
  • 在 cuda 的 nvcc 编译器中使用 C++20

    我正在尝试使用std countr zero 函数从
  • CUDA程序导致nvidia驱动程序崩溃

    当我超过大约 500 次试验和 256 个完整块时 我的 monte carlo pi 计算 CUDA 程序导致我的 nvidia 驱动程序崩溃 这似乎发生在 monteCarlo 内核函数中 任何帮助都会受到赞赏 include
  • 传递给 CUDA 的结构中的指针

    我已经搞砸了一段时间了 但似乎无法正确处理 我正在尝试将包含数组的对象复制到 CUDA 设备内存中 然后再复制回来 但当我遇到它时我会跨过那座桥 struct MyData float data int dataLen void copyT
  • CUDA Thrust 和 sort_by_key

    我正在寻找 CUDA 上的排序算法 它可以对元素数组 A 双精度 进行排序 并返回该数组 A 的键 B 数组 我知道sort by keyThrust 库中的函数 但我希望元素数组 A 保持不变 我能做些什么 我的代码是 void sort
  • 如何在 Visual Studio 2010 中设置 CUDA 编译器标志?

    经过坚持不懈的得到error identifier atomicAdd is undefined 我找到了编译的解决方案 arch sm 20旗帜 但是如何在 VS 2010 中传递这个编译器标志呢 我已经尝试过如下Project gt P
  • 如何确定完整的 CUDA 版本 + 颠覆版本?

    Linux 上的 CUDA 发行版曾经有一个名为version txt例如 CUDA Version 10 2 89 这非常有用 但是 从 CUDA 11 1 开始 该文件不再存在 我如何在 Linux 上通过命令行确定并检查 path t
  • CUDA线程执行顺序

    我有一个 CUDA 程序的以下代码 include
  • CUDA 常量内存是否应该被均匀地访问?

    我的 CUDA 应用程序的恒定内存小于 8KB 既然它都会被缓存 我是否需要担心每个线程访问相同的地址以进行优化 如果是 如何确保所有线程同时访问同一地址 既然它都会被缓存 我是否需要担心每个线程访问相同的地址以进行优化 是的 这缓存本身每
  • Yocto for Nvidia Jetson 由于 GCC 7 而失败 - 无法计算目标文件的后缀

    我正在尝试将 Yocto 与 meta tegra 一起使用 https github com madisongh meta tegra https github com madisongh meta tegra 为 Nvidia Jets
  • 使用 CUDA 进行逐元素向量乘法

    我已经在 CUDA 中构建了一个基本内核来执行逐元素两个复向量的向量 向量乘法 内核代码插入如下 multiplyElementwise 它工作正常 但由于我注意到其他看似简单的操作 如缩放向量 在 CUBLAS 或 CULA 等库中进行了
  • cudaSetDevice() 对 CUDA 设备的上下文堆栈有何作用?

    假设我有一个与设备关联的活动 CUDA 上下文i 我现在打电话cudaSetDevice i 会发生什么 Nothing 主上下文取代了堆栈顶部 主上下文被压入堆栈 事实上 这似乎是不一致的 我编写了这个程序 在具有单个设备的机器上运行 i
  • CUDA、NPP 滤波器

    CUDA NPP 库支持使用 nppiFilter 8u C1R 命令过滤图像 但不断出现错误 我可以毫无问题地启动并运行 boxFilterNPP 示例代码 eStatusNPP nppiFilterBox 8u C1R oDeviceS
  • 如何为 CUDA 内核选择网格和块尺寸?

    这是一个关于如何确定CUDA网格 块和线程大小的问题 这是对已发布问题的附加问题here https stackoverflow com a 5643838 1292251 通过此链接 talonmies 的答案包含一个代码片段 见下文 我
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • CUDA 中指令重放的其他原因

    这是我从 nvprof CUDA 5 5 获得的输出 Invocations Metric Name Metric Description Min Max Avg Device Tesla K40c 0 Kernel MyKernel do
  • OS X 10.8 上的 PyCuda / 多处理问题

    我正在开发一个项目 将计算任务分配给多个 python 进程 每个进程都与其自己的 CUDA 设备关联 生成子进程时 我使用以下代码 import pycuda driver as cuda class ComputeServer obje
  • 大型跨平台软件项目的技巧/资源

    我将开始一个大型软件项目 涉及跨平台 GUI 和大量的数字运算 我计划用 C 和 CUDA 编写大部分应用程序后端 并用 Qt4 编写 GUI 我计划使用 Make 作为我的构建系统 这将是一个只有两名开发人员的项目 一旦我相对深入地了解它

随机推荐

  • 停止 html5 音频

    我如何编写一个函数来停止 DOM 中播放 html5 音频的所有实例 html5 音频
  • 从闭源第三方 Win32 应用程序中的窗口捕获数据

    我计划创建一个 C Windows 窗体应用程序作为第三方 Win32 应用程序的扩展 但我现在对如何执行此操作感到困惑 我最了解的是它涉及 Win32 Hooking 并且有一个名为 EasyHook 的开源项目应该允许我做到这一点 我想
  • WKWebView没有在navigationResponse中提供所有cookie

    我正在尝试用 WkWebView 替换我正在工作的 UIWebView 项目 我看过很多帖子 但我没有得到任何好的解决方案来从 WKWebView 获取所有 cookie 我也尝试过这个evaluateJavaScript document
  • Cypress 之前从 json-fixture 加载数据

    我试图通过 Cypress 中的固定装置从 json 文件中检索一些数据 但数据根本无法识别 before gt cy fixture example then function data console log this data use
  • TFS 2010 命令行 - TFSConfig 设置/安装

    背景 这是 Team Foundation Server 命令行实用程序中一个鲜为人知的命令 本质上 它允许您通过传入配置文件在计算机上安装团队构建服务 以及控制器和代理 语法是 tfsconfig setup install unatte
  • Chrome 应用程序无需创建窗口即可导航 html

    我正在创建一个 Chrome 打包应用程序 我需要在不创建大量窗口的情况下导航我的 html 例如 如果用户单击一个按钮 它会在用户所在的同一窗口中打开 html 有可能吗 如果没有的话 有没有办法让windows模式化 那么用户不能在不关
  • 如何让Python脚本作为服务运行?

    我想在 CENTOS 服务器中运行 python 脚本 usr bin env python import socket try import thread except ImportError import thread as threa
  • 文件名截断为仅显示第一个字符

    我正在跟进本指南来自 MSDN 关于如何列出目录中的文件 我正在使用当前目录 就我而言 我需要将信息放入数据包的消息部分 大小为 1016 的字符数组 中 以将其发送到客户端 当我在客户端和服务器上打印 packet message 时 仅
  • 覆盖 div 添加边距

    我有一个 cover div与以下CSS cover background color FFFFFF height 100 opacity 0 4 position fixed width 100 z index 9000 我希望它像这样覆
  • 在什么情况下需要使用 CREATEREF、DEREF 和 REF 关键字?

    这个问题是关于为什么我会使用上述关键字 我找到了大量解释如何操作的 MSDN 页面 我正在寻找原因 我会尝试编写什么查询来表示我需要它们 我问这个问题是因为我发现的例子似乎可以通过其他方式实现 为了尝试自己解决这个问题 我使用 Advent
  • 如何更改 C++ 引用引用的变量?

    如果我有这个 int a 2 int b 4 int ref a 我怎样才能使ref参考b这段代码之后 这是不可能的 那就是按设计 引用不能反弹
  • 如何在 UIToolBar 中添加栏按钮

    我创建了一个UIToolBar并想在其中添加三个项目 如联系人 日期和消息 我尝试过 但我无法做到这一点 请帮助我 因为我是新手Objective C 这是我的 ViewController m import ViewController
  • Javascript 按 dd/mm/yyyy 属性对对象进行排序

    我的大部分问题都在这个帖子中得到了回答 如何对数组日期 JavaScript dd mm yyyy 进行排序 但想知道如果日期在对象中该怎么做 即 var info name a date 01 05 2017 name b date 23
  • 如何确保 JTextField 仅包含字母?

    我只想在我的姓名字段中输入字母 我已经尝试过使用 matches 方法 但不幸的是出现了问题并且抛出了异常 还有其他检查方法吗 import java awt BorderLayout import java awt FlowLayout
  • 如何使用虚拟化远程数据过滤剑道网格上的整个数据源

    在工作中 我们遇到了具有大量行的剑道网格的性能问题 我们正在考虑使用远程数据虚拟化作为解决方案 就像您在下面的链接中看到的那样 https demos telerik com kendo ui grid virtualization rem
  • 根据行中字符串的字符长度选择匹配项

    我有 2 个 SELECT 语句 应该使所需的匹配数直接与 输入 列的 char length 相对应 因此 例如 if char length input lt 5 matches required is 1 if char length
  • NSDateFormatter dateFromString:stringDate 在 iOS 8.3 中返回 nil

    我有这个代码 NSString stringDate 2015 07 09 7 00 AM NSString stringDateFormat yyyy MM dd h mm a NSTimeZone timeZone NSTimeZone
  • 如何实现线性插值?

    假设我得到的数据如下 x 1 2 5 3 4 5 8 6 y 2 4 5 8 4 3 4 我想设计一个函数 它将在之间线性插值1 and 2 5 2 5 to 3 4 等等使用Python 我尝试过浏览这个Python教程 但我仍然无法理解
  • 使用 C# 将 Internet Explorer 浏览器嵌入到 Winforms 中

    我正在尝试使用 IE 打开指定 IP 的网页 为什么是 IE 因为并非每个 Windows 都安装了 Chrome 或 Firefox 并将其呈现在一个简单的 Winforms 窗口中 上面提到的网页是一个 BI 商业智能 网页 它会动态更
  • 如何解释CUDA中的指令重放

    谁能总结一下 CUDA 中不同类型的指令重放的定义和原因吗 他们是 inst replay overhead 共享重播开销 全局重播开销 全局缓存重播开销 本地重播开销 原子重播开销 共享加载重播 共享存储重播 global ld mem