diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0180099c0ba..a9a4410708b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,7 @@ env: BUILDTOOLS_VERSION: '3.0.0' BUILDIFIER_SHA256SUM: 'e92a6793c7134c5431c58fbc34700664f101e5c9b1c1fcd93b97978e8b7f88db' BUILDOZER_SHA256SUM: '3d58a0b6972e4535718cdd6c12778170ea7382de7c75bc3728f5719437ffb84d' - TENSORFLOW_VERSION: 'tf-nightly' + TENSORFLOW_VERSION: 'tf-nightly==2.19.0.dev20250206' jobs: build: diff --git a/RELEASE.md b/RELEASE.md index 460059d4bde..31ca6dc48cd 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,3 +1,10 @@ +# Release 2.19.0 + +The 2.19 minor series tracks TensorFlow 2.19. + +This release contains only internal cleanups, with no particular new features or bug fixes. + + # Release 2.18.0 The 2.18 minor series tracks TensorFlow 2.18. diff --git a/tensorboard/compat/proto/config.proto b/tensorboard/compat/proto/config.proto index dd953b685ff..f7c8ee837a5 100644 --- a/tensorboard/compat/proto/config.proto +++ b/tensorboard/compat/proto/config.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package tensorboard; +import "tensorboard/compat/proto/coordination_config.proto"; import "tensorboard/compat/proto/cost_graph.proto"; import "tensorboard/compat/proto/graph.proto"; import "tensorboard/compat/proto/step_stats.proto"; @@ -9,7 +10,6 @@ import "tensorboard/compat/proto/cluster.proto"; import "tensorboard/compat/proto/debug.proto"; import "tensorboard/compat/proto/rewriter_config.proto"; import "tensorboard/compat/proto/rpc_options.proto"; -import "tensorboard/compat/proto/coordination_config.proto"; option cc_enable_arenas = true; option java_outer_classname = "ConfigProtos"; @@ -77,6 +77,11 @@ message GPUOptions { // name "/device:GPU:") are also called "TF GPU id"s. Please // refer to third_party/tensorflow/core/common_runtime/gpu/gpu_id.h // for more information. + // 3. The visible_device_list is also used for PluggableDevice. And + // different types of PluggableDevices share this field. In that case, + // the pluggable_device_type is used to distinguish them, making the + // visible_device_list a list of :, + // e.g. "PluggableDeviceA:0,PluggableDeviceA:1,PluggableDeviceB:0". string visible_device_list = 5; // In the event polling loop sleep this many microseconds between @@ -306,7 +311,7 @@ message GPUOptions { // Everything inside experimental is subject to change and is not subject // to API stability guarantees in - // https://www.tensorflow.org/guide/version_compat. + // https://www.tensorflow.org/guide/versions. Experimental experimental = 9; } @@ -578,7 +583,7 @@ message ConfigProto { // Everything inside Experimental is subject to change and is not subject // to API stability guarantees in - // https://www.tensorflow.org/guide/version_compat. + // https://www.tensorflow.org/guide/versions. message Experimental { // Task name for group resolution. string collective_group_leader = 1; @@ -750,7 +755,7 @@ message ConfigProto { bool disable_functional_ops_lowering = 21; // Provides a hint to XLA auto clustering to prefer forming a single large - // cluster that encompases most of the graph. + // cluster that encompasses most of the graph. bool xla_prefer_single_graph_cluster = 22; // Distributed coordination service configurations. @@ -983,3 +988,28 @@ message CallableOptions { // Next: 9 } + +message BatchingOptions { + // Number of scheduling threads for processing batches of work. Determines + // the number of batches processed in parallel. This should be roughly in line + // with the number of TPU cores available. + int32 num_batch_threads = 1; + + // The maximum allowed batch size. Can be larger than allowed_batch_sizes to + // utilize large batch splitting. + int32 max_batch_size = 2; + + // Maximum number of microseconds to wait before outputting an incomplete + // batch. + int32 batch_timeout_micros = 3; + + // Optional list of allowed batch sizes. If left empty, does nothing. + // Otherwise, supplies a list of batch sizes, causing the op to pad batches up + // to one of those sizes. The entries must increase monotonically, and the + // final entry must be equal or less than the max_batch_size. + repeated int32 allowed_batch_sizes = 4; + + // Maximum number of batches enqueued for processing before requests are + // failed fast. + int32 max_enqueued_batches = 5; +} diff --git a/tensorboard/compat/proto/coordination_config.proto b/tensorboard/compat/proto/coordination_config.proto index 850c938f20a..1be90561739 100644 --- a/tensorboard/compat/proto/coordination_config.proto +++ b/tensorboard/compat/proto/coordination_config.proto @@ -29,6 +29,10 @@ message CoordinationServiceConfig { // Maximum wait time for all members in the cluster to be registered. int64 cluster_register_timeout_in_ms = 4; + // Denotes if we should synchronize the agents' register attempts by blocking + // on a barrier. This is useful for synchronized restarts. + bool cluster_register_with_barrier = 14; + // Heartbeat timeout, if a task does not record heartbeat in this time // window, it will be considered disconnected. // Note: This is also used as a grace period to accept any heartbeats after diff --git a/tensorboard/compat/proto/proto_test.py b/tensorboard/compat/proto/proto_test.py index f1cc8faaa71..a371e3a0e3f 100644 --- a/tensorboard/compat/proto/proto_test.py +++ b/tensorboard/compat/proto/proto_test.py @@ -155,7 +155,7 @@ ("tensorflow/core/protobuf/", "tensorboard/compat/proto/"), ("tensorflow/core/util/", "tensorboard/compat/proto/"), ("tensorflow/python/framework/", "tensorboard/compat/proto/"), - ("tsl/protobuf", "tensorboard/compat/proto"), + ("xla/tsl/protobuf", "tensorboard/compat/proto"), ('package: "tensorflow.tfprof"', 'package: "tensorboard"'), ('package: "tensorflow"', 'package: "tensorboard"'), ('type_name: ".tensorflow.tfprof', 'type_name: ".tensorboard'), @@ -236,7 +236,7 @@ ``` $ BUILDTOOLS_VERSION='3.0.0' $ BUILDIFIER_SHA256SUM='e92a6793c7134c5431c58fbc34700664f101e5c9b1c1fcd93b97978e8b7f88db' - $ ci/download_buildifier.sh "${BUILDTOOLS_VERSION}" "${BUILDIFIER_SHA256SUM}" ~/tb_buildifier/buildifier + $ ci/download_buildifier.sh "${{BUILDTOOLS_VERSION}}" "${{BUILDIFIER_SHA256SUM}}" ~/tb_buildifier/buildifier ``` If a file needs reformatting, you'll see the file that needs to be diff --git a/tensorboard/compat/proto/types.proto b/tensorboard/compat/proto/types.proto index 5bcff0c1edf..c0e131bf14f 100644 --- a/tensorboard/compat/proto/types.proto +++ b/tensorboard/compat/proto/types.proto @@ -43,10 +43,13 @@ enum DataType { DT_FLOAT8_E5M2 = 24; // 5 exponent bits, 2 mantissa bits. DT_FLOAT8_E4M3FN = 25; // 4 exponent bits, 3 mantissa bits, finite-only, with // 2 NaNs (0bS1111111). - // TODO - b/299182407: Leaving room for remaining float8 types. - // DT_FLOAT8_E4M3FNUZ = 26; - // DT_FLOAT8_E4M3B11FNUZ = 27; - // DT_FLOAT8_E5M2FNUZ = 28; + DT_FLOAT8_E4M3FNUZ = 26; // 4 exponent bits, 3 mantissa bits, finite-only, + // with NaN. + DT_FLOAT8_E4M3B11FNUZ = 27; // 4 exponent bits, 3 mantissa bits, 11 bits + // bias, finite-only, with NaNs. + DT_FLOAT8_E5M2FNUZ = 28; // 5 exponent bits, 2 mantissa bits, finite-only, + // with NaN. + DT_INT4 = 29; DT_UINT4 = 30; @@ -78,10 +81,10 @@ enum DataType { DT_UINT64_REF = 123; DT_FLOAT8_E5M2_REF = 124; DT_FLOAT8_E4M3FN_REF = 125; - // TODO - b/299182407: Leaving room for remaining float8 types. - // DT_FLOAT8_E4M3FNUZ_REF = 126; - // DT_FLOAT8_E4M3B11FNUZ_REF = 127; - // DT_FLOAT8_E5M2FNUZ_REF = 128; + + DT_FLOAT8_E4M3FNUZ_REF = 126; + DT_FLOAT8_E4M3B11FNUZ_REF = 127; + DT_FLOAT8_E5M2FNUZ_REF = 128; DT_INT4_REF = 129; DT_UINT4_REF = 130; } diff --git a/tensorboard/compat/proto/update.sh b/tensorboard/compat/proto/update.sh index c87ae01dca7..9557eb0da6b 100755 --- a/tensorboard/compat/proto/update.sh +++ b/tensorboard/compat/proto/update.sh @@ -28,8 +28,8 @@ rsync --existing "$1"/tensorflow/core/util/*.proto tensorboard/compat/proto/ rsync --existing "$1"/tensorflow/python/framework/*.proto tensorboard/compat/proto/ # The "TSL" protos are now in their own repo, but they are included as a # "vendored" package within TF. This dir contains protos that are imported with -# the tsl/protobuf path that is replaced by the command below. -rsync --existing "$1"/third_party/xla/third_party/tsl/tsl/protobuf/*.proto tensorboard/compat/proto/ +# the xla/tsl/protobuf path that is replaced by the command below. +rsync --existing "$1"/third_party/xla/xla/tsl/protobuf/*.proto tensorboard/compat/proto/ # Rewrite file paths and package names and disable LINT checks. # @@ -40,7 +40,7 @@ find tensorboard/compat/proto/ -type f -name '*.proto' -exec perl -pi \ -e 's|tensorflow/core/profiler|tensorboard/compat/proto|g;' \ -e 's|tensorflow/core/util|tensorboard/compat/proto|g;' \ -e 's|tensorflow/python/framework|tensorboard/compat/proto|g;' \ - -e 's|tsl/protobuf|tensorboard/compat/proto|g;' \ + -e 's|xla/tsl/protobuf|tensorboard/compat/proto|g;' \ -e 's|package tensorflow.tfprof;|package tensorboard;|g;' \ -e 's|package tensorflow;|package tensorboard;|g;' \ -e 's|tensorflow\.DataType|tensorboard.DataType|g;' \ diff --git a/tensorboard/data/server/descriptor.bin b/tensorboard/data/server/descriptor.bin index 49ffe72edf9..681c537d34f 100644 Binary files a/tensorboard/data/server/descriptor.bin and b/tensorboard/data/server/descriptor.bin differ diff --git a/tensorboard/data/server/tensorboard.pb.rs b/tensorboard/data/server/tensorboard.pb.rs index 462ec3e7d6b..0505bec9b5c 100644 --- a/tensorboard/data/server/tensorboard.pb.rs +++ b/tensorboard/data/server/tensorboard.pb.rs @@ -131,10 +131,19 @@ pub enum DataType { /// 4 exponent bits, 3 mantissa bits, finite-only, with DtFloat8E4m3fn = 25, /// 2 NaNs (0bS1111111). - /// TODO - b/299182407: Leaving room for remaining float8 types. - /// DT_FLOAT8_E4M3FNUZ = 26; - /// DT_FLOAT8_E4M3B11FNUZ = 27; - /// DT_FLOAT8_E5M2FNUZ = 28; + /// + /// 4 exponent bits, 3 mantissa bits, finite-only, + DtFloat8E4m3fnuz = 26, + /// with NaN. + /// + /// 4 exponent bits, 3 mantissa bits, 11 bits + DtFloat8E4m3b11fnuz = 27, + /// bias, finite-only, with NaNs. + /// + /// 5 exponent bits, 2 mantissa bits, finite-only, + DtFloat8E5m2fnuz = 28, + // with NaN. + DtInt4 = 29, DtUint4 = 30, /// Do not use! These are only for TF1's obsolete reference Variables. @@ -165,10 +174,9 @@ pub enum DataType { DtUint64Ref = 123, DtFloat8E5m2Ref = 124, DtFloat8E4m3fnRef = 125, - /// TODO - b/299182407: Leaving room for remaining float8 types. - /// DT_FLOAT8_E4M3FNUZ_REF = 126; - /// DT_FLOAT8_E4M3B11FNUZ_REF = 127; - /// DT_FLOAT8_E5M2FNUZ_REF = 128; + DtFloat8E4m3fnuzRef = 126, + DtFloat8E4m3b11fnuzRef = 127, + DtFloat8E5m2fnuzRef = 128, DtInt4Ref = 129, DtUint4Ref = 130, } diff --git a/tensorboard/version.py b/tensorboard/version.py index 4bea1ff7aa2..ae6a803824c 100644 --- a/tensorboard/version.py +++ b/tensorboard/version.py @@ -15,7 +15,7 @@ """Contains the version string.""" -VERSION = "2.19.0a0" +VERSION = "2.19.0" if __name__ == "__main__": print(VERSION)