Я запускаю nvprof для профилирования использования графическим процессором модели сервера-клиента TensorRT. Вот что я делаю:
Запустите nvprof на терминале 1 в контейнере docker с включенным TensorRT, nvprof --profile-all-processes -o results%p.nvvp
Выполнить Сервер TensorRT на терминале 2 в том же контейнере docker, что и первый шаг
Запросить услугу на терминале 3 в другом контейнере docker в качестве первых двух шагов.
Когда третий шаг завершается, клиент существует нормально, но сервер и nvprof продолжают работать. Естественно, я закрыл сервер TensorRT с помощью ctrl- c. Когда я делаю это, на терминале 1 (работающем nvprof) он сообщает мне, что в приложении произошла внутренняя ошибка профилирования, а в полученном выходном файле нет информации о временной шкале. (Его размер составляет всего 380 КБ, тогда как другие файлы имеют примерно одинаковую длительность, 2-3 минуты, по крайней мере около нескольких МБ) *
Казалось, что завершение работы сервера TensorRT с помощью ctrl- C проблема, поэтому я попытался дать nvprof опцию тайм-аута, а именно nvprof --profile-all-processes -o results%p.nvvp --timeout 200
на первом шаге (200 секунд более чем достаточно для завершения всего процесса sh) Но хотя это заставляет nvprof выдать это сообщение: Execution timeout, stopping the application...
, на самом деле он не останавливает сервер TensorRT.
По сути, я хотел бы знать, есть ли какой-нибудь способ остановить обычное завершение работы сервера TensorRT без использования ctrl- C, или если есть Обойти эту проблему, используя nvprof и TensorRT вместе.
Любая помощь или pu sh в правильном направлении будет принята с благодарностью. Спасибо!
PS Оригинальный вопрос был размещен здесь около 3 часов go.