| syntax = "proto3"; |
| |
| package tensorflow; |
| |
| import "tensorflow/core/framework/graph.proto"; |
| |
| // Tensor Tracer Report proto gives information about the trace including: |
| // - TensorTracerConfig: version, device, num replicas, trace mode. |
| // - Graphdef, e.g., list of operations, tensors |
| // - TracedTensorDef: |
| // * Name of the tensor |
| // * Tracepoint name if provided. |
| // * Index of the tensor in the compact cache if traced. |
| // * Explanation for why the tensor is traced or not. |
| message TensorTracerReport { |
| TensorTracerConfig config = 1; |
| |
| // Tensorflow graph. |
| tensorflow.GraphDef graphdef = 2; |
| |
| // A map from tensor name to its TracedTensorDef. |
| map<string, TracedTensorDef> tensordef = 3; |
| |
| // The fingerprint of the TensorTracerReport (fingerprint calculation excludes |
| // this field and graphdef). |
| string fingerprint = 4; |
| |
| // The function_name passed to the function_callback |
| // that produced this TensorTracerReport |
| string concrete_function_name = 5; |
| |
| // The index of the last stack frame where the stack traces for all output |
| // operations in the graph have the same value. |
| int32 last_common_frame_no = 6; |
| |
| // List of names of output tensors of the function being traced. |
| repeated string outputs = 7; |
| |
| // Information about the number of tensors traced and skipped. |
| TracingStats tracing_stats = 8; |
| |
| message TensorTracerConfig { |
| // Tensor tracer version, e.g. hostcall, outside compilation. |
| string version = 1; |
| // Traced device, CPU, TPU... |
| string device = 2; |
| |
| // Trace mode, norm, summary, full-trace. |
| string trace_mode = 3; |
| |
| // Number of cores, e.g. TPU cores, in the system. |
| int32 num_cores = 4; |
| |
| // Number of hosts, e.g. compute nodes in the system. |
| int32 num_hosts = 5; |
| |
| // Keep submode as string for backward compatibility. |
| string submode = 6; |
| |
| // Keep num cores per host for backward compatibility. |
| int32 num_cores_per_host = 7; |
| |
| // Id of the included cores, if a subset of cores are traced. |
| repeated int32 included_cores = 8; |
| |
| // The names of the signatures corresponding to the cache indices. |
| repeated string signatures = 9; |
| } |
| |
| message TracingStats { |
| // The total number of tensors in the function. |
| int32 total_tensors = 1; |
| // The number of traced tensors in the function. |
| int32 traced_tensors = 2; |
| // Counts of traced tensors by op type. |
| map<string, int32> traced_tensor_types = 3; |
| // The number of tensors added by Tensor Tracer. |
| int32 added_tensors = 4; |
| } |
| |
| message TracedTensorDef { |
| // Name of the tensor as appears in tf graph. |
| string name = 1; |
| // Cache index of the tensor. This may be different than topological index. |
| int32 cache_index = 2; |
| // If trace points are provided, corresponding tracepoint name of the |
| // tensor. Trace points are placed on the edges (tensors) in the tensorflow |
| // graph, and they force tensor tracer to trace the corresponding tensor. |
| // Tracepoints can be added using the programatic interface |
| // tensor_tracer.tensor_tracepoint(tensor, trace_point_name) function. |
| // This will add a trace point with the given trace_point_name for the given |
| // tensor. If a trace_point is provided for the tensor, |
| // trace_point name will be used for the rest of the analysis instead of |
| // tensor names. One can use trace_point_name's to compare two models with |
| // arbitrary tensor names by providing the same trace point name for the |
| // tensors that are comparable. |
| string trace_point_name = 3; |
| // Whether the tensor is traced or not. |
| bool is_traced = 4; |
| // Detailed explanation why the tensor is traced or not. |
| string explanation = 5; |
| // Detailed stack of operation |
| Stack op_stack_info = 6; |
| |
| message Stack { |
| // Function names from stack |
| repeated string stack_fn_names = 1; |
| // Line in stack |
| repeated string stack_lines = 2; |
| // Filenames from stack |
| repeated string stack_filenames = 3; |
| // Line number in file from stack |
| repeated int32 stack_linenos = 4; |
| } |
| } |
| } |