Визуальный профилировщик Nvidia не показывает cudaMalloc () после запуска ядра - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь написать программу, которая почти полностью работает на GPU (с очень небольшим взаимодействием с хостом).initKernel - это первое ядро, которое запускается с хоста.Я использую динамический параллелизм для запуска последовательных ядер из initKernel, два из которых thrust::sort(thrust::device,...).

enter image description here

Перед запуском initKernel,Я делаю cudaMalloc() на коде хоста, и он отображается в API времени выполнения визуального профилировщика.Ни один из cudaMalloc, которые появляются в функциях __device__ и последующих ядрах (после запуска initKernel), не отображается в Runtime API визуального профилировщика.Может ли кто-нибудь помочь мне понять, почему я не вижу cudaMalloc s в визуальном профилировщике?

Спасибо за ваше время.

1 Ответ

0 голосов
/ 23 октября 2018

Может кто-нибудь помочь мне понять, почему я не вижу cudaMallocs в визуальном профилировщике?

Поскольку это задокументированное ограничение инструмента.Из документации :

Временная шкала Visual Profiler не отображает вызовы API CUDA, вызванные из запускаемых устройством ядер.

...