blob: 7858f08c8eca1d8c1edda659f0f69280c5e433b8 [file] [log] [blame]
syntax = "proto3";
package tensorflow;
// Next ID: 11
message ProfileOptions {
// Some default value of option are not proto3 default value. Use this version
// to determine if we should use default option value instead of proto3
// default value.
uint32 version = 5;
enum DeviceType {
UNSPECIFIED = 0;
CPU = 1;
GPU = 2;
TPU = 3;
}
// Device type to profile/trace: (version >= 1)
// DeviceType::UNSPECIFIED: All registered device profiler will be enabled.
// DeviceType::CPU: only CPU will be profiled.
// DeviceType::GPU: only CPU/GPU will be profiled.
// DeviceType::TPU: only CPU/TPU will be profiled.
DeviceType device_type = 6;
// We don't collect the dataset ops by default for better trace-viewer
// scalability. The caller can mannually set this field to include the ops.
bool include_dataset_ops = 1;
// Levels of host tracing: (version >= 1)
// - Level 0 is used to disable host traces.
// - Level 1 enables tracing of only user instrumented (or default) TraceMe.
// - Level 2 enables tracing of all level 1 TraceMe(s) and instrumented high
// level program execution details (expensive TF ops, XLA ops, etc).
// This is the default.
// - Level 3 enables tracing of all level 2 TraceMe(s) and more verbose
// (low-level) program execution details (cheap TF ops, etc).
uint32 host_tracer_level = 2;
// Levels of device tracing: (version >= 1)
// - Level 0 is used to disable device traces.
// - Level 1 is used to enable device traces.
// - More levels might be defined for specific device for controlling the
// verbosity of the trace.
uint32 device_tracer_level = 3;
// Whether enable python function calls tracing. Runtime overhead ensues if
// enabled. Default off. (version >= 1)
uint32 python_tracer_level = 4;
// Whether serialize hlo_proto when XLA is used. (version >= 1)
bool enable_hlo_proto = 7;
// The local profiler starts profiling at this Unix timestamp in nanoseconds.
uint64 start_timestamp_ns = 8;
// The local profiler collects `duration_ms` milliseconds of data. If the
// value is 0, profiling continues until interrupted.
uint64 duration_ms = 9;
// Directory to save profile data to. No-op when empty.
string repository_path = 10;
}
// Options for remote profiler session manager.
// Next ID: 5
message RemoteProfilerSessionManagerOptions {
// Options for each local profiler.
ProfileOptions profiler_options = 1;
// List of servers to profile. Supported formats: host:port.
repeated string service_addresses = 2;
// Unix timestamp of when the session was started.
uint64 session_creation_timestamp_ns = 3;
// Maximum time (in milliseconds) a profiling session manager waits for all
// profilers to finish after issuing gRPC request. If value is 0, session
// continues until interrupted. Otherwise, value must be greater than
// profiler_options.duration_ms.
uint64 max_session_duration_ms = 4;
}