以前在cudaprof中有用于全局内存(gst_coherent、gst_incoherent、gld_coherent、gld_incoherent)的分析计数器,这些计数器对我来说是有用和清晰的,因为它们告诉我有多少未合并的全局读写。
现在,似乎只有"gst请求“和"gld请求”。这些是mp 0上每翘曲的总负载/存储量。,我如何确定我是否有未合并的读/写?,我猜如果合并了请求,请求就会更少。我是否应该计算出每个线程期望的数量并进行比较?不幸的是,我的内核太动态性了。
发布于 2010-11-19 12:21:55
相干/非相干计数器与sm_10/sm_11设备相关,其中必须对接入进行对齐和合并,以避免病理性行为。在sm_12和sm_13上,硬件尝试在可能的情况下将访问合并成段事务,而在sm_2x上,L1缓存提供了一个类似的函数,在不可能的情况下,提供了缓存的附加功能。
理想情况下,您可以感觉到您正在读取和写入的数据数量,并将其与所取得的性能进行比较,这将给您一个效率的概念。但是,考虑到内核非常依赖于数据,您应该查看GTC2010的几个演示文稿,以了解分析器中可用的其他信息。我推荐GPU的基本性能优化对话,更重要的是,从第一个对话开始,推荐分析驱动性能优化 talk。
您还可以考虑用一些额外的计数器手动检测代码。
https://stackoverflow.com/questions/4219851
复制相似问题