Nsight Python: профилирование GPU-ядер прямо в Jupyter и Colab
В новом руководстве NVIDIA показывает, как использовать Nsight Python — open-source обёртку над Nsight Compute. Вместо запуска скрипта через командную строку и разбора отчёта после, разработчик помечает нужные участки кода декоратором nsight.analyze.kernel и получает pandas DataFrame с аппаратными метриками: по каждому аннотированному участку, конфигурации и запуску.
С версии 1.0 библиотека подключает Nsight Compute к уже работающему Python-процессу, поэтому её можно использовать в Jupyter и Google Colab. В грядущем релизе 1.1 появится экспериментальный бэкенд CUPTI, явное управление инструментами и собственные сборщики информации.
В туториале всё проверено на бесплатной T4 в Colab: от установки свежего Nsight Compute рядом с предустановленным до замера эффекта от управления кэшем и частотами, свипов размеров матриц в fp32/fp16 с расчётом TFLOP/s, определения compute- и memory-bound участков по аппаратным счётчикам и сравнения CUPTI-бэкенда с классическим Nsight Compute. Сырой отчёт тоже сохраняется для глубокого анализа.