簡體   English   中英

如何在不使用 ctrl-c 的情況下停止運行 TensorRT 服務器(用於使用 nvprof 進行分析)

[英]How to stop running TensorRT server without using ctrl-c (for profiling with nvprof)

我正在運行 nvprof 來分析 TensorRT 服務器-客戶端模型的 GPU 使用情況。 這是我在做什么:

  1. 在啟用nvprof --profile-all-processes -o results%p.nvvp容器中的終端 1 上運行 nvprof, nvprof --profile-all-processes -o results%p.nvvp

  2. 在與第一步相同的 docker 容器中的終端 2 上運行 TensorRT 服務器

  3. 作為前兩個步驟,在不同 docker 容器中的終端 3 上請求服務。

第三步完成后,客戶端正常存在,但服務器和 nvprof 保持運行。 所以很自然地,我用 ctrl-c 關閉了 TensorRT 服務器。 當我這樣做時,在終端 1(運行 nvprof)上,它告訴我應用程序有一個內部分析錯誤,並且生成的輸出文件上沒有任何時間線信息。 (它只有 380KB 大,而其他文件的運行時間大致相同,2-3 分鍾,至少有幾 MB 大)

似乎用 ctrl-C 結束 TensorRT 服務器是問題所在,所以我嘗試給 nvprof 一個超時選項,即nvprof --profile-all-processes -o results%p.nvvp --timeout 200在第一步(200秒足以完成整個過程)但是雖然這確實使 nvprof 引發了此消息: Execution timeout, stopping the application... ,但它實際上並沒有停止 TensorRT 服務器。

基本上,我想知道是否有任何方法可以在不使用 ctrl-C 的情況下停止正在運行的 TensorRT 服務器正常退出,或者是否有結合使用 nvprof 和 TensorRT 的解決方法。

任何幫助或朝着正確方向推動將不勝感激。 謝謝!

PS 原始問題大約在 3 小時前發布在這里

所以事實證明,TensorRT 不是問題。 在為服務器創建和首次運行 docker 容器時,我沒有添加特權選項。

使用docker run --rm -it -d --gpus all --privileged ...容器有助於nvprof分析服務器行為,即使服務器程序被 Ctrl-C 殺死。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM