Руководство по профилированию Nsys CLI

Я только вхожу в мир разработки CUDA и пытаюсь профилировать свой код. Ожидается запуск инструмента для профилирования, но появляется следующая ошибка:

======== Warning: This version of nvprof doesn't support the underlying device, GPU profiling skipped

Немного поискав, выяснилось, что это устаревшая версия, и все профилирование теперь должно выполняться с помощью интерфейса командной строки Nsight Systems. При запуске создаются 2 файла:report1.nsys-repиreport1.sqlite. Как я могу использовать их для получения профилирующей информации о моем коде?

Среда:

WSL с Убунуту 20.04

NVIDIA Nsight Systems версия 2023.1.2.43-32377213v0

Нвпроф: Версия выпуска 10.1.243 (21)

NVCC: инструменты компиляции Cuda, выпуск 10.1, V10.1.243

Я ожидаю получить аналогичную информацию, как при использованииnvprof:

Я пробовал только эту команду для профилирования:nsys nvprof ./myapp. Надеясь понять, правильный ли это вариант или у вас могут быть другие лучшие варианты.

Выходnsys profile --stats=true ./diverged

      Generating '/tmp/nsys-report-04e5.qdstrm'
[1/8] [========================100%] report2.nsys-rep
[2/8] [========================100%] report2.sqlite
[3/8] Executing 'nvtx_sum' stats report
SKIPPED: .../sum_reduction/report2.sqlite does not contain NV Tools Extension (NVTX) data.
[4/8] Executing 'osrt_sum' stats report

 Time (%)  Total Time (ns)  Num Calls   Avg (ns)    Med (ns)   Min (ns)  Max (ns)   StdDev (ns)       Name
 --------  ---------------  ---------  ----------  ----------  --------  ---------  -----------  --------------
     74.7        364907400          6  60817900.0  72485919.0   4489170  100201745   42231058.9  poll
     24.3        118728446        345    344140.4     81962.0       541   10034413    1039273.8  ioctl
      0.6          2840826          9    315647.3    449904.0      2254     535093     236455.8  read
      0.2           920219          2    460109.5    460109.5    105991     814228     500799.2  sem_timedwait
      0.1           471795          2    235897.5    235897.5     70382     401413     234074.3  pthread_create
      0.1           310682         25     12427.3      8907.0      2785      95078      18330.8  mmap
      0.0            84580          9      9397.8     10049.0      1473      15419       4316.1  open
      0.0            80611         13      6200.8      4559.0      1382      17002       5451.1  fopen
      0.0            65704          3     21901.3     21310.0     20649      23745       1630.5  write
      0.0            48833         26      1878.2        70.5        60      46898       9182.3  fgets
      0.0            18413          6      3068.8      1738.0      1182       8455       2815.7  fclose
      0.0             8245          1      8245.0      8245.0      8245       8245          0.0  pipe2
      0.0             7233          2      3616.5      3616.5      1853       5380       2494.0  munmap
      0.0             6662          5      1332.4      1533.0       351       1853        579.3  fcntl

[5/8] Executing 'cuda_api_sum' stats report
SKIPPED: .../sum_reduction/report2.sqlite does not contain CUDA trace data.
[6/8] Executing 'cuda_gpu_kern_sum' stats report
SKIPPED: .../sum_reduction/report2.sqlite does not contain CUDA kernel data.
[7/8] Executing 'cuda_gpu_mem_time_sum' stats report
SKIPPED: .../sum_reduction/report2.sqlite does not contain GPU memory data.
[8/8] Executing 'cuda_gpu_mem_size_sum' stats report
SKIPPED: .../sum_reduction/report2.sqlite does not contain GPU memory data.

2 ответа

является устаревшим инструментом и не получит новых функций. Лучше всего переключиться на Nsight Systems или Nsight Compute, в зависимости от ваших целей профилирования.

Если у вас нет конкретной цели профилирования, предлагаемая стратегия профилирования начинается с Nsight Systems для определения узких мест системы и выявления ядер, которые больше всего влияют на производительность. На втором этапе вы можете использовать Nsight Compute для профилирования выявленных ядер и поиска способов их оптимизации.

Если вы знакомы с ней и хотите продолжать ее использовать, Nsight Systems поддерживает эту команду. Дополнительную информацию можно найти в разделе документации « Миграция с NVIDIA». nvprofили изnsys nvprof --help.

При запуске nsys nvprof ./myapp создаются 2 файла: report1.nsys-rep и report1.sqlite. Как я могу использовать их для получения профилирующей информации о моем коде?

Что касается использования файла, вы можете просмотреть его содержимое с помощью графического интерфейса Nsight Systems, доступного для Windows, Linux (x86_64,SBSA), Mac. Это означает, что вы можете собрать профиль на целевой машине, поделиться им и просмотреть его на других машинах. Например, вы можете загрузить хост Windows для установки графического интерфейса.

Вы можете извлечь информацию о профилировании на терминале, используяnsys stats[3] иnsys analyze[ 4] команды. Последние две команды могут получать либо.nsys-repфайл или файл в качестве входных данных.

.sqliteфайлы также можно использовать как обычные файлы базы данных, что, вероятно, понадобится для более сложных случаев использования.

Вам нужно запустить что-то вродеnsys profile -t cuda ./testдля профилирования cuda

Другие вопросы по тегам