我正在尝试在一台NVIDIA Tesla V100 GPU上运行TensorFlow作为服务器。作为服务器,我的程序需要同时接受多个请求。因此,我的问题如下:
当多个请求同时到达时(假设我们不使用批处理),这些请求是按顺序还是并行在GPU上运行? 我知道独立的进程有单独的CUDA上下文,这些上下文在GPU上按顺序运行。但是,这些请求实际上是同一进程中的不同线程,应该共享一个CUDA上下文。因此,根据文档,GPU可以同时运行多个内核。如果是这样,那么如果我在同一时间有大量请求到达,GPU利用率是否可以达到100%?但是这在我的实验中从未发生过。
在不同线程中运行一个会话与在不同线程中运行不同会话之间有什么区别?哪种方法是实现TensorFlow服务器的正确方式?TensorFlow Serving使用哪种方法?
非常感谢您的建议!