0

我正在运行 nvprof 来分析 TensorRT 服务器-客户端模型的 GPU 使用情况。这就是我正在做的事情:

  1. 在启用了 TensorRT 的 docker 容器内的终端 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小时前在这里发布。

4

1 回答 1

0

事实证明,TensorRT 不是问题所在。在为服务器创建和首次运行 docker 容器时,我没有添加特权选项。

即使使用 Ctrl-C 终止服务器程序,运行 docker 容器也docker run --rm -it -d --gpus all --privileged ...有助于分析服务器行为。nvprof

于 2020-03-18T02:01:44.097 回答