*修改* Nvidia Maxwell,增加全局内存指令数

时间:2015-03-18 08:59:46

标签: cuda gpu kepler

我使用基准测试(Parboil,Rodinia)对GTX760(Kepler)和GTX750Ti(Maxwell)进行了实验。然后我使用Nvidia visual profiler分析结果。在大多数应用中,全局指令的数量在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

toolkit 6.5

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

我在kepler(link)maxwell(link)

上添加了myto模拟结果的屏幕截图

任何人都知道为什么Maxwell架构上的全局指令数量会增加?

谢谢。

1 个答案:

答案 0 :(得分: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字节对齐的128字节存储器范围内访问唯一的32位偏移量。

按架构列出的每个列表案例的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}。