1syntax = "proto3";
2
3package tensorflow.profiler;
4
5import "tensorflow/core/profiler/protobuf/diagnostics.proto";
6
7message StepBreakdownEvents {
8  int32 id = 1;
9  string name = 2;
10}
11
12// A database of PodStats records.
13message PodStatsDatabase {
14  // All PodStats records, one for each row in the PodStats tool.
15  repeated PodStatsRecord pod_stats_record = 1;
16  // Error and warning messages for diagnosing profiling issues.
17  Diagnostics diagnostics = 3;
18  // A map from event type number to event name string for step breakdown.
19  repeated StepBreakdownEvents step_breakdown_events = 4;
20  reserved 2;
21}
22
23// Next ID: 20
24// There is one PodStatsRecord for each step traced on each compute node.
25message PodStatsRecord {
26  // The host name where the trace was collected.
27  string host_name = 1;
28  // The TPU global chip id where the trace was collected.
29  int32 chip_id = 2;
30  // The TPU node id where the trace was collected.
31  int32 node_id = 3;
32  // The step number.
33  uint32 step_num = 4;
34  // The step duration in micro-seconds.
35  double total_duration_us = 5;
36  // Breakdown the durations for each event type in micro-seconds.
37  map<int32, double> step_breakdown_us = 19;
38  // Indicates the bottleneck out of the above mentioned metrics.
39  string bottleneck = 14;
40  reserved 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18;
41}
42