nvprof を実行して、TensorRT サーバー クライアント モデルの GPU 使用状況をプロファイリングしています。これが私がやっていることです:
TensorRT が有効になっている Docker コンテナー内のターミナル 1 で nvprof を実行し、
nvprof --profile-all-processes -o results%p.nvvp
最初のステップと同じ Docker コンテナー内のターミナル 2 で TensorRT サーバーを実行します。
最初の 2 つの手順として、ターミナル 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
。このメッセージ: Execution timeout, stopping the application...
、実際には TensorRT サーバーを停止しません。
基本的に、ctrl-C を使用せずに実行中の TensorRT サーバーの終了を正常に停止する方法があるかどうか、または nvprof と TensorRT を一緒に使用してこの問題を回避する方法があるかどうかを知りたいです。
正しい方向への助けやプッシュは大歓迎です。ありがとう!
PS 元の質問は約 3 時間前にここに投稿されました。