Get desktop application:
View/edit binary Protocol Buffers messages
Heartbeats from the client. This lets the dispatcher know that the client is still active, and gives the dispatcher a chance to notify the client of new tasks.
Next tag: 5
The iteration client id to heartbeat for.
Reports which round the client is currently reading from when doing round-robin reads.
Reports whether the client has successfully blocked the indicated round from starting. This enables the dispatcher to add a new task in the blocked round or later.
Next tag: 5
A list of all tasks that the client should read from.
Tells the client not to start the given round if possible.
Whether the iteration has finished.
tf.data service deployment mode. Supported values are "REMOTE", "COLOCATED", and "HYBRID". If unspecified, it is assumed to be "REMOTE".
Returns the config of a data service cluster.
Next tag: 1
(message has no fields)
Next tag: 2
Returns the data service metadata for the registered dataset.
Next tag: 2
The dataset id to get the data service dataset metadata.
Next tag: 2
The retrieved data service dataset metadata.
Gets a dataset definition.
Next tag: 2
Next tag: 2
Gets an iteration if it already exists, otherwise creates it.
Next tag: 3
The job to create an iteration for.
Which repetition of the job to read from.
Next tag: 2
An id for the client that will read from the iteration. When the client is done with the iteration, they should call ReleaseIterationClient with this id.
Gets a job if it already exists, otherwise creates it.
Next tag: 7
The id of the dataset to create a job for.
A mode controlling how the tf.data service produces data for the job.
Optional job name identifying a shared job. If not set, the RPC will always create a new job.
Optional number of consumers. If set, the job's tasks will provide their elements to consumers round-robin.
True if cross-trainer cache is enabled.
Specifies which workers the client of this job reads from.
Next tag: 2
Registers a dataset with the server, or returns its id if it is already registered. The dataset is constructed in a new graph, so it must not refer to external resources or variables.
Next tag: 5
The dataset to register.
Metadata related to tf.data service.
If provided, tf.data service will register the dataset with the specified ID. Otherwise, it will generate a unique dataset ID.
Next tag: 2
The id for the registered dataset.
Gets the next split for a given iteration.
Next tag: 4
Next tag: 3
Returns the API version of the server.
Next tag: 1
(message has no fields)
Next tag: 2
Reports a list of all workers registered with the dispatcher.
Next tag: 1
(message has no fields)
Next tag: 2
A list of all workers.
Attempts to remove a task from a round-robin read iteration.
Next tag: 4
Next tag: 2
Releases an iteration client so that an iteration may eventually be cleaned up.
Next tag: 2
Next tag: 1
(message has no fields)
Performs a periodic worker heartbeat.
Next tag: 6
The UID of the worker Borg job, used for telemetry.
Next tag: 3
Updates the dispatcher with information about the worker's state.
Next tag: 3
Next tag: 1
(message has no fields)
Gets the next dataset element.
The task to fetch an element from.
Optional index to identify the consumer.
Optional round index, indicating which round of round-robin the consumer wants to read from. This is used to keep consumers in sync.
Whether the previous round was skipped. This information is needed by the worker to recover after restarts.
Whether to skip the round if data isn't ready fast enough.
The trainer ID used to read elements from a multi-trainer cache. This cache enables sharing data across concurrent training iterations. If set, this request will read the data requested by other trainers, if available.
The produced element.
The element's index within the task it came from.
Boolean to indicate whether the iterator has been exhausted.
Indicates whether the round was skipped.
Gets the tasks currently being executed by the worker.
Named GetWorkerTasks to avoid conflicting with GetTasks in dispatcher.proto
(message has no fields)
Processes a task for a dataset, making elements available to clients.
(message has no fields)
Next tag: 3
Used in:
Represents the type of auto-sharding we enable.
Used in:
AUTO: Attempts FILE-based sharding, falling back to DATA-based sharding.
FILE: Shards by input files (i.e. each worker will get a set of files to process). When this option is selected, make sure that there is at least as many files as workers. If there are fewer input files than workers, a runtime error will be raised.
DATA: Shards by elements produced by the dataset. Each worker will process the whole dataset and discard the portion that is not for itself. Note that for this mode to correctly partitions the dataset elements, the dataset needs to produce elements in a deterministic order.
HINT: Looks for the presence of `shard(SHARD_HINT, ...)` which is treated as a placeholder to replace with `shard(num_workers, worker_index)`.
OFF: No sharding will be performed.
next: 5
Used in:
Whether to automatically tune performance knobs.
When autotuning is enabled (through autotune), determines the CPU budget to use. Values greater than the number of schedulable CPU cores are allowed but may result in CPU contention.
When autotuning is enabled (through autotune), determines the RAM budget to use. Values greater than the available RAM in bytes may result in OOM. If 0, defaults to half of the available RAM in bytes.
When autotuning is enabled (through autotune), determines the algorithm to use. If not explicitly set by user, autotuning will follow HILL_CLIMB algorithm but has more flexibility to tune parameters more aggressively, in which case the behavior is implementation specific and may change over time.
next: 2
Used in:
Cardinality will only be computed if it can be determined in a cheap manner (ie. without reading from file sources). If the cardinality would be nontrivial to compute, Cardinality() will return UNKNOWN_CARDINALITY.
Moderate effort will be made to determine cardinality, such as reading index data from source files. If significant work is needed to compute cardinality (e.g. reading entire source file contents or executing user defined functions), Cardinality() will return UNKNOWN_CARDINALITY.
Updates dispatcher state based on a client heartbeat. Next tag: 4
Used in:
Metadata describing a compressed component of a dataset element.
Used in:
The dtype of the component tensor.
The shape of the component tensor.
Size of the uncompressed tensor bytes. For tensors serialized as TensorProtos, this is TensorProto::BytesAllocatedLong(). For raw Tensors, this is the size of the buffer underlying the Tensor.
Used in:
Compressed tensor bytes for all components of the element.
Metadata for the components of the element.
Next tag: 5
Used in:
Next tag: 9
Used in:
Optional number of consumers. If set, the iteration's tasks will provide their elements to consumers round-robin.
Specifies which workers the client of this iteration reads from.
True if cross-trainer cache is enabled.
Next tag: 8
Used in:
Next tag: 9
Used in:
Data service config available to the client through GetDataServiceConfig RPC. Next tag: 2
Used in:
Metadata related to tf.data service datasets. Next tag: 4
Used in: , ,
Serialized element spec.
Cardinality of the dataset.
Used in:
No compression.
Snappy compression as defined in tensorflow/core/platform/snappy.h.
Next tag: 2
Used in: , ,
We represent datasets as tensorflow GraphDefs which define the operations needed to create a tf.data dataset.
tf.data service deployment mode.
Used in: , ,
tf.data service workers colocate with TF workers.
tf.data service workers run in dedicated tf.data hosts.
tf.data service workers run in colocated TF hosts and dedicated tf.data hosts.
State of the dispatcher server, exported to improve debuggability. Next tag: 4
Used in:
Used in:
next: 3
Used in:
The number of devices attached to this input pipeline.
Represents how to handle external state during serialization.
Used in:
Next tag: 2
Used in:
Next tag: 2
Used in:
Next tag: 3
Used in:
next: 2
next: 20
Used in:
Whether to apply default graph optimizations. If False, only graph optimizations that have been explicitly enabled will be applied.
Whether to fuse filter transformations.
Whether to fuse map and batch transformations.
Whether to fuse map and filter transformations.
Whether to fuse map transformations.
Whether to parallelize stateless map transformations.
Whether to eliminate no-op transformations.
Whether to parallelize copying of batch elements. This optimization is highly experimental and can cause performance degradation (e.g. when the parallelization overhead exceeds the benefits of performing the data copies in parallel). You should only enable this optimization if a) your input pipeline is bottlenecked on batching and b) you have validated that this optimization improves performance.
Whether to fuse shuffle and repeat transformations.
Whether to parallelize stateless filter transformations.
Whether to inject 'Prefetch' as the last transformation. Only takes effect if the last transformation is synchronous; otherwise does nothing.
Message stored with Dataset objects to control how datasets are processed and optimized. next: 8
Whether the outputs need to be produced in deterministic order.
The distribution strategy options associated with the dataset.
The distribution strategy options associated with the dataset.
The optimization options associated with the dataset.
Whether to introduce 'slack' in the last `prefetch` of the input pipeline, if it exists. This may reduce CPU contention with accelerator host-side activity at the start of a step. The slack frequency is determined by the number of devices attached to this input pipeline.
The threading options associated with the dataset.
This option can be used to override the default policy for how to handle external state when serializing a dataset or checkpointing its iterator. There are three settings available - IGNORE: External state is ignored without a warning; WARN: External state is ignored and a warning is logged; FAIL: External state results in an error.
Next tag: 2
Used in: , , ,
Specifies how data is sharded among tf.data service workers.
Used in:
No sharding will be performed. Each worker produces the entire dataset without any sharding. With this mode, the best practice is to shuffle the dataset nondeterministically so that workers process the dataset in different orders.
The input dataset is dynamically split among workers at runtime. Each worker gets the next split when it reads data from the dispatcher. There is no fixed sharding with this mode.
The following are static sharding policies. The semantics are similar to `tf.data.experimental.AutoShardPolicy`. These policies require: * The tf.data service cluster has a fixed size, and you need to specify the workers in DispatcherConfig. * Each client only reads from the local tf.data service worker. Shards by input files (each worker will get a set of files to process). When this option is selected, make sure that there is at least as many files as workers. If there are fewer input files than workers, a runtime error will be raised.
Shards by elements produced by the dataset. Each worker will process the whole dataset and discard the portion that is not for itself. Note that for this mode to correctly partitions the dataset elements, the dataset needs to produce elements in a deterministic order.
Attempts FILE-based sharding, falling back to DATA-based sharding on failures.
Looks for the presence of `shard(SHARD_HINT, ...)` which is treated as a placeholder to replace with `shard(num_workers, worker_index)`.
Next tag: 5
Used in:
Whether the split provider reached its end.
Next tag: 5
Used in:
Next tag: 5
Used in:
Next tag: 3
Used in:
The time when the client was released, measured in microseconds since the epoch.
Next tag: 2
Used in:
State of the tf.data service server, exported to improve debuggability. The dispatcher and worker servers will populate the corresponding fields. Next tag: 3
Specifies which tf.data service workers to read from.
Used in: ,
tf.data service runtime decides which workers to read from.
Reads from any available worker.
Only reads from local workers. If no local worker is found, it is an error.
Next tag: 14
Used in: , ,
The dataset to iterate over.
In distributed epoch processing mode, we use one split provider for each source that feeds into the dataset. In parallel_epochs mode, `num_split_providers` is always zero.
Address of the worker that the task is assigned to.
Optional number of consumers. If set, the results of the task will be provided to consumers round-robin.
Number of workers and the worker index. These are only populated when the `processing_mode_def` specifies a static sharding policy.
True if cross-trainer cache is enabled.
Next tag: 8
Used in: ,
The address of the worker processing the task.
The transfer address of the worker processing the task.
Tags attached to the worker. This allows reading from selected workers. For example, by applying a "COLOCATED" tag, tf.data service is able to read from the local tf.data worker if one exists, then from off-TF-host workers, to avoid cross-TF-host reads.
The task id.
The id of the iteration that the task is part of.
The UID of the worker Borg job, used for telemetry.
The round to start reading from the task in. For non-round-robin reads, this is always 0.
Next tag: 3
Used in:
The task that this message is about.
Whether the task has completed.
Indicates that a client failed to block before reaching the target round. Next tag: 2
Used in:
A new target round to try adding the task in.
next: 3
Used in:
If set, it overrides the maximum degree of intra-op parallelism.
If set, the dataset will use a private threadpool of the given size.
An uncompressed dataset element.
Used in:
Message representing journaled dispatcher metadata updates. When we apply one of these changes to the dispatcher's in-memory state, we also write an Update message to the journal. Next tag: 15
Next tag: 3
Used in:
State of the worker server, exported to improve debuggability. Next tag: 5
Used in: