如何使用 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 代码 运行。
我正在尝试在具有 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 代码 运行。