[tf.data] This CL enables a 5% experiment which uses max available parallelism for ParallelMapDataset. Empirical result indicated that parallelism can be more aggressive for ParallelMap.
PiperOrigin-RevId: 381292922
Change-Id: Iafe891de78aa84cb2d7d031aa11f190559b21183
diff --git a/tensorflow/core/data/dataset_utils.cc b/tensorflow/core/data/dataset_utils.cc
index 139cf8b..60c01de 100644
--- a/tensorflow/core/data/dataset_utils.cc
+++ b/tensorflow/core/data/dataset_utils.cc
@@ -893,6 +893,7 @@
REGISTER_DATASET_EXPERIMENT("enable_gradient_descent", 0);
REGISTER_DATASET_EXPERIMENT("parallelize_batch_copy", 50);
-}
+REGISTER_DATASET_EXPERIMENT("max_parallelism", 5);
+} // namespace
} // namespace data
} // namespace tensorflow
diff --git a/tensorflow/core/kernels/data/parallel_map_dataset_op.cc b/tensorflow/core/kernels/data/parallel_map_dataset_op.cc
index b432087..7980de9 100644
--- a/tensorflow/core/kernels/data/parallel_map_dataset_op.cc
+++ b/tensorflow/core/kernels/data/parallel_map_dataset_op.cc
@@ -724,7 +724,11 @@
&captured_func));
if (num_parallel_calls == model::kAutotune) {
- metrics::RecordTFDataAutotune(kDatasetType);
+ if (GetExperiments().contains("max_parallelism")) {
+ num_parallel_calls = port::MaxParallelism();
+ } else {
+ metrics::RecordTFDataAutotune(kDatasetType);
+ }
}
*output =