首页 > 解决方案 > Cuda 分析器的“gld_transactions_per_request”指标中的事务和请求是什么?

问题描述

对于一个双精度数组的完美合并访问4096,每个 8 字节,nvprof在 Nvidia Tesla V100 上报告以下指标:

global_load_requests: 128
gld_transactions: 1024
gld_transactions_per_request: 8.000000

我找不到事务和对全局内存的请求到底是什么的具体定义,因此我无法理解这些指标。因此我的问题:

  1. 如何定义内存请求
  2. 内存事务是如何定义的?
  3. 是否gld_transactions_per_request = 8.00000表示对双打的完全合并访问?

为了向自己解释,这是我想出的:

使用这些定义,我得出的值与以下相同nvprof: 访问 4096 个数组项需要 128 个经线级指令(=requests),每个指令有 32 个线程。使用 32 字节加载(=事务)导致 1024 个事务。

标签: cudanvprof

解决方案


内存“请求”是访问内存的指令,“事务”是两个内存区域之间数据单元的移动。


推荐阅读