syntax = "proto3";

package tensorflow.profiler;

// Proto to store the event time fraction of a single event on a single host.
// The event time fraction is the fraction of the total time that the event
// takes in comparison to the total time of all events in each step.
message EventTimeFractionPerHost {
  string hostname = 1;
  repeated float event_time_fractions = 2;
}

// Proto to store the event time fraction of a single event on a single chip.
// The event time fraction is the fraction of the total time that the event
// takes in comparison to the total time of all events.
message EventTimeFractionPerChip {
  string id = 1;
  repeated float event_time_fractions = 2;
}

// Proto to store the event time fraction for all chips from a single host for a
// specific event.
message EventTimeFractionAnalyzerResult {
  map<string, EventTimeFractionPerChip> chip_event_time_fractions = 1;
  map<string, EventTimeFractionPerHost> host_event_time_fractions = 2;
}

message EventTimeFractionAnalyzerResults {
  map<string, EventTimeFractionAnalyzerResult> results = 1;
}
