【问题标题】:gRPC - Accumulate requests from Multiple clientsgRPC - 累积来自多个客户端的请求
【发布时间】:2020-10-20 15:21:15
【问题描述】:

假设我有多个客户端向服务器(gRPC 服务)发送请求。我希望我的服务器能够收集,比如说 8 个请求,一次处理这些请求,然后只将结果发送回客户端。我不确定如何使用 GRPC 功能来做到这一点,或者即使它是可能的,或者我是否需要其他东西。

上下文:我的用例来自为 GPU 上的神经网络提供服务。在这种情况下,批量处理多个请求的输入,进行一次推理,然后将结果发回,而不是对每个输入进行一次推理,效率更高。

【问题讨论】:

    标签: gpu grpc inference batching serving


    【解决方案1】:

    至少 3 个选项。这里按照复杂度递增的顺序排列:

    1. 客户端使用他们的数据调用服务器。服务器以批号响应。客户然后使用批号做出“完成了吗?”针对服务器的 RPC。最简单的方法,但是使用轮询,比较浪费。

    2. 客户端使用他们的数据调用服务器。服务器响应消息流,更新客户端批次的状态......工作,工作,工作,完成[结果]。优点是下面#3 中明确的隐式“回调”。如果您不太关心中间状态,则缺点是流的冗余。

    3. 客户端使用他们的数据和回调地址调用服务器。服务器(作为 gRPC 客户端)使用回调在客户端(作为 gRPC 服务器运行)上进行 RPC。鉴于 #1 和 #2,最复杂且可能不必要。

    【讨论】:

      猜你喜欢
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 2021-07-20
      • 2019-10-02
      • 1970-01-01
      相关资源
      最近更新 更多