如何使用CUDA 8.0的nvprof对OpenCL应用程序进行性能分析

9
我正在尝试在具有NVIDIA TITAN X和CUDA 8.0的系统中分析OpenCL应用程序a.out。如果这是CUDA应用程序,则nvprof ./a.out就足够了。但是我发现这对于OpenCL应用程序不起作用,出现了“未对内核进行分析”的消息。
在CUDA 7.5之前,我成功地使用了COMPUTE_PROFILE=1,按照此文档进行操作。不幸的是,文档指出:“在CUDA 8.0版本中,使用环境变量COMPUTE_PROFILE的命令行分析器支持已被删除。”
问题是,除了降级CUDA以外,是否有其他方法可以使用nvprof对OpenCL应用程序进行分析?

您是否在应用程序中调用了 clReleaseContext 函数? - talonmies
@talonmies 是的,它正确地调用了上下文、队列、程序、内核和内存对象的释放函数。 - csehydrogen
1个回答

4
据我所知,《nvprof》从未支持OpenCL分析。
使用COMPUTE_PROFILE=1运行代码将调用一个基于驱动程序的分析机制,它早于nvprof的引入。这种基于驱动程序的机制已经被弃用了一段时间,并且现在已经在CUDA 8中被移除,以使用nvprof代替。
因此,似乎没有办法使用CUDA工具包对在NVIDIA硬件上运行的OpenCL代码进行分析。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接