0

我使用基准(Parboil,Rodinia)对 GTX760(Kepler)和 GTX750Ti(Maxwell)进行了实验。然后我使用 Nvidia 视觉分析器分析了结果。在大多数应用中,全局指令的数量在 Maxwell 架构上大幅增加了 7-10 倍。

规格。对于两个显卡

GTX760 6.0Gbps 2048MB 256bit 192.2 GB/s

GTX750Ti 5.4Gbps 2048MB 128bit 86.4Gb/s

Ubuntu 14.04

CUDA 驱动程序 340.29

工具包 6.5

我编译了基准应用程序(没有修改),然后我从 NVVP(6.5)收集了结果。分析所有 > 内核内存 > 从 L1/共享内存部分,我收集了全局负载事务计数。

我附上了我们在开普勒(链接)和麦克斯韦(链接)上运行的histo模拟结果的屏幕截图

有人知道为什么 Maxwell 架构上的全局指令数会增加吗?

谢谢你。

4

1 回答 1

4

计数器 gld_transactions 在 Kepler 和 Maxwell 架构之间是不可比的。此外,这不等于执行的全局指令的计数。

在 Fermi/Kepler 上,这会计算 SM 到 L1 128 字节请求的数量。每个执行的全局/通用指令可以从 0-32 递增。

在 Maxwell 上,全局操作都经过 TEX(统一缓存)。TEX 缓存与 Fermi/Kepler L1 缓存完全不同。全局事务测量缓存中访问的 32B 扇区的数量。每个执行的全局/通用指令可以从 0-32 递增。

如果我们看 3 种不同的情况:

情况 1:warp 中的每个线程都访问相同的 32 位偏移量。

情况 2:warp 中的每个线程以 128 字节的跨度访问 32 位偏移量。

情况 3:warp 中的每个线程都根据其通道索引访问唯一的 32 位偏移量。

情况 4:warp 中的每个线程都访问 128 字节内存范围内的唯一 32 位偏移量,该内存范围是 128 字节对齐的。

gld_transcations 按架构列出的每个案例

            Kepler      Maxwell
Case 1      1           4
Case 2      32          32
Case 3      1           8
Case 4      1           4-16

我的建议是避免查看 gld_transactions。未来版本的 CUDA 分析器应该使用不同的指标,这些指标更可操作且与过去的架构具有可比性。

我建议查看 l2_{read, write}_{transactions,throughput}。

于 2015-03-24T19:51:59.243 回答