如何使用 CUDA 8.0 nvprof 分析 OpenCL 应用程序

How to profile OpenCL application with CUDA 8.0 nvprof

我正在尝试在具有 NVIDIA TITAN X 和 CUDA 8.0 的系统中分析 OpenCL 应用程序 a.out

如果是CUDA应用,nvprof ./a.out就够了。但我发现这不适用于 OpenCL 应用程序,并显示一条消息 "No kernels were profiled."

直到 CUDA 7.5,我在 this 之后成功使用了 COMPUTE_PROFILE=1。不幸的是,文档说 "The support for command-line profiler using the environment variable COMPUTE_PROFILE has been dropped in the CUDA 8.0 release."

问题是,除了降级 CUDA 以使用 nvprof 分析 OpenCL 应用程序之外,还有其他方法吗?

据我所知,nvprof 从未支持 OpenCL 分析。

运行 带有 COMPUTE_PROFILE=1 的代码会调用基于驱动程序的分析机制,该机制早于 nvprof 的引入。该基于驱动程序的机制不久前已被弃用,现在已从 CUDA 8 中删除,转而使用 nvprof.

因此,似乎无法使用 CUDA 工具包在 NVIDIA 硬件上分析 OpenCL 代码 运行。