【发布时间】:2019-09-18 07:25:10
【问题描述】:
我正在尝试在一个 NVIDIA Tesla V100 GPU 上运行 Tensorflow 作为服务。作为服务器,我的程序需要同时接受多个请求。所以,我的问题如下:
当多个请求同时到达时,假设我们没有使用批处理,这些请求是在 GPU 上按顺序运行还是并行运行?我了解独立进程具有单独的 CUDA 上下文,它们在 GPU 上按顺序运行。但这些请求实际上是同一进程中的不同线程,应该共享一个 CUDA 上下文。所以根据documentation,GPU 可以同时运行多个内核。如果是这样,是不是意味着如果我有大量的请求同时到达,GPU 利用率可以达到 100%?但这在我的实验中从未发生过。
在不同的线程中运行一个会话与在不同的线程中运行不同的会话有什么区别?哪种是实现 Tensorflow 服务器的正确方法? Tensorflow Serving 使用哪一个?
任何建议将不胜感激。谢谢!
【问题讨论】:
标签: multithreading tensorflow gpu tensorflow-serving