*修改* Nvidia Maxwell,增加了全局内存指令数
*Modified* Nvidia Maxwell, increased global memory instruction count
我使用基准测试(Parboil,Rodinia)对 GTX760(Kepler)和 GTX750Ti(Maxwell)进行了实验。然后我使用 Nvidia visual profiler 分析了结果。在大多数应用程序中,全局指令的数量在 Maxwell 架构上增加了 7-10 倍。
规格。两个显卡
GTX760 6.0Gbps 2048MB 256 位 192.2 GB/s
GTX750Ti 5.4Gbps 2048MB 128 位 86.4Gb/s
Ubuntu 14.04
CUDA 驱动程序 340.29
工具包 6.5
我编译了基准应用程序(未修改),然后从 NVVP(6.5) 收集了结果。分析所有 > 内核内存 > 从 L1/Shared 内存部分,我收集了全局负载 t运行 操作计数。
我在 kepler(link) and maxwell(link)
上附上了 histo 运行 模拟结果的截图
有人知道为什么全局指令数在 Maxwell 架构上增加了吗?
谢谢。
计数器gld_transactions在开普勒和麦克斯韦架构之间没有可比性。此外,这不等于执行的全局指令数。
在 Fermi/Kepler 这会计算 SM 到 L1 128 字节请求的数量。每执行 global/generic 条指令,它可以从 0-32 递增。
在 Maxwell 上全局操作都通过 TEX(统一缓存)。 TEX 缓存与 Fermi/Kepler L1 缓存完全不同。全局事务测量缓存中访问的 32B 扇区的数量。每执行 global/generic 条指令,它可以从 0-32 递增。
如果我们看 3 种不同的情况:
案例 1:warp 中的每个线程访问相同的 32 位偏移量。
案例 2:warp 中的每个线程访问一个 32 位偏移量,步幅为 128 字节。
案例 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_{读、写}_{事务、吞吐量}。
我使用基准测试(Parboil,Rodinia)对 GTX760(Kepler)和 GTX750Ti(Maxwell)进行了实验。然后我使用 Nvidia visual profiler 分析了结果。在大多数应用程序中,全局指令的数量在 Maxwell 架构上增加了 7-10 倍。
规格。两个显卡
GTX760 6.0Gbps 2048MB 256 位 192.2 GB/s
GTX750Ti 5.4Gbps 2048MB 128 位 86.4Gb/s
Ubuntu 14.04
CUDA 驱动程序 340.29
工具包 6.5
我编译了基准应用程序(未修改),然后从 NVVP(6.5) 收集了结果。分析所有 > 内核内存 > 从 L1/Shared 内存部分,我收集了全局负载 t运行 操作计数。
我在 kepler(link) and maxwell(link)
上附上了 histo 运行 模拟结果的截图有人知道为什么全局指令数在 Maxwell 架构上增加了吗?
谢谢。
计数器gld_transactions在开普勒和麦克斯韦架构之间没有可比性。此外,这不等于执行的全局指令数。
在 Fermi/Kepler 这会计算 SM 到 L1 128 字节请求的数量。每执行 global/generic 条指令,它可以从 0-32 递增。
在 Maxwell 上全局操作都通过 TEX(统一缓存)。 TEX 缓存与 Fermi/Kepler L1 缓存完全不同。全局事务测量缓存中访问的 32B 扇区的数量。每执行 global/generic 条指令,它可以从 0-32 递增。
如果我们看 3 种不同的情况:
案例 1:warp 中的每个线程访问相同的 32 位偏移量。
案例 2:warp 中的每个线程访问一个 32 位偏移量,步幅为 128 字节。
案例 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_{读、写}_{事务、吞吐量}。