NVIDIA cuda内存跟踪发生器

时间:2014-05-28 22:32:11

标签: debugging memory cuda nvidia

我是GPU世界的新手。所以我希望我能得到你们的帮助/暗示。

我想为CUDA应用程序的所有加载/存储生成内存访问跟踪。我想知道是否可以使用任何NVIDIA工具生成这些跟踪。我想要的是生成一个跟踪,告诉每个时钟周期哪些内存地址是所有内核的访问。

由于

1 个答案:

答案 0 :(得分:3)

当前的NVIDIA工具目前(05/2014)不支持您要求的功能。尝试跟踪每个内存访问会增加显着的开销,因为您必须以每个周期的最大NumSM访问速率跟踪LSU + 1/2 NumSM再次访问纹理。

跟踪将为定时,smid,操作类型和地址值生成1-3倍的额外内存写入。如果工具无法静态定义每个操作的输出位置,那么工具也必须使用原子为跟踪记录分配空间。

目前收集此类信息的选项是

  1. 检测源代码。这不是透明的 应用
  2. 检测PTX。 PanoptesLynx等框架 可能会有所帮助。
  3. 在模拟器上运行应用程序。 GPU Ocelot可能已经支持这种类型的仪器。
  4. 我建议您通过NVIDIA开发者计划提交RFE。

    使用这些方法,您可以获得每个warp的有序操作列表。在选项1和2中,您可能还需要设置屏障,以便在一个区块内订购操作。