121 lines
3.6 KiB
Protocol Buffer
121 lines
3.6 KiB
Protocol Buffer
/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
==============================================================================*/
|
|
|
|
syntax = "proto3";
|
|
|
|
package tensorflow;
|
|
|
|
import "tensorflow/core/protobuf/config.proto";
|
|
|
|
// Summarizes the results of auto-clustering a TensorFlow graph.
|
|
//
|
|
// Next ID: 5
|
|
message XlaAutoClusteringSummary {
|
|
// Represents a single element in a histogram of ops ("op" as in "TensorFlow
|
|
// operation").
|
|
//
|
|
// Next ID: 3
|
|
message OpAndCount {
|
|
// The TensorFlow operation (like MatMult, Add etc.)
|
|
string op = 1;
|
|
|
|
// The number of times this occurs.
|
|
int32 count = 2;
|
|
}
|
|
|
|
// Describes a single XLA cluster.
|
|
//
|
|
// Next ID: 4
|
|
message Cluster {
|
|
string name = 1;
|
|
|
|
// The number of nodes in the cluster.
|
|
int32 size = 2;
|
|
|
|
// A histogram of the TF operations in this cluster.
|
|
repeated OpAndCount op_histogram = 3;
|
|
};
|
|
|
|
// The number of nodes in the graph that are not inside an XLA cluster.
|
|
int32 unclustered_node_count = 1;
|
|
|
|
// The number of nodes in the graph that are in an XLA cluster.
|
|
int32 clustered_node_count = 2;
|
|
|
|
// All of the XLA clusters in the TF graph.
|
|
repeated Cluster clusters = 3;
|
|
|
|
// A histogram of the TF operations that were not clustered.
|
|
repeated OpAndCount unclustered_op_histogram = 4;
|
|
}
|
|
|
|
// Listeners listening for auto clustering events get messages of this type.
|
|
//
|
|
// Next ID: 4
|
|
message XlaAutoClusteringActivity {
|
|
// The value of GlobalJitLevel, as determined by `GetGlobalJitLevelForGraph`.
|
|
// This determines if global auto-clustering is enabled.
|
|
OptimizerOptions.GlobalJitLevel global_jit_level = 1;
|
|
|
|
// Whether --tf_xla_cpu_global_jit is enabled in TF_XLA_FLAGS.
|
|
bool cpu_global_jit_enabled = 2;
|
|
|
|
XlaAutoClusteringSummary summary = 3;
|
|
}
|
|
|
|
// Listeners listening for JIT compilation events get messages of this type.
|
|
// Each instance of XlaJitCompilationActivity corresponds to a single
|
|
// compilation of a single XLA cluster. E.g. if a graph has two clusters, A and
|
|
// B, and A is compiled 5 times and B is compiled 2 times then we will generate
|
|
// 7 instances of XlaJitCompilationActivity.
|
|
//
|
|
// Next ID: 5
|
|
message XlaJitCompilationActivity {
|
|
string cluster_name = 1;
|
|
|
|
// The number of time this cluster has been compiled.
|
|
int32 compile_count = 2;
|
|
|
|
// Microseconds spent in the individual compilation being reported.
|
|
int64 compile_time_us = 3;
|
|
|
|
// Total microseconds spent in (re-)compiling this cluster so far.
|
|
int64 cumulative_compile_time_us = 4;
|
|
}
|
|
|
|
// LINT.IfChange
|
|
//
|
|
// Used for logging situations seen in Tensorflow models being optimized that
|
|
// are known to not perform well with XLA.
|
|
//
|
|
// Next ID: 3
|
|
message XlaOptimizationRemark {
|
|
// Next ID: 6
|
|
enum Warning {
|
|
NONE = 0;
|
|
INACCURATE_OPERATION = 1;
|
|
SLOW_OPERATION = 2;
|
|
UNIMPLEMENTED_OPERATION = 3;
|
|
SLOW_IMAGE_RESIZE_DIMENSIONS = 4;
|
|
MEGAMORPHIC_FUNCTION = 5;
|
|
}
|
|
|
|
Warning warning = 1;
|
|
|
|
// Information such as which node was the problem.
|
|
string debug_information = 2;
|
|
}
|
|
// LINT.ThenChange(https://www.tensorflow.org/code/tensorflow/compiler/jit/xla_activity_listener.h)
|