我正在尝试编写一个几乎完全在GPU上运行的程序(与主机的交互很少)。 initKernel
是从主机启动的第一个内核。我使用动态并行从initKernel
启动连续的内核,其中两个是thrust::sort(thrust::device,...)
。
在启动initKernel
之前,我先在主机代码上执行cudaMalloc()
,它在Visual Profiler的 Runtime API 中显示。在cudaMalloc
函数中出现的__device__
和连续的内核(在initKernel
启动后)都没有显示在Visual Profiler的 Runtime API 中。 。有人可以帮助我理解为什么我无法在Visual Profiler中看到cudaMalloc
吗?
谢谢您的时间。
答案 0 :(得分:2)
有人可以帮助我理解为什么我无法在Visual Profiler中看到cudaMalloc吗?
因为这是该工具的记录限制。来自documentation:
Visual Profiler时间轴不显示从设备启动的内核内部调用的CUDA API调用。