Debugging NVIDIA cuda内存跟踪生成器
我是GPU领域的新手。所以我希望你们能给我一些帮助/提示 我想为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倍的额外内存
感谢当前的NVIDIA工具(2014年5月)不支持您请求的功能。尝试跟踪每一次内存访问将增加大量开销,因为对于纹理,对于LSU+1/2 NumSM访问,您必须以每个周期NumSM访问的最大速率再次跟踪 跟踪将为定时、smid、操作类型和地址值生成1-3倍的额外内存写入。如果工具不能静态地定义每个操作的输出位置,那么工具还必须使用原子为跟踪记录分配空间 收集此信息的当前选项包括
使用这些方法,您可以获得每个扭曲操作的有序列表。在选项1和选项2中,您可能还需要设置屏障,以便可以在块内订购操作。当前的NVIDIA工具(2014年5月)不支持您请求的功能。尝试跟踪每一次内存访问将增加大量开销,因为对于纹理,对于LSU+1/2 NumSM访问,您必须以每个周期NumSM访问的最大速率再次跟踪 跟踪将为定时、smid、操作类型和地址值生成1-3倍的额外内存写入。如果工具不能静态地定义每个操作的输出位置,那么工具还必须使用原子为跟踪记录分配空间 收集此信息的当前选项包括
使用这些方法,您可以获得每个扭曲操作的有序列表。在选项1和选项2中,您可能还需要设置屏障,以便可以在块内订购操作。当前的NVIDIA工具(2014年5月)不支持您请求的功能。尝试跟踪每一次内存访问将增加大量开销,因为对于纹理,对于LSU+1/2 NumSM访问,您必须以每个周期NumSM访问的最大速率再次跟踪 跟踪将为定时、smid、操作类型和地址值生成1-3倍的额外内存写入。如果工具不能静态地定义每个操作的输出位置,那么工具还必须使用原子为跟踪记录分配空间 收集此信息的当前选项包括
使用这些方法,您可以获得每个扭曲操作的有序列表。在选项1和选项2中,您可能还需要设置屏障,以便可以在块内订购操作。当前的NVIDIA工具(2014年5月)不支持您请求的功能。尝试跟踪每一次内存访问将增加大量开销,因为对于纹理,对于LSU+1/2 NumSM访问,您必须以每个周期NumSM访问的最大速率再次跟踪 跟踪将为定时、smid、操作类型和地址值生成1-3倍的额外内存写入。如果工具不能静态地定义每个操作的输出位置,那么工具还必须使用原子为跟踪记录分配空间 收集此信息的当前选项包括
使用这些方法,您可以获得每个扭曲操作的有序列表。在选项1和2中,您可能还需要设置屏障,以便在块内订购操作。当前的NVIDIA工具不支持您请求的功能。尝试跟踪每个内存访问将增加大量开销,因为对于纹理,必须在LSU+1/2 NumSM访问的每个周期中再次跟踪NumSM访问。跟踪将为定时、smid和地址数据生成1-2倍的额外内存写入。如果不能静态定义输出位置,工具还必须使用原子来控制输出。今天能做的最好的事情就是编写一个工具,为PTX提供仪器。@GregSmith感谢您的有用回复。让我解释一下我想做什么,你可能知道什么是最好的选择。我想为GPU编写一个缓存模拟器,同时让所有东西都在硬件上运行。类似Valgrind的CUDA代码。例如,我希望能够更改设备内存的内容,等等:D@GregSmith当前位置如果您将其添加为