Debugging NVIDIA cuda内存跟踪生成器

Debugging NVIDIA cuda内存跟踪生成器,debugging,memory,cuda,nvidia,Debugging,Memory,Cuda,Nvidia,我是GPU领域的新手。所以我希望你们能给我一些帮助/提示 我想为CUDA应用程序的所有加载/存储生成内存访问跟踪。我想知道是否可以用英伟达工具来生成这些痕迹。我想要的是生成一个跟踪,它在每个时钟周期告诉哪些内存地址是所有内核的访问地址 感谢当前的NVIDIA工具(2014年5月)不支持您请求的功能。尝试跟踪每一次内存访问将增加大量开销,因为对于纹理,对于LSU+1/2 NumSM访问,您必须以每个周期NumSM访问的最大速率再次跟踪 跟踪将为定时、smid、操作类型和地址值生成1-3倍的额外内存

我是GPU领域的新手。所以我希望你们能给我一些帮助/提示

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


感谢当前的NVIDIA工具(2014年5月)不支持您请求的功能。尝试跟踪每一次内存访问将增加大量开销,因为对于纹理,对于LSU+1/2 NumSM访问,您必须以每个周期NumSM访问的最大速率再次跟踪

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

收集此信息的当前选项包括

  • 插入源代码。这对公众来说是不透明的 应用程序
  • 在PTX上安装仪器。框架,如和 可能会有帮助
  • 在模拟器上运行应用程序。GPU Ocelot可能已经支持这种类型的仪器
  • <>我鼓励你通过英伟达开发者程序提交一个RFE。
    使用这些方法,您可以获得每个扭曲操作的有序列表。在选项1和选项2中,您可能还需要设置屏障,以便可以在块内订购操作。

    当前的NVIDIA工具(2014年5月)不支持您请求的功能。尝试跟踪每一次内存访问将增加大量开销,因为对于纹理,对于LSU+1/2 NumSM访问,您必须以每个周期NumSM访问的最大速率再次跟踪

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

    收集此信息的当前选项包括

  • 插入源代码。这对公众来说是不透明的 应用程序
  • 在PTX上安装仪器。框架,如和 可能会有帮助
  • 在模拟器上运行应用程序。GPU Ocelot可能已经支持这种类型的仪器
  • <>我鼓励你通过英伟达开发者程序提交一个RFE。
    使用这些方法,您可以获得每个扭曲操作的有序列表。在选项1和选项2中,您可能还需要设置屏障,以便可以在块内订购操作。

    当前的NVIDIA工具(2014年5月)不支持您请求的功能。尝试跟踪每一次内存访问将增加大量开销,因为对于纹理,对于LSU+1/2 NumSM访问,您必须以每个周期NumSM访问的最大速率再次跟踪

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

    收集此信息的当前选项包括

  • 插入源代码。这对公众来说是不透明的 应用程序
  • 在PTX上安装仪器。框架,如和 可能会有帮助
  • 在模拟器上运行应用程序。GPU Ocelot可能已经支持这种类型的仪器
  • <>我鼓励你通过英伟达开发者程序提交一个RFE。
    使用这些方法,您可以获得每个扭曲操作的有序列表。在选项1和选项2中,您可能还需要设置屏障,以便可以在块内订购操作。

    当前的NVIDIA工具(2014年5月)不支持您请求的功能。尝试跟踪每一次内存访问将增加大量开销,因为对于纹理,对于LSU+1/2 NumSM访问,您必须以每个周期NumSM访问的最大速率再次跟踪

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

    收集此信息的当前选项包括

  • 插入源代码。这对公众来说是不透明的 应用程序
  • 在PTX上安装仪器。框架,如和 可能会有帮助
  • 在模拟器上运行应用程序。GPU Ocelot可能已经支持这种类型的仪器
  • <>我鼓励你通过英伟达开发者程序提交一个RFE。
    使用这些方法,您可以获得每个扭曲操作的有序列表。在选项1和2中,您可能还需要设置屏障,以便在块内订购操作。

    当前的NVIDIA工具不支持您请求的功能。尝试跟踪每个内存访问将增加大量开销,因为对于纹理,必须在LSU+1/2 NumSM访问的每个周期中再次跟踪NumSM访问。跟踪将为定时、smid和地址数据生成1-2倍的额外内存写入。如果不能静态定义输出位置,工具还必须使用原子来控制输出。今天能做的最好的事情就是编写一个工具,为PTX提供仪器。@GregSmith感谢您的有用回复。让我解释一下我想做什么,你可能知道什么是最好的选择。我想为GPU编写一个缓存模拟器,同时让所有东西都在硬件上运行。类似Valgrind的CUDA代码。例如,我希望能够更改设备内存的内容,等等:D@GregSmith当前位置如果您将其添加为