From 9cdd68b1eb424a63972ca2f73f756882125727d5 Mon Sep 17 00:00:00 2001 From: "tongxuan.ltx" Date: Thu, 9 Apr 2020 18:19:45 +0800 Subject: [PATCH 01/15] RFC: FuseRecv --- rfcs/20200409-fuse_recv.md | 227 ++++++++++++++++++ .../current_graph_partition_strategy.png | Bin 0 -> 352753 bytes .../fuse_recv_procedure.png | Bin 0 -> 169424 bytes ...raph_partition_strategy_with_fuse_recv.png | Bin 0 -> 353333 bytes .../20200409-fuse_recv/performance_result.png | Bin 0 -> 82325 bytes 5 files changed, 227 insertions(+) create mode 100644 rfcs/20200409-fuse_recv.md create mode 100644 rfcs/20200409-fuse_recv/current_graph_partition_strategy.png create mode 100644 rfcs/20200409-fuse_recv/fuse_recv_procedure.png create mode 100644 rfcs/20200409-fuse_recv/graph_partition_strategy_with_fuse_recv.png create mode 100644 rfcs/20200409-fuse_recv/performance_result.png diff --git a/rfcs/20200409-fuse_recv.md b/rfcs/20200409-fuse_recv.md new file mode 100644 index 000000000..c8402294b --- /dev/null +++ b/rfcs/20200409-fuse_recv.md @@ -0,0 +1,227 @@ +# FuseRecv + +| Status | (Proposed / Accepted / Implemented / Obsolete) | +:-------------- |:---------------------------------------------------- | +| +| **Author(s)** | Tongxuan Liu(tongxuan.ltx@alibaba-inc.com) Peng Tao(jiankeng.pt@alibaba-inc.com) Langshi Chen (langshi.cls@alibaba-inc.com) | +| **Sponsor** | i | +| **Updated** | 2020-04-09 | + +## Objective +This RFC proposes a new FuseRecv Op which would recv multiple tensors with +different types through one RPC. This feature could significantly reduce the +number of RPC calls in most rank or match models in Search, Recommend or Ad +System. + +## Motivation +When very many small tensors are being transferred around the same time, +it's more efficient to transfer multiple values in a single RPC rather than +using a separate RPC for each. + +In the case the neural network graph is complicated, each iteration through +the graph may introduce tens or even hundreds of RPC calls between the running +nodes. In general there are a large number of small tensors, such as multiple +feature columns gather from the same Parameter Server which have no dependence +on each other, and each feature column results in at least one RPC call in +the forward stage. In CTR (Click Through Rate) model or most sparse models +(Match or Rank models widely used in Recommend system or Ad system), there +would be hundreds of feature columns (in our scenario, each sample includes +at least hundreds of features). One job normally have to use thousands of +workers and tens of parameter servers. One worker generally has to gather +or get variables from all the parameter servers, and each feature column +at least in the forward stage has at least one request from the parameter +server. There could be hundreds of RPC for these feature columns, +and even more some big feature columns (such as ids) would be partitioned +could be dozens of RPCs for one feature column. In summary there would be +at least hundreds of RPC per worker only for these feature columns, and +hundreds * thousands RPCs in each parameter server in the forward stage +of one step. Most feature column only gather very small data from parameter +server, normally less than 100KB. Logically these small tensors could be +sent together. Furthermore, tensors that belong to the same layer can also +be fused which would significantly reduce the number of RPC calls. + +As we know, each RPC call will introduce some satellite overhead besides the +real tensor value transfer, which includes: +* Serialization/Deserialization introduce extra overhead for each RPC operation. +* The execution engine overhead for executing a recv node, and the corresponding thread pool action to execute the RPC callback. + +## User Benefit + +Performance improvement: From feedbacks of the feature, in a large traning job +(> 400 workers), normally traning speed would be 1.5-2x timer faster in +ps-worker mode. + +## Design Proposal + +![Figure 1: Current graph partition strategy](20200409-fuse_recv/current_graph_partition_strategy.png "Current graph partition strategy") +![Figure 2: Graph partition strategy with FuseRecv](20200409-fuse_recv/graph_partition_strategy_with_fuse_recv.png "Graph partition strategy with FuseRecv") + +In original design of Recv/Send, each Recv node only recv one tensor +even if there're Recv Ops output to same destination Op. Moreover each +Recv node would trigger one RPC call even received tensor is a scalar. + +In this design, we traverse graphs, replace Recv nodes by FuseRecv node in +partitioned graphs according to its topology while iteratively searching +and fusing potential Recv node. + +As shown in Figure 1 and 2, instead of adding a Recv node for each tensor +‘a’ and ‘x’, we use one FuseRecv to replace two Recv nodes which fetch two +tensors together. The FuseRecv node will have two output ‘slots’(‘ports’): +slot 0 feeds input ‘b’ and ‘c’ and slot 1 feeds ‘y’. Notice that there is +no need to fuse the send node, because the RPC call is Recv driven. + +A new RPC method ‘FuseRecvTensorAsync’ and it's +Handler (FuseRecvTensorHandlerRaw) is added into WorkInterface and +WorkerService. FuseRecvTensor keeps similar optimizations as +RecvTensor to avoid copying the repsonse buffer. + +### Alternatives Considered +#### Fuse the tensors into a single Send/Recv Solution 1(Derek Murray) +Pack the N tensors to be sent into a length-N DT_VARIANT vector. + +Cons: Reuse currently RPC, avoid potiential intricate changes in zero-copy +repsonse buffer code. +Pros: Introduce memcopy overhead. + +#### Fuse the tensors into a single Send/Recv Solution 2(Derek Murray) +Pack the tensor contents into a single flattened buffer. Pack the tensor +contents into a single flattened buffer. This would be very similar to the +ScopedAllocator optimization that +ayushd@google.com and +tucker@google.com +implemented for collectives, and it might be possible to reuse some of +the graph analysis code + +Cons: Reuse currently RPC, avoid potiential intricate changes in zero-copy +repsonse buffer code. +Pros: The fused tensors could be different types and dynamic shape, +which couldn't be handled by the solution. + +#### Dynamic Fusion in runtime(Paul Tucker) +Instead of adding a new FuseRecvTensor method to the Worker interface, +we add a slightly different RecvSomeTensors method. The client sends a +list of keys for which it's ready to receive values to the server and the +server streams back one or more when it's ready. It's the responsibility of +the client to retry any key that was not included in the response. + +To make this work well there needs to be some dynamic bundling on each side. +For example, on the client side a call to RecvTensor on the local Rendezvous +for a remote value does not necessarily result in an immediate RPC. It might +if the value is expected to be large, but it might also just add the key to +a ready set associated with the remote host. An RPC may not be sent until +the ready set reaches a certain size, or a mininum time has elapsed since the +last RPC against that host was started. When the response is received any +missing keys go back in the ready set. + +On the server side there could be some logic to decide for a RecvSomeTensors +method whether to wait for more of the requested values to be ready or just +immediately send what's available now and let the client re-request anything +missing. + +Cons: Dynamic fusion in runtime seems get better result, and also brings +ability to control priority of tensors (which Recv is more important). +Pros: Potential bottleneck of the solution is the time window of ready set. +For different models it would be much different, manually set the value +would be hard. This solution is another good candidate of FuseRecv. + +### Performance Implications +With a wide and deep model, the number of RPCs calls per step has been reduced +by 55%, and the overall training throughput has increased by 40%. +![Figure 3: performance_result](20200409-fuse_recv/performance_result.png "Performance result") + +### Dependencies +* None + +### Engineering Impact +* Engineering impact: Once manually enable the feature (in ConfigProto.GraphOptions.do_fuse_recv), test times would be slower because FuseRecv post-partitioned optimizer would traverse and update graph. +* Maintenance: Minimal maintennace overhead. The TensorFlow team and contributors will maintain the documentation up to date. Changes should be reviewed and approved by the TensorFlow team leads. + +### Platforms and Environments +* Platforms: The feature is independent of platforms. +* Execution environments (Cloud services, accelerator hardware): The first stage would support CPU & GPU device. We consider more device supported as much as possible. + +### Best Practices +* We strongly suggest enable FuseRecv in rank or match models such as [W&DL](https://arxiv.org/abs/1606.07792), [Dien](https://arxiv.org/abs/1809.03672). + +### Tutorials and Examples +Example enable FuseRecv feature: + +``` + >>> config = tf.ConfigProto() + >>> config.graph_options.optimizer_options.experimental.do_fuse_recv = True +``` + +### Compatibility +* This feature work with ParameterServerStrategy. +* This feature consider tensors on difference devices such as CPU, GPU and TPU. +* Independent with SaveModel or checkpoint. + +### User Impact +* None + +## Detailed Design + +### FuseRecv Op +We introduce FuseRecv Op and an RPC call named FuseRecvTensorAsync in +RemoteWorker and WorkerService. FuseRecv Op definitions as follows: + +``` + >>> REGISTER_OP("FuseRecv") + >>> .Output("tensor: tensor_type") + >>> .Attr("tensor_type: list(type)") + >>> .Attr("tensor_name: list(string)") + >>> .Attr("send_device: list(string)") + >>> .Attr("send_device_incarnation: list(int)") + >>> .Attr("recv_device: list(string)") + >>> .Attr("client_terminated: bool = false") + >>> .SetIsStateful() + >>> .SetShapeFn(shape_inference::UnknownShape); +``` + +FuseRecv request list of tensors with different types from remote, generally +we only fuse the recv ops in the same recv device and the same send device. + +### FuseRecv Optimizer in Grappler +In post partition phase, we add a new pass in the post-partitioning optimizer +called “FuseRecv” to fuse recv ops together. We traverse partitioned graphs & +whole graph, replace Recv ops by FuseRecv ops in partitioned graphs according +to its topology while iteratively searching and fusing potential recv +operations. + +![Figure 4: fuse_recv_procedure](20200409-fuse_recv/fuse_recv_procedure.png "Fuse Recv Procedure") + +The procedure RECVFUSE takes two input arguments: 1) the TF computation +graph g, 2) a Partitioned graph. It is worth noting that the iteration of +all nodes at line 11 shall start from `root` nodes, which do not have any +source edge (node). The process between line 17 and 37 would be iteratively +executed until all of the nodes are moved from nodes to nodes_done. The +RECVFUSE also makes sure that no deadlock exists after the change to the +original graph. Also, the RPC call of FuseRecvTensor overlaps the computation +and communication by using the topology of the graph. + +### FuseRecv RPC Method and Handler +A new RPC method ‘FuseRecvTensorAsync’ is added to the WorkerInterface +we extend the ‘FuseRecvTensorAsync’ method with the ability to handle +multi rendezvous keys and fetch multi key tensors. + +At the server side, we add a ‘FuseRecvTensorHandlerRaw’, which handles +the multi rendezvous key for the ‘local recv’ instantiated by the local +tensor operations. As mentioned before, the sending nodes are not fused +and we therefore have to do multiple local recvs corresponding to the +multi send nodes. + +Because the ‘FuseRecvTensorAsync’ handler might be executed before +the send operations happen, a call back wrapper is required. We use +a counter, initialized with the fuse count, and each send action triggers +the call back wrapper and performs an atomic decrease of the counter, +when the counter reaches 0, the real callback is executed and the tensors +are sent to the recv node. + +### Dead Tensor Handling +We treat output of the FuseRecv node as dead if and only if all the +fused tensors are dead. + +### FuseRecv Error Handling +Status of FuseRecv node would be similar as Recv op, which include more +informations of every recv tensors. + +## Questions and Discussion Topics + diff --git a/rfcs/20200409-fuse_recv/current_graph_partition_strategy.png b/rfcs/20200409-fuse_recv/current_graph_partition_strategy.png new file mode 100644 index 0000000000000000000000000000000000000000..1d882cd9626a9eb82ca333ae70b9f47c71edce9a GIT binary patch literal 352753 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