Я написал программу scala, которая запускает ядра Cuda с использованием интерфейса JCuda. Эти ядра занимают больше времени, чем я хотел бы завершить, поэтому я хотел бы профилировать их, чтобы определить причину замедления. Я использую GeForce RTX 2060, а на компьютере работает Ubuntu 19.04. Какой инструмент я могу использовать, чтобы точно определить, какие части моего кода занимают больше всего времени для запуска?
Я рассмотрел использование профилировщиков nvvm и nvprof, но, насколько я могу судить, для них обоих требуется запуск приложения cuda из командной строки или из исполняемого файла, тогда как эти ядра запускаются из кода Scala в моем модуле. тесты. У меня уже есть внешняя синхронизация времени выполнения ядер, но нет отдельной разбивки.