blob: fe07c00c8d37a7f30dcdb7a97d5526bdd5d51314 [file] [log] [blame]
syntax = "proto3";
package tensorflow.profiler;
// All possible execution modes of a tf-function.
enum TfFunctionExecutionMode {
// Yet to be set.
INVALID_MODE = 0;
// Eager execution.
EAGER_MODE = 1;
// Graph execution with tracing.
TRACED_MODE = 2;
// Graph execution without tracing.
NOT_TRACED_MODE = 3;
// Concrete function.
CONCRETE_MODE = 4;
}
// All possible compilers that can be used to compile a tf-function in the graph
// mode.
enum TfFunctionCompiler {
// Yet to be set.
INVALID_COMPILER = 0;
// Any other compiler.
OTHER_COMPILER = 1;
// If some instance of the function is compiled with XLA and some is compiled
// with Non-XLA, use "MIXED_COMPILER".
MIXED_COMPILER = 2;
// XLA compiler.
XLA_COMPILER = 3;
// MLIR compiler.
MLIR_COMPILER = 4;
}
// Metrics associated with a particular execution mode of a tf-function.
message TfFunctionMetrics {
// Number of invocations to the function in that execution mode.
uint64 count = 1;
// The sum of "self-execution" time of this function over those invocations.
uint64 self_time_ps = 2;
}
// Statistics for a tf-function.
message TfFunction {
// A map from each execution mode to its corresponding metrics.
map<int32, TfFunctionMetrics> metrics = 1;
// Total tracing count from the program's beginning (i.e. beyond the profiling
// period) of this tf-function.
int64 total_tracing_count = 2;
// Compiler used to compile this function.
TfFunctionCompiler compiler = 3;
}
// Statistics for all tf-functions.
message TfFunctionDb {
// A map from function name to the statistics of that function.
map<string, TfFunction> tf_functions = 1;
}