Nvidia 可视化分析器在内核启动后不显示 cudaMalloc()

Nvidia visual profiler not showing cudaMalloc() after kernel launch

我正在尝试编写一个几乎完全在 GPU 上运行的程序(与主机的交互很少)。 initKernel 是从主机启动的第一个内核。我使用动态并行从 initKernel 启动连续的内核,其中两个是 thrust::sort(thrust::device,...).

在启动 initKernel 之前,我在主机代码上做了一个 cudaMalloc(),它显示在 Runtime API视觉分析器。 None 出现在 __device__ 函数中的 cudaMalloc 和后续内核(在 initKernel 启动后)显示在 运行时 API 的可视化分析器。有人能帮我理解为什么我在 Visual 分析器中看不到 cudaMalloc 吗?

感谢您的宝贵时间。

Can someone help me understand why I cannot see the cudaMallocs in the Visual profiler?

因为这是该工具的记录限制。来自 documentation:

The Visual Profiler timeline does not display CUDA API calls invoked from within device-launched kernels.