我正在尝试在装有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 应用程序之外,还有什么方法吗?
据我所知,nvprof
从未支持 OpenCL 分析。
使用 COMPUTE_PROFILE=1
运行代码会调用基于驱动程序的分析机制,该机制早于 nvprof
的引入。该基于驱动程序的机制不久前已被弃用,现已从CUDA 8中删除,转而使用nvprof
。
因此,似乎无法使用 CUDA 工具包分析在 NVIDIA 硬件上运行的 OpenCL 代码。