Get desktop application:
View/edit binary Protocol Buffers messages
////////////////////////////////////////////////////////////////////////////// Eager Service defines a TensorFlow service that executes operations eagerly on a set of local devices, on behalf of a remote Eager executor. The service impl will keep track of the various clients and devices it has access to and allows the client to enqueue ops on any devices that it is able to access and schedule data transfers from/to any of the peers. A client can generate multiple contexts to be able to independently execute operations, but cannot share data between the two contexts. NOTE: Even though contexts generated by clients should be independent, the lower level tensorflow execution engine is not, so they might share some data (e.g. a Device's ResourceMgr). //////////////////////////////////////////////////////////////////////////////
Closes the context. No calls to other methods using the existing context ID are valid after this.
(message has no fields)
This initializes the worker, informing it about the other workers in the cluster and exchanging authentication tokens which will be used in all other RPCs to detect whether the worker has restarted.
Identifies the full cluster, and this particular worker's position within.
Whether the ops on the worker should be executed synchronously or asynchronously. By default, ops are executed synchronously.
Number of seconds to keep the context alive. If more than keep_alive_secs has passed since a particular context has been communicated with, it will be garbage collected.
This is the version for all the ops that will be enqueued by the client.
This ID will be used for all future communications. It is essential that both ends use this ID for selecting a rendezvous to get everything to match.
The ID of the created context. This is usually a randomly generated number, that will be used to identify the context in future requests to the service. Contexts are not persisted through server restarts.
List of devices that are locally accessible to the worker.
This takes a list of Execute and DeleteTensorHandle operations and enqueues (in async mode) or executes (in sync mode) them on the remote server. All outputs of ops which were not explicitly deleted with DeleteTensorHandle entries will be assumed to be alive and are usable by future calls to Enqueue.
A single operation response for every item in the request.
Contexts are always created with a deadline and no RPCs within a deadline will trigger a context garbage collection. KeepAlive calls can be used to delay this.
(message has no fields)
Takes a FunctionDef and makes it enqueable on the remote worker.
(message has no fields)
An RPC to push tensors to the server. At times, certain environments don't allow the server to connect back to the client.
All remote tensors are identified by <Op ID, Output num>. To mimic this situation when directly sending tensors, we include an "artificial" op ID (which would have corresponded to the _Recv op when not using SendTensor).
The index within the repeated field is the output number that will help uniquely identify (along with the above op_id) the particular tensor.
The device on which the tensors should be resident.
(message has no fields)
Takes a set of op IDs and waits until those ops are done. Returns any error in the stream so far.
Ids to wait on. If empty, wait on everything currently pending.
TODO(nareshmodi): Consider adding NodeExecStats here to be able to propagate some stats.
(message has no fields)
A proto representation of an eager operation.
Used in:
A unique identifier for the operation. Set by the client so that the client can uniquely identify the outputs of the scheduled operation. In the initial implementation, sending duplicate IDs has undefined behaviour, but additional constraints may be placed upon this in the future.
Control Operation IDs that will be respected when ops are re-ordered by async execution. If async execution (+ op re-ordering) is not enabled, this should have no effect.
Used in:
The remote executor should be able to handle either executing ops directly, or releasing any unused tensor handles, since the tensor lifetime is maintained by the client.
Used in:
Used in: ,
The ID of the operation that produced this tensor.
The index into the outputs of the operation that produced this tensor.