我使用基准测试(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 /共享内存部分,我收集了全局加载事务计数。
上添加了myto模拟结果的屏幕截图任何人都知道为什么Maxwell架构上的全局指令数量会增加?
谢谢。
答案 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}。