1#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![cfg_attr(rustfmt, rustfmt_skip)]
9
10#![allow(box_pointers)]
11#![allow(dead_code)]
12#![allow(missing_docs)]
13#![allow(non_camel_case_types)]
14#![allow(non_snake_case)]
15#![allow(non_upper_case_globals)]
16#![allow(trivial_casts)]
17#![allow(unsafe_code)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20use protobuf::Message as Message_imported_for_functions;
23use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;
24
25#[derive(PartialEq,Clone,Default)]
30pub struct GPUOptions {
31 pub per_process_gpu_memory_fraction: f64,
33 pub allow_growth: bool,
34 pub allocator_type: ::std::string::String,
35 pub deferred_deletion_bytes: i64,
36 pub visible_device_list: ::std::string::String,
37 pub polling_active_delay_usecs: i32,
38 pub polling_inactive_delay_msecs: i32,
39 pub force_gpu_compatible: bool,
40 pub experimental: ::protobuf::SingularPtrField<GPUOptions_Experimental>,
41 pub unknown_fields: ::protobuf::UnknownFields,
43 pub cached_size: ::protobuf::CachedSize,
44}
45
46impl<'a> ::std::default::Default for &'a GPUOptions {
47 fn default() -> &'a GPUOptions {
48 <GPUOptions as ::protobuf::Message>::default_instance()
49 }
50}
51
52impl GPUOptions {
53 pub fn new() -> GPUOptions {
54 ::std::default::Default::default()
55 }
56
57 pub fn get_per_process_gpu_memory_fraction(&self) -> f64 {
61 self.per_process_gpu_memory_fraction
62 }
63 pub fn clear_per_process_gpu_memory_fraction(&mut self) {
64 self.per_process_gpu_memory_fraction = 0.;
65 }
66
67 pub fn set_per_process_gpu_memory_fraction(&mut self, v: f64) {
69 self.per_process_gpu_memory_fraction = v;
70 }
71
72 pub fn get_allow_growth(&self) -> bool {
76 self.allow_growth
77 }
78 pub fn clear_allow_growth(&mut self) {
79 self.allow_growth = false;
80 }
81
82 pub fn set_allow_growth(&mut self, v: bool) {
84 self.allow_growth = v;
85 }
86
87 pub fn get_allocator_type(&self) -> &str {
91 &self.allocator_type
92 }
93 pub fn clear_allocator_type(&mut self) {
94 self.allocator_type.clear();
95 }
96
97 pub fn set_allocator_type(&mut self, v: ::std::string::String) {
99 self.allocator_type = v;
100 }
101
102 pub fn mut_allocator_type(&mut self) -> &mut ::std::string::String {
105 &mut self.allocator_type
106 }
107
108 pub fn take_allocator_type(&mut self) -> ::std::string::String {
110 ::std::mem::replace(&mut self.allocator_type, ::std::string::String::new())
111 }
112
113 pub fn get_deferred_deletion_bytes(&self) -> i64 {
117 self.deferred_deletion_bytes
118 }
119 pub fn clear_deferred_deletion_bytes(&mut self) {
120 self.deferred_deletion_bytes = 0;
121 }
122
123 pub fn set_deferred_deletion_bytes(&mut self, v: i64) {
125 self.deferred_deletion_bytes = v;
126 }
127
128 pub fn get_visible_device_list(&self) -> &str {
132 &self.visible_device_list
133 }
134 pub fn clear_visible_device_list(&mut self) {
135 self.visible_device_list.clear();
136 }
137
138 pub fn set_visible_device_list(&mut self, v: ::std::string::String) {
140 self.visible_device_list = v;
141 }
142
143 pub fn mut_visible_device_list(&mut self) -> &mut ::std::string::String {
146 &mut self.visible_device_list
147 }
148
149 pub fn take_visible_device_list(&mut self) -> ::std::string::String {
151 ::std::mem::replace(&mut self.visible_device_list, ::std::string::String::new())
152 }
153
154 pub fn get_polling_active_delay_usecs(&self) -> i32 {
158 self.polling_active_delay_usecs
159 }
160 pub fn clear_polling_active_delay_usecs(&mut self) {
161 self.polling_active_delay_usecs = 0;
162 }
163
164 pub fn set_polling_active_delay_usecs(&mut self, v: i32) {
166 self.polling_active_delay_usecs = v;
167 }
168
169 pub fn get_polling_inactive_delay_msecs(&self) -> i32 {
173 self.polling_inactive_delay_msecs
174 }
175 pub fn clear_polling_inactive_delay_msecs(&mut self) {
176 self.polling_inactive_delay_msecs = 0;
177 }
178
179 pub fn set_polling_inactive_delay_msecs(&mut self, v: i32) {
181 self.polling_inactive_delay_msecs = v;
182 }
183
184 pub fn get_force_gpu_compatible(&self) -> bool {
188 self.force_gpu_compatible
189 }
190 pub fn clear_force_gpu_compatible(&mut self) {
191 self.force_gpu_compatible = false;
192 }
193
194 pub fn set_force_gpu_compatible(&mut self, v: bool) {
196 self.force_gpu_compatible = v;
197 }
198
199 pub fn get_experimental(&self) -> &GPUOptions_Experimental {
203 self.experimental.as_ref().unwrap_or_else(|| GPUOptions_Experimental::default_instance())
204 }
205 pub fn clear_experimental(&mut self) {
206 self.experimental.clear();
207 }
208
209 pub fn has_experimental(&self) -> bool {
210 self.experimental.is_some()
211 }
212
213 pub fn set_experimental(&mut self, v: GPUOptions_Experimental) {
215 self.experimental = ::protobuf::SingularPtrField::some(v);
216 }
217
218 pub fn mut_experimental(&mut self) -> &mut GPUOptions_Experimental {
221 if self.experimental.is_none() {
222 self.experimental.set_default();
223 }
224 self.experimental.as_mut().unwrap()
225 }
226
227 pub fn take_experimental(&mut self) -> GPUOptions_Experimental {
229 self.experimental.take().unwrap_or_else(|| GPUOptions_Experimental::new())
230 }
231}
232
233impl ::protobuf::Message for GPUOptions {
234 fn is_initialized(&self) -> bool {
235 for v in &self.experimental {
236 if !v.is_initialized() {
237 return false;
238 }
239 };
240 true
241 }
242
243 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
244 while !is.eof()? {
245 let (field_number, wire_type) = is.read_tag_unpack()?;
246 match field_number {
247 1 => {
248 if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
249 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
250 }
251 let tmp = is.read_double()?;
252 self.per_process_gpu_memory_fraction = tmp;
253 },
254 4 => {
255 if wire_type != ::protobuf::wire_format::WireTypeVarint {
256 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
257 }
258 let tmp = is.read_bool()?;
259 self.allow_growth = tmp;
260 },
261 2 => {
262 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.allocator_type)?;
263 },
264 3 => {
265 if wire_type != ::protobuf::wire_format::WireTypeVarint {
266 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
267 }
268 let tmp = is.read_int64()?;
269 self.deferred_deletion_bytes = tmp;
270 },
271 5 => {
272 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.visible_device_list)?;
273 },
274 6 => {
275 if wire_type != ::protobuf::wire_format::WireTypeVarint {
276 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
277 }
278 let tmp = is.read_int32()?;
279 self.polling_active_delay_usecs = tmp;
280 },
281 7 => {
282 if wire_type != ::protobuf::wire_format::WireTypeVarint {
283 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
284 }
285 let tmp = is.read_int32()?;
286 self.polling_inactive_delay_msecs = tmp;
287 },
288 8 => {
289 if wire_type != ::protobuf::wire_format::WireTypeVarint {
290 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
291 }
292 let tmp = is.read_bool()?;
293 self.force_gpu_compatible = tmp;
294 },
295 9 => {
296 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.experimental)?;
297 },
298 _ => {
299 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
300 },
301 };
302 }
303 ::std::result::Result::Ok(())
304 }
305
306 #[allow(unused_variables)]
308 fn compute_size(&self) -> u32 {
309 let mut my_size = 0;
310 if self.per_process_gpu_memory_fraction != 0. {
311 my_size += 9;
312 }
313 if self.allow_growth != false {
314 my_size += 2;
315 }
316 if !self.allocator_type.is_empty() {
317 my_size += ::protobuf::rt::string_size(2, &self.allocator_type);
318 }
319 if self.deferred_deletion_bytes != 0 {
320 my_size += ::protobuf::rt::value_size(3, self.deferred_deletion_bytes, ::protobuf::wire_format::WireTypeVarint);
321 }
322 if !self.visible_device_list.is_empty() {
323 my_size += ::protobuf::rt::string_size(5, &self.visible_device_list);
324 }
325 if self.polling_active_delay_usecs != 0 {
326 my_size += ::protobuf::rt::value_size(6, self.polling_active_delay_usecs, ::protobuf::wire_format::WireTypeVarint);
327 }
328 if self.polling_inactive_delay_msecs != 0 {
329 my_size += ::protobuf::rt::value_size(7, self.polling_inactive_delay_msecs, ::protobuf::wire_format::WireTypeVarint);
330 }
331 if self.force_gpu_compatible != false {
332 my_size += 2;
333 }
334 if let Some(ref v) = self.experimental.as_ref() {
335 let len = v.compute_size();
336 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
337 }
338 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
339 self.cached_size.set(my_size);
340 my_size
341 }
342
343 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
344 if self.per_process_gpu_memory_fraction != 0. {
345 os.write_double(1, self.per_process_gpu_memory_fraction)?;
346 }
347 if self.allow_growth != false {
348 os.write_bool(4, self.allow_growth)?;
349 }
350 if !self.allocator_type.is_empty() {
351 os.write_string(2, &self.allocator_type)?;
352 }
353 if self.deferred_deletion_bytes != 0 {
354 os.write_int64(3, self.deferred_deletion_bytes)?;
355 }
356 if !self.visible_device_list.is_empty() {
357 os.write_string(5, &self.visible_device_list)?;
358 }
359 if self.polling_active_delay_usecs != 0 {
360 os.write_int32(6, self.polling_active_delay_usecs)?;
361 }
362 if self.polling_inactive_delay_msecs != 0 {
363 os.write_int32(7, self.polling_inactive_delay_msecs)?;
364 }
365 if self.force_gpu_compatible != false {
366 os.write_bool(8, self.force_gpu_compatible)?;
367 }
368 if let Some(ref v) = self.experimental.as_ref() {
369 os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
370 os.write_raw_varint32(v.get_cached_size())?;
371 v.write_to_with_cached_sizes(os)?;
372 }
373 os.write_unknown_fields(self.get_unknown_fields())?;
374 ::std::result::Result::Ok(())
375 }
376
377 fn get_cached_size(&self) -> u32 {
378 self.cached_size.get()
379 }
380
381 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
382 &self.unknown_fields
383 }
384
385 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
386 &mut self.unknown_fields
387 }
388
389 fn as_any(&self) -> &dyn (::std::any::Any) {
390 self as &dyn (::std::any::Any)
391 }
392 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
393 self as &mut dyn (::std::any::Any)
394 }
395 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
396 self
397 }
398
399 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
400 Self::descriptor_static()
401 }
402
403 fn new() -> GPUOptions {
404 GPUOptions::new()
405 }
406
407 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
408 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
409 unsafe {
410 descriptor.get(|| {
411 let mut fields = ::std::vec::Vec::new();
412 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
413 "per_process_gpu_memory_fraction",
414 |m: &GPUOptions| { &m.per_process_gpu_memory_fraction },
415 |m: &mut GPUOptions| { &mut m.per_process_gpu_memory_fraction },
416 ));
417 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
418 "allow_growth",
419 |m: &GPUOptions| { &m.allow_growth },
420 |m: &mut GPUOptions| { &mut m.allow_growth },
421 ));
422 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
423 "allocator_type",
424 |m: &GPUOptions| { &m.allocator_type },
425 |m: &mut GPUOptions| { &mut m.allocator_type },
426 ));
427 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
428 "deferred_deletion_bytes",
429 |m: &GPUOptions| { &m.deferred_deletion_bytes },
430 |m: &mut GPUOptions| { &mut m.deferred_deletion_bytes },
431 ));
432 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
433 "visible_device_list",
434 |m: &GPUOptions| { &m.visible_device_list },
435 |m: &mut GPUOptions| { &mut m.visible_device_list },
436 ));
437 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
438 "polling_active_delay_usecs",
439 |m: &GPUOptions| { &m.polling_active_delay_usecs },
440 |m: &mut GPUOptions| { &mut m.polling_active_delay_usecs },
441 ));
442 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
443 "polling_inactive_delay_msecs",
444 |m: &GPUOptions| { &m.polling_inactive_delay_msecs },
445 |m: &mut GPUOptions| { &mut m.polling_inactive_delay_msecs },
446 ));
447 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
448 "force_gpu_compatible",
449 |m: &GPUOptions| { &m.force_gpu_compatible },
450 |m: &mut GPUOptions| { &mut m.force_gpu_compatible },
451 ));
452 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<GPUOptions_Experimental>>(
453 "experimental",
454 |m: &GPUOptions| { &m.experimental },
455 |m: &mut GPUOptions| { &mut m.experimental },
456 ));
457 ::protobuf::reflect::MessageDescriptor::new_pb_name::<GPUOptions>(
458 "GPUOptions",
459 fields,
460 file_descriptor_proto()
461 )
462 })
463 }
464 }
465
466 fn default_instance() -> &'static GPUOptions {
467 static mut instance: ::protobuf::lazy::Lazy<GPUOptions> = ::protobuf::lazy::Lazy::INIT;
468 unsafe {
469 instance.get(GPUOptions::new)
470 }
471 }
472}
473
474impl ::protobuf::Clear for GPUOptions {
475 fn clear(&mut self) {
476 self.per_process_gpu_memory_fraction = 0.;
477 self.allow_growth = false;
478 self.allocator_type.clear();
479 self.deferred_deletion_bytes = 0;
480 self.visible_device_list.clear();
481 self.polling_active_delay_usecs = 0;
482 self.polling_inactive_delay_msecs = 0;
483 self.force_gpu_compatible = false;
484 self.experimental.clear();
485 self.unknown_fields.clear();
486 }
487}
488
489impl ::std::fmt::Debug for GPUOptions {
490 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
491 ::protobuf::text_format::fmt(self, f)
492 }
493}
494
495impl ::protobuf::reflect::ProtobufValue for GPUOptions {
496 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
497 ::protobuf::reflect::ReflectValueRef::Message(self)
498 }
499}
500
501#[derive(PartialEq,Clone,Default)]
502pub struct GPUOptions_Experimental {
503 pub virtual_devices: ::protobuf::RepeatedField<GPUOptions_Experimental_VirtualDevices>,
505 pub use_unified_memory: bool,
506 pub num_dev_to_dev_copy_streams: i32,
507 pub collective_ring_order: ::std::string::String,
508 pub timestamped_allocator: bool,
509 pub kernel_tracker_max_interval: i32,
510 pub kernel_tracker_max_bytes: i32,
511 pub kernel_tracker_max_pending: i32,
512 pub unknown_fields: ::protobuf::UnknownFields,
514 pub cached_size: ::protobuf::CachedSize,
515}
516
517impl<'a> ::std::default::Default for &'a GPUOptions_Experimental {
518 fn default() -> &'a GPUOptions_Experimental {
519 <GPUOptions_Experimental as ::protobuf::Message>::default_instance()
520 }
521}
522
523impl GPUOptions_Experimental {
524 pub fn new() -> GPUOptions_Experimental {
525 ::std::default::Default::default()
526 }
527
528 pub fn get_virtual_devices(&self) -> &[GPUOptions_Experimental_VirtualDevices] {
532 &self.virtual_devices
533 }
534 pub fn clear_virtual_devices(&mut self) {
535 self.virtual_devices.clear();
536 }
537
538 pub fn set_virtual_devices(&mut self, v: ::protobuf::RepeatedField<GPUOptions_Experimental_VirtualDevices>) {
540 self.virtual_devices = v;
541 }
542
543 pub fn mut_virtual_devices(&mut self) -> &mut ::protobuf::RepeatedField<GPUOptions_Experimental_VirtualDevices> {
545 &mut self.virtual_devices
546 }
547
548 pub fn take_virtual_devices(&mut self) -> ::protobuf::RepeatedField<GPUOptions_Experimental_VirtualDevices> {
550 ::std::mem::replace(&mut self.virtual_devices, ::protobuf::RepeatedField::new())
551 }
552
553 pub fn get_use_unified_memory(&self) -> bool {
557 self.use_unified_memory
558 }
559 pub fn clear_use_unified_memory(&mut self) {
560 self.use_unified_memory = false;
561 }
562
563 pub fn set_use_unified_memory(&mut self, v: bool) {
565 self.use_unified_memory = v;
566 }
567
568 pub fn get_num_dev_to_dev_copy_streams(&self) -> i32 {
572 self.num_dev_to_dev_copy_streams
573 }
574 pub fn clear_num_dev_to_dev_copy_streams(&mut self) {
575 self.num_dev_to_dev_copy_streams = 0;
576 }
577
578 pub fn set_num_dev_to_dev_copy_streams(&mut self, v: i32) {
580 self.num_dev_to_dev_copy_streams = v;
581 }
582
583 pub fn get_collective_ring_order(&self) -> &str {
587 &self.collective_ring_order
588 }
589 pub fn clear_collective_ring_order(&mut self) {
590 self.collective_ring_order.clear();
591 }
592
593 pub fn set_collective_ring_order(&mut self, v: ::std::string::String) {
595 self.collective_ring_order = v;
596 }
597
598 pub fn mut_collective_ring_order(&mut self) -> &mut ::std::string::String {
601 &mut self.collective_ring_order
602 }
603
604 pub fn take_collective_ring_order(&mut self) -> ::std::string::String {
606 ::std::mem::replace(&mut self.collective_ring_order, ::std::string::String::new())
607 }
608
609 pub fn get_timestamped_allocator(&self) -> bool {
613 self.timestamped_allocator
614 }
615 pub fn clear_timestamped_allocator(&mut self) {
616 self.timestamped_allocator = false;
617 }
618
619 pub fn set_timestamped_allocator(&mut self, v: bool) {
621 self.timestamped_allocator = v;
622 }
623
624 pub fn get_kernel_tracker_max_interval(&self) -> i32 {
628 self.kernel_tracker_max_interval
629 }
630 pub fn clear_kernel_tracker_max_interval(&mut self) {
631 self.kernel_tracker_max_interval = 0;
632 }
633
634 pub fn set_kernel_tracker_max_interval(&mut self, v: i32) {
636 self.kernel_tracker_max_interval = v;
637 }
638
639 pub fn get_kernel_tracker_max_bytes(&self) -> i32 {
643 self.kernel_tracker_max_bytes
644 }
645 pub fn clear_kernel_tracker_max_bytes(&mut self) {
646 self.kernel_tracker_max_bytes = 0;
647 }
648
649 pub fn set_kernel_tracker_max_bytes(&mut self, v: i32) {
651 self.kernel_tracker_max_bytes = v;
652 }
653
654 pub fn get_kernel_tracker_max_pending(&self) -> i32 {
658 self.kernel_tracker_max_pending
659 }
660 pub fn clear_kernel_tracker_max_pending(&mut self) {
661 self.kernel_tracker_max_pending = 0;
662 }
663
664 pub fn set_kernel_tracker_max_pending(&mut self, v: i32) {
666 self.kernel_tracker_max_pending = v;
667 }
668}
669
670impl ::protobuf::Message for GPUOptions_Experimental {
671 fn is_initialized(&self) -> bool {
672 for v in &self.virtual_devices {
673 if !v.is_initialized() {
674 return false;
675 }
676 };
677 true
678 }
679
680 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
681 while !is.eof()? {
682 let (field_number, wire_type) = is.read_tag_unpack()?;
683 match field_number {
684 1 => {
685 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.virtual_devices)?;
686 },
687 2 => {
688 if wire_type != ::protobuf::wire_format::WireTypeVarint {
689 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
690 }
691 let tmp = is.read_bool()?;
692 self.use_unified_memory = tmp;
693 },
694 3 => {
695 if wire_type != ::protobuf::wire_format::WireTypeVarint {
696 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
697 }
698 let tmp = is.read_int32()?;
699 self.num_dev_to_dev_copy_streams = tmp;
700 },
701 4 => {
702 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.collective_ring_order)?;
703 },
704 5 => {
705 if wire_type != ::protobuf::wire_format::WireTypeVarint {
706 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
707 }
708 let tmp = is.read_bool()?;
709 self.timestamped_allocator = tmp;
710 },
711 7 => {
712 if wire_type != ::protobuf::wire_format::WireTypeVarint {
713 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
714 }
715 let tmp = is.read_int32()?;
716 self.kernel_tracker_max_interval = tmp;
717 },
718 8 => {
719 if wire_type != ::protobuf::wire_format::WireTypeVarint {
720 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
721 }
722 let tmp = is.read_int32()?;
723 self.kernel_tracker_max_bytes = tmp;
724 },
725 9 => {
726 if wire_type != ::protobuf::wire_format::WireTypeVarint {
727 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
728 }
729 let tmp = is.read_int32()?;
730 self.kernel_tracker_max_pending = tmp;
731 },
732 _ => {
733 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
734 },
735 };
736 }
737 ::std::result::Result::Ok(())
738 }
739
740 #[allow(unused_variables)]
742 fn compute_size(&self) -> u32 {
743 let mut my_size = 0;
744 for value in &self.virtual_devices {
745 let len = value.compute_size();
746 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
747 };
748 if self.use_unified_memory != false {
749 my_size += 2;
750 }
751 if self.num_dev_to_dev_copy_streams != 0 {
752 my_size += ::protobuf::rt::value_size(3, self.num_dev_to_dev_copy_streams, ::protobuf::wire_format::WireTypeVarint);
753 }
754 if !self.collective_ring_order.is_empty() {
755 my_size += ::protobuf::rt::string_size(4, &self.collective_ring_order);
756 }
757 if self.timestamped_allocator != false {
758 my_size += 2;
759 }
760 if self.kernel_tracker_max_interval != 0 {
761 my_size += ::protobuf::rt::value_size(7, self.kernel_tracker_max_interval, ::protobuf::wire_format::WireTypeVarint);
762 }
763 if self.kernel_tracker_max_bytes != 0 {
764 my_size += ::protobuf::rt::value_size(8, self.kernel_tracker_max_bytes, ::protobuf::wire_format::WireTypeVarint);
765 }
766 if self.kernel_tracker_max_pending != 0 {
767 my_size += ::protobuf::rt::value_size(9, self.kernel_tracker_max_pending, ::protobuf::wire_format::WireTypeVarint);
768 }
769 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
770 self.cached_size.set(my_size);
771 my_size
772 }
773
774 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
775 for v in &self.virtual_devices {
776 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
777 os.write_raw_varint32(v.get_cached_size())?;
778 v.write_to_with_cached_sizes(os)?;
779 };
780 if self.use_unified_memory != false {
781 os.write_bool(2, self.use_unified_memory)?;
782 }
783 if self.num_dev_to_dev_copy_streams != 0 {
784 os.write_int32(3, self.num_dev_to_dev_copy_streams)?;
785 }
786 if !self.collective_ring_order.is_empty() {
787 os.write_string(4, &self.collective_ring_order)?;
788 }
789 if self.timestamped_allocator != false {
790 os.write_bool(5, self.timestamped_allocator)?;
791 }
792 if self.kernel_tracker_max_interval != 0 {
793 os.write_int32(7, self.kernel_tracker_max_interval)?;
794 }
795 if self.kernel_tracker_max_bytes != 0 {
796 os.write_int32(8, self.kernel_tracker_max_bytes)?;
797 }
798 if self.kernel_tracker_max_pending != 0 {
799 os.write_int32(9, self.kernel_tracker_max_pending)?;
800 }
801 os.write_unknown_fields(self.get_unknown_fields())?;
802 ::std::result::Result::Ok(())
803 }
804
805 fn get_cached_size(&self) -> u32 {
806 self.cached_size.get()
807 }
808
809 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
810 &self.unknown_fields
811 }
812
813 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
814 &mut self.unknown_fields
815 }
816
817 fn as_any(&self) -> &dyn (::std::any::Any) {
818 self as &dyn (::std::any::Any)
819 }
820 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
821 self as &mut dyn (::std::any::Any)
822 }
823 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
824 self
825 }
826
827 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
828 Self::descriptor_static()
829 }
830
831 fn new() -> GPUOptions_Experimental {
832 GPUOptions_Experimental::new()
833 }
834
835 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
836 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
837 unsafe {
838 descriptor.get(|| {
839 let mut fields = ::std::vec::Vec::new();
840 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<GPUOptions_Experimental_VirtualDevices>>(
841 "virtual_devices",
842 |m: &GPUOptions_Experimental| { &m.virtual_devices },
843 |m: &mut GPUOptions_Experimental| { &mut m.virtual_devices },
844 ));
845 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
846 "use_unified_memory",
847 |m: &GPUOptions_Experimental| { &m.use_unified_memory },
848 |m: &mut GPUOptions_Experimental| { &mut m.use_unified_memory },
849 ));
850 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
851 "num_dev_to_dev_copy_streams",
852 |m: &GPUOptions_Experimental| { &m.num_dev_to_dev_copy_streams },
853 |m: &mut GPUOptions_Experimental| { &mut m.num_dev_to_dev_copy_streams },
854 ));
855 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
856 "collective_ring_order",
857 |m: &GPUOptions_Experimental| { &m.collective_ring_order },
858 |m: &mut GPUOptions_Experimental| { &mut m.collective_ring_order },
859 ));
860 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
861 "timestamped_allocator",
862 |m: &GPUOptions_Experimental| { &m.timestamped_allocator },
863 |m: &mut GPUOptions_Experimental| { &mut m.timestamped_allocator },
864 ));
865 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
866 "kernel_tracker_max_interval",
867 |m: &GPUOptions_Experimental| { &m.kernel_tracker_max_interval },
868 |m: &mut GPUOptions_Experimental| { &mut m.kernel_tracker_max_interval },
869 ));
870 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
871 "kernel_tracker_max_bytes",
872 |m: &GPUOptions_Experimental| { &m.kernel_tracker_max_bytes },
873 |m: &mut GPUOptions_Experimental| { &mut m.kernel_tracker_max_bytes },
874 ));
875 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
876 "kernel_tracker_max_pending",
877 |m: &GPUOptions_Experimental| { &m.kernel_tracker_max_pending },
878 |m: &mut GPUOptions_Experimental| { &mut m.kernel_tracker_max_pending },
879 ));
880 ::protobuf::reflect::MessageDescriptor::new_pb_name::<GPUOptions_Experimental>(
881 "GPUOptions.Experimental",
882 fields,
883 file_descriptor_proto()
884 )
885 })
886 }
887 }
888
889 fn default_instance() -> &'static GPUOptions_Experimental {
890 static mut instance: ::protobuf::lazy::Lazy<GPUOptions_Experimental> = ::protobuf::lazy::Lazy::INIT;
891 unsafe {
892 instance.get(GPUOptions_Experimental::new)
893 }
894 }
895}
896
897impl ::protobuf::Clear for GPUOptions_Experimental {
898 fn clear(&mut self) {
899 self.virtual_devices.clear();
900 self.use_unified_memory = false;
901 self.num_dev_to_dev_copy_streams = 0;
902 self.collective_ring_order.clear();
903 self.timestamped_allocator = false;
904 self.kernel_tracker_max_interval = 0;
905 self.kernel_tracker_max_bytes = 0;
906 self.kernel_tracker_max_pending = 0;
907 self.unknown_fields.clear();
908 }
909}
910
911impl ::std::fmt::Debug for GPUOptions_Experimental {
912 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
913 ::protobuf::text_format::fmt(self, f)
914 }
915}
916
917impl ::protobuf::reflect::ProtobufValue for GPUOptions_Experimental {
918 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
919 ::protobuf::reflect::ReflectValueRef::Message(self)
920 }
921}
922
923#[derive(PartialEq,Clone,Default)]
924pub struct GPUOptions_Experimental_VirtualDevices {
925 pub memory_limit_mb: ::std::vec::Vec<f32>,
927 pub priority: ::std::vec::Vec<i32>,
928 pub unknown_fields: ::protobuf::UnknownFields,
930 pub cached_size: ::protobuf::CachedSize,
931}
932
933impl<'a> ::std::default::Default for &'a GPUOptions_Experimental_VirtualDevices {
934 fn default() -> &'a GPUOptions_Experimental_VirtualDevices {
935 <GPUOptions_Experimental_VirtualDevices as ::protobuf::Message>::default_instance()
936 }
937}
938
939impl GPUOptions_Experimental_VirtualDevices {
940 pub fn new() -> GPUOptions_Experimental_VirtualDevices {
941 ::std::default::Default::default()
942 }
943
944 pub fn get_memory_limit_mb(&self) -> &[f32] {
948 &self.memory_limit_mb
949 }
950 pub fn clear_memory_limit_mb(&mut self) {
951 self.memory_limit_mb.clear();
952 }
953
954 pub fn set_memory_limit_mb(&mut self, v: ::std::vec::Vec<f32>) {
956 self.memory_limit_mb = v;
957 }
958
959 pub fn mut_memory_limit_mb(&mut self) -> &mut ::std::vec::Vec<f32> {
961 &mut self.memory_limit_mb
962 }
963
964 pub fn take_memory_limit_mb(&mut self) -> ::std::vec::Vec<f32> {
966 ::std::mem::replace(&mut self.memory_limit_mb, ::std::vec::Vec::new())
967 }
968
969 pub fn get_priority(&self) -> &[i32] {
973 &self.priority
974 }
975 pub fn clear_priority(&mut self) {
976 self.priority.clear();
977 }
978
979 pub fn set_priority(&mut self, v: ::std::vec::Vec<i32>) {
981 self.priority = v;
982 }
983
984 pub fn mut_priority(&mut self) -> &mut ::std::vec::Vec<i32> {
986 &mut self.priority
987 }
988
989 pub fn take_priority(&mut self) -> ::std::vec::Vec<i32> {
991 ::std::mem::replace(&mut self.priority, ::std::vec::Vec::new())
992 }
993}
994
995impl ::protobuf::Message for GPUOptions_Experimental_VirtualDevices {
996 fn is_initialized(&self) -> bool {
997 true
998 }
999
1000 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1001 while !is.eof()? {
1002 let (field_number, wire_type) = is.read_tag_unpack()?;
1003 match field_number {
1004 1 => {
1005 ::protobuf::rt::read_repeated_float_into(wire_type, is, &mut self.memory_limit_mb)?;
1006 },
1007 2 => {
1008 ::protobuf::rt::read_repeated_int32_into(wire_type, is, &mut self.priority)?;
1009 },
1010 _ => {
1011 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1012 },
1013 };
1014 }
1015 ::std::result::Result::Ok(())
1016 }
1017
1018 #[allow(unused_variables)]
1020 fn compute_size(&self) -> u32 {
1021 let mut my_size = 0;
1022 my_size += 5 * self.memory_limit_mb.len() as u32;
1023 for value in &self.priority {
1024 my_size += ::protobuf::rt::value_size(2, *value, ::protobuf::wire_format::WireTypeVarint);
1025 };
1026 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1027 self.cached_size.set(my_size);
1028 my_size
1029 }
1030
1031 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1032 for v in &self.memory_limit_mb {
1033 os.write_float(1, *v)?;
1034 };
1035 for v in &self.priority {
1036 os.write_int32(2, *v)?;
1037 };
1038 os.write_unknown_fields(self.get_unknown_fields())?;
1039 ::std::result::Result::Ok(())
1040 }
1041
1042 fn get_cached_size(&self) -> u32 {
1043 self.cached_size.get()
1044 }
1045
1046 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1047 &self.unknown_fields
1048 }
1049
1050 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1051 &mut self.unknown_fields
1052 }
1053
1054 fn as_any(&self) -> &dyn (::std::any::Any) {
1055 self as &dyn (::std::any::Any)
1056 }
1057 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1058 self as &mut dyn (::std::any::Any)
1059 }
1060 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1061 self
1062 }
1063
1064 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1065 Self::descriptor_static()
1066 }
1067
1068 fn new() -> GPUOptions_Experimental_VirtualDevices {
1069 GPUOptions_Experimental_VirtualDevices::new()
1070 }
1071
1072 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1073 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1074 unsafe {
1075 descriptor.get(|| {
1076 let mut fields = ::std::vec::Vec::new();
1077 fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
1078 "memory_limit_mb",
1079 |m: &GPUOptions_Experimental_VirtualDevices| { &m.memory_limit_mb },
1080 |m: &mut GPUOptions_Experimental_VirtualDevices| { &mut m.memory_limit_mb },
1081 ));
1082 fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1083 "priority",
1084 |m: &GPUOptions_Experimental_VirtualDevices| { &m.priority },
1085 |m: &mut GPUOptions_Experimental_VirtualDevices| { &mut m.priority },
1086 ));
1087 ::protobuf::reflect::MessageDescriptor::new_pb_name::<GPUOptions_Experimental_VirtualDevices>(
1088 "GPUOptions.Experimental.VirtualDevices",
1089 fields,
1090 file_descriptor_proto()
1091 )
1092 })
1093 }
1094 }
1095
1096 fn default_instance() -> &'static GPUOptions_Experimental_VirtualDevices {
1097 static mut instance: ::protobuf::lazy::Lazy<GPUOptions_Experimental_VirtualDevices> = ::protobuf::lazy::Lazy::INIT;
1098 unsafe {
1099 instance.get(GPUOptions_Experimental_VirtualDevices::new)
1100 }
1101 }
1102}
1103
1104impl ::protobuf::Clear for GPUOptions_Experimental_VirtualDevices {
1105 fn clear(&mut self) {
1106 self.memory_limit_mb.clear();
1107 self.priority.clear();
1108 self.unknown_fields.clear();
1109 }
1110}
1111
1112impl ::std::fmt::Debug for GPUOptions_Experimental_VirtualDevices {
1113 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1114 ::protobuf::text_format::fmt(self, f)
1115 }
1116}
1117
1118impl ::protobuf::reflect::ProtobufValue for GPUOptions_Experimental_VirtualDevices {
1119 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1120 ::protobuf::reflect::ReflectValueRef::Message(self)
1121 }
1122}
1123
1124#[derive(PartialEq,Clone,Default)]
1125pub struct OptimizerOptions {
1126 pub do_common_subexpression_elimination: bool,
1128 pub do_constant_folding: bool,
1129 pub max_folded_constant_in_bytes: i64,
1130 pub do_function_inlining: bool,
1131 pub opt_level: OptimizerOptions_Level,
1132 pub global_jit_level: OptimizerOptions_GlobalJitLevel,
1133 pub unknown_fields: ::protobuf::UnknownFields,
1135 pub cached_size: ::protobuf::CachedSize,
1136}
1137
1138impl<'a> ::std::default::Default for &'a OptimizerOptions {
1139 fn default() -> &'a OptimizerOptions {
1140 <OptimizerOptions as ::protobuf::Message>::default_instance()
1141 }
1142}
1143
1144impl OptimizerOptions {
1145 pub fn new() -> OptimizerOptions {
1146 ::std::default::Default::default()
1147 }
1148
1149 pub fn get_do_common_subexpression_elimination(&self) -> bool {
1153 self.do_common_subexpression_elimination
1154 }
1155 pub fn clear_do_common_subexpression_elimination(&mut self) {
1156 self.do_common_subexpression_elimination = false;
1157 }
1158
1159 pub fn set_do_common_subexpression_elimination(&mut self, v: bool) {
1161 self.do_common_subexpression_elimination = v;
1162 }
1163
1164 pub fn get_do_constant_folding(&self) -> bool {
1168 self.do_constant_folding
1169 }
1170 pub fn clear_do_constant_folding(&mut self) {
1171 self.do_constant_folding = false;
1172 }
1173
1174 pub fn set_do_constant_folding(&mut self, v: bool) {
1176 self.do_constant_folding = v;
1177 }
1178
1179 pub fn get_max_folded_constant_in_bytes(&self) -> i64 {
1183 self.max_folded_constant_in_bytes
1184 }
1185 pub fn clear_max_folded_constant_in_bytes(&mut self) {
1186 self.max_folded_constant_in_bytes = 0;
1187 }
1188
1189 pub fn set_max_folded_constant_in_bytes(&mut self, v: i64) {
1191 self.max_folded_constant_in_bytes = v;
1192 }
1193
1194 pub fn get_do_function_inlining(&self) -> bool {
1198 self.do_function_inlining
1199 }
1200 pub fn clear_do_function_inlining(&mut self) {
1201 self.do_function_inlining = false;
1202 }
1203
1204 pub fn set_do_function_inlining(&mut self, v: bool) {
1206 self.do_function_inlining = v;
1207 }
1208
1209 pub fn get_opt_level(&self) -> OptimizerOptions_Level {
1213 self.opt_level
1214 }
1215 pub fn clear_opt_level(&mut self) {
1216 self.opt_level = OptimizerOptions_Level::L1;
1217 }
1218
1219 pub fn set_opt_level(&mut self, v: OptimizerOptions_Level) {
1221 self.opt_level = v;
1222 }
1223
1224 pub fn get_global_jit_level(&self) -> OptimizerOptions_GlobalJitLevel {
1228 self.global_jit_level
1229 }
1230 pub fn clear_global_jit_level(&mut self) {
1231 self.global_jit_level = OptimizerOptions_GlobalJitLevel::DEFAULT;
1232 }
1233
1234 pub fn set_global_jit_level(&mut self, v: OptimizerOptions_GlobalJitLevel) {
1236 self.global_jit_level = v;
1237 }
1238}
1239
1240impl ::protobuf::Message for OptimizerOptions {
1241 fn is_initialized(&self) -> bool {
1242 true
1243 }
1244
1245 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1246 while !is.eof()? {
1247 let (field_number, wire_type) = is.read_tag_unpack()?;
1248 match field_number {
1249 1 => {
1250 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1251 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1252 }
1253 let tmp = is.read_bool()?;
1254 self.do_common_subexpression_elimination = tmp;
1255 },
1256 2 => {
1257 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1258 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1259 }
1260 let tmp = is.read_bool()?;
1261 self.do_constant_folding = tmp;
1262 },
1263 6 => {
1264 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1265 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1266 }
1267 let tmp = is.read_int64()?;
1268 self.max_folded_constant_in_bytes = tmp;
1269 },
1270 4 => {
1271 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1272 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1273 }
1274 let tmp = is.read_bool()?;
1275 self.do_function_inlining = tmp;
1276 },
1277 3 => {
1278 ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.opt_level, 3, &mut self.unknown_fields)?
1279 },
1280 5 => {
1281 ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.global_jit_level, 5, &mut self.unknown_fields)?
1282 },
1283 _ => {
1284 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1285 },
1286 };
1287 }
1288 ::std::result::Result::Ok(())
1289 }
1290
1291 #[allow(unused_variables)]
1293 fn compute_size(&self) -> u32 {
1294 let mut my_size = 0;
1295 if self.do_common_subexpression_elimination != false {
1296 my_size += 2;
1297 }
1298 if self.do_constant_folding != false {
1299 my_size += 2;
1300 }
1301 if self.max_folded_constant_in_bytes != 0 {
1302 my_size += ::protobuf::rt::value_size(6, self.max_folded_constant_in_bytes, ::protobuf::wire_format::WireTypeVarint);
1303 }
1304 if self.do_function_inlining != false {
1305 my_size += 2;
1306 }
1307 if self.opt_level != OptimizerOptions_Level::L1 {
1308 my_size += ::protobuf::rt::enum_size(3, self.opt_level);
1309 }
1310 if self.global_jit_level != OptimizerOptions_GlobalJitLevel::DEFAULT {
1311 my_size += ::protobuf::rt::enum_size(5, self.global_jit_level);
1312 }
1313 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1314 self.cached_size.set(my_size);
1315 my_size
1316 }
1317
1318 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1319 if self.do_common_subexpression_elimination != false {
1320 os.write_bool(1, self.do_common_subexpression_elimination)?;
1321 }
1322 if self.do_constant_folding != false {
1323 os.write_bool(2, self.do_constant_folding)?;
1324 }
1325 if self.max_folded_constant_in_bytes != 0 {
1326 os.write_int64(6, self.max_folded_constant_in_bytes)?;
1327 }
1328 if self.do_function_inlining != false {
1329 os.write_bool(4, self.do_function_inlining)?;
1330 }
1331 if self.opt_level != OptimizerOptions_Level::L1 {
1332 os.write_enum(3, self.opt_level.value())?;
1333 }
1334 if self.global_jit_level != OptimizerOptions_GlobalJitLevel::DEFAULT {
1335 os.write_enum(5, self.global_jit_level.value())?;
1336 }
1337 os.write_unknown_fields(self.get_unknown_fields())?;
1338 ::std::result::Result::Ok(())
1339 }
1340
1341 fn get_cached_size(&self) -> u32 {
1342 self.cached_size.get()
1343 }
1344
1345 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1346 &self.unknown_fields
1347 }
1348
1349 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1350 &mut self.unknown_fields
1351 }
1352
1353 fn as_any(&self) -> &dyn (::std::any::Any) {
1354 self as &dyn (::std::any::Any)
1355 }
1356 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1357 self as &mut dyn (::std::any::Any)
1358 }
1359 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1360 self
1361 }
1362
1363 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1364 Self::descriptor_static()
1365 }
1366
1367 fn new() -> OptimizerOptions {
1368 OptimizerOptions::new()
1369 }
1370
1371 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1372 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1373 unsafe {
1374 descriptor.get(|| {
1375 let mut fields = ::std::vec::Vec::new();
1376 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1377 "do_common_subexpression_elimination",
1378 |m: &OptimizerOptions| { &m.do_common_subexpression_elimination },
1379 |m: &mut OptimizerOptions| { &mut m.do_common_subexpression_elimination },
1380 ));
1381 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1382 "do_constant_folding",
1383 |m: &OptimizerOptions| { &m.do_constant_folding },
1384 |m: &mut OptimizerOptions| { &mut m.do_constant_folding },
1385 ));
1386 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1387 "max_folded_constant_in_bytes",
1388 |m: &OptimizerOptions| { &m.max_folded_constant_in_bytes },
1389 |m: &mut OptimizerOptions| { &mut m.max_folded_constant_in_bytes },
1390 ));
1391 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1392 "do_function_inlining",
1393 |m: &OptimizerOptions| { &m.do_function_inlining },
1394 |m: &mut OptimizerOptions| { &mut m.do_function_inlining },
1395 ));
1396 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<OptimizerOptions_Level>>(
1397 "opt_level",
1398 |m: &OptimizerOptions| { &m.opt_level },
1399 |m: &mut OptimizerOptions| { &mut m.opt_level },
1400 ));
1401 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<OptimizerOptions_GlobalJitLevel>>(
1402 "global_jit_level",
1403 |m: &OptimizerOptions| { &m.global_jit_level },
1404 |m: &mut OptimizerOptions| { &mut m.global_jit_level },
1405 ));
1406 ::protobuf::reflect::MessageDescriptor::new_pb_name::<OptimizerOptions>(
1407 "OptimizerOptions",
1408 fields,
1409 file_descriptor_proto()
1410 )
1411 })
1412 }
1413 }
1414
1415 fn default_instance() -> &'static OptimizerOptions {
1416 static mut instance: ::protobuf::lazy::Lazy<OptimizerOptions> = ::protobuf::lazy::Lazy::INIT;
1417 unsafe {
1418 instance.get(OptimizerOptions::new)
1419 }
1420 }
1421}
1422
1423impl ::protobuf::Clear for OptimizerOptions {
1424 fn clear(&mut self) {
1425 self.do_common_subexpression_elimination = false;
1426 self.do_constant_folding = false;
1427 self.max_folded_constant_in_bytes = 0;
1428 self.do_function_inlining = false;
1429 self.opt_level = OptimizerOptions_Level::L1;
1430 self.global_jit_level = OptimizerOptions_GlobalJitLevel::DEFAULT;
1431 self.unknown_fields.clear();
1432 }
1433}
1434
1435impl ::std::fmt::Debug for OptimizerOptions {
1436 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1437 ::protobuf::text_format::fmt(self, f)
1438 }
1439}
1440
1441impl ::protobuf::reflect::ProtobufValue for OptimizerOptions {
1442 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1443 ::protobuf::reflect::ReflectValueRef::Message(self)
1444 }
1445}
1446
1447#[derive(Clone,PartialEq,Eq,Debug,Hash)]
1448pub enum OptimizerOptions_Level {
1449 L1 = 0,
1450 L0 = -1,
1451}
1452
1453impl ::protobuf::ProtobufEnum for OptimizerOptions_Level {
1454 fn value(&self) -> i32 {
1455 *self as i32
1456 }
1457
1458 fn from_i32(value: i32) -> ::std::option::Option<OptimizerOptions_Level> {
1459 match value {
1460 0 => ::std::option::Option::Some(OptimizerOptions_Level::L1),
1461 -1 => ::std::option::Option::Some(OptimizerOptions_Level::L0),
1462 _ => ::std::option::Option::None
1463 }
1464 }
1465
1466 fn values() -> &'static [Self] {
1467 static values: &'static [OptimizerOptions_Level] = &[
1468 OptimizerOptions_Level::L1,
1469 OptimizerOptions_Level::L0,
1470 ];
1471 values
1472 }
1473
1474 fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
1475 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy::INIT;
1476 unsafe {
1477 descriptor.get(|| {
1478 ::protobuf::reflect::EnumDescriptor::new_pb_name::<OptimizerOptions_Level>("OptimizerOptions.Level", file_descriptor_proto())
1479 })
1480 }
1481 }
1482}
1483
1484impl ::std::marker::Copy for OptimizerOptions_Level {
1485}
1486
1487impl ::std::default::Default for OptimizerOptions_Level {
1488 fn default() -> Self {
1489 OptimizerOptions_Level::L1
1490 }
1491}
1492
1493impl ::protobuf::reflect::ProtobufValue for OptimizerOptions_Level {
1494 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1495 ::protobuf::reflect::ReflectValueRef::Enum(self.descriptor())
1496 }
1497}
1498
1499#[derive(Clone,PartialEq,Eq,Debug,Hash)]
1500pub enum OptimizerOptions_GlobalJitLevel {
1501 DEFAULT = 0,
1502 OFF = -1,
1503 ON_1 = 1,
1504 ON_2 = 2,
1505}
1506
1507impl ::protobuf::ProtobufEnum for OptimizerOptions_GlobalJitLevel {
1508 fn value(&self) -> i32 {
1509 *self as i32
1510 }
1511
1512 fn from_i32(value: i32) -> ::std::option::Option<OptimizerOptions_GlobalJitLevel> {
1513 match value {
1514 0 => ::std::option::Option::Some(OptimizerOptions_GlobalJitLevel::DEFAULT),
1515 -1 => ::std::option::Option::Some(OptimizerOptions_GlobalJitLevel::OFF),
1516 1 => ::std::option::Option::Some(OptimizerOptions_GlobalJitLevel::ON_1),
1517 2 => ::std::option::Option::Some(OptimizerOptions_GlobalJitLevel::ON_2),
1518 _ => ::std::option::Option::None
1519 }
1520 }
1521
1522 fn values() -> &'static [Self] {
1523 static values: &'static [OptimizerOptions_GlobalJitLevel] = &[
1524 OptimizerOptions_GlobalJitLevel::DEFAULT,
1525 OptimizerOptions_GlobalJitLevel::OFF,
1526 OptimizerOptions_GlobalJitLevel::ON_1,
1527 OptimizerOptions_GlobalJitLevel::ON_2,
1528 ];
1529 values
1530 }
1531
1532 fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
1533 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy::INIT;
1534 unsafe {
1535 descriptor.get(|| {
1536 ::protobuf::reflect::EnumDescriptor::new_pb_name::<OptimizerOptions_GlobalJitLevel>("OptimizerOptions.GlobalJitLevel", file_descriptor_proto())
1537 })
1538 }
1539 }
1540}
1541
1542impl ::std::marker::Copy for OptimizerOptions_GlobalJitLevel {
1543}
1544
1545impl ::std::default::Default for OptimizerOptions_GlobalJitLevel {
1546 fn default() -> Self {
1547 OptimizerOptions_GlobalJitLevel::DEFAULT
1548 }
1549}
1550
1551impl ::protobuf::reflect::ProtobufValue for OptimizerOptions_GlobalJitLevel {
1552 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1553 ::protobuf::reflect::ReflectValueRef::Enum(self.descriptor())
1554 }
1555}
1556
1557#[derive(PartialEq,Clone,Default)]
1558pub struct GraphOptions {
1559 pub enable_recv_scheduling: bool,
1561 pub optimizer_options: ::protobuf::SingularPtrField<OptimizerOptions>,
1562 pub build_cost_model: i64,
1563 pub build_cost_model_after: i64,
1564 pub infer_shapes: bool,
1565 pub place_pruned_graph: bool,
1566 pub enable_bfloat16_sendrecv: bool,
1567 pub timeline_step: i32,
1568 pub rewrite_options: ::protobuf::SingularPtrField<super::rewriter_config::RewriterConfig>,
1569 pub unknown_fields: ::protobuf::UnknownFields,
1571 pub cached_size: ::protobuf::CachedSize,
1572}
1573
1574impl<'a> ::std::default::Default for &'a GraphOptions {
1575 fn default() -> &'a GraphOptions {
1576 <GraphOptions as ::protobuf::Message>::default_instance()
1577 }
1578}
1579
1580impl GraphOptions {
1581 pub fn new() -> GraphOptions {
1582 ::std::default::Default::default()
1583 }
1584
1585 pub fn get_enable_recv_scheduling(&self) -> bool {
1589 self.enable_recv_scheduling
1590 }
1591 pub fn clear_enable_recv_scheduling(&mut self) {
1592 self.enable_recv_scheduling = false;
1593 }
1594
1595 pub fn set_enable_recv_scheduling(&mut self, v: bool) {
1597 self.enable_recv_scheduling = v;
1598 }
1599
1600 pub fn get_optimizer_options(&self) -> &OptimizerOptions {
1604 self.optimizer_options.as_ref().unwrap_or_else(|| OptimizerOptions::default_instance())
1605 }
1606 pub fn clear_optimizer_options(&mut self) {
1607 self.optimizer_options.clear();
1608 }
1609
1610 pub fn has_optimizer_options(&self) -> bool {
1611 self.optimizer_options.is_some()
1612 }
1613
1614 pub fn set_optimizer_options(&mut self, v: OptimizerOptions) {
1616 self.optimizer_options = ::protobuf::SingularPtrField::some(v);
1617 }
1618
1619 pub fn mut_optimizer_options(&mut self) -> &mut OptimizerOptions {
1622 if self.optimizer_options.is_none() {
1623 self.optimizer_options.set_default();
1624 }
1625 self.optimizer_options.as_mut().unwrap()
1626 }
1627
1628 pub fn take_optimizer_options(&mut self) -> OptimizerOptions {
1630 self.optimizer_options.take().unwrap_or_else(|| OptimizerOptions::new())
1631 }
1632
1633 pub fn get_build_cost_model(&self) -> i64 {
1637 self.build_cost_model
1638 }
1639 pub fn clear_build_cost_model(&mut self) {
1640 self.build_cost_model = 0;
1641 }
1642
1643 pub fn set_build_cost_model(&mut self, v: i64) {
1645 self.build_cost_model = v;
1646 }
1647
1648 pub fn get_build_cost_model_after(&self) -> i64 {
1652 self.build_cost_model_after
1653 }
1654 pub fn clear_build_cost_model_after(&mut self) {
1655 self.build_cost_model_after = 0;
1656 }
1657
1658 pub fn set_build_cost_model_after(&mut self, v: i64) {
1660 self.build_cost_model_after = v;
1661 }
1662
1663 pub fn get_infer_shapes(&self) -> bool {
1667 self.infer_shapes
1668 }
1669 pub fn clear_infer_shapes(&mut self) {
1670 self.infer_shapes = false;
1671 }
1672
1673 pub fn set_infer_shapes(&mut self, v: bool) {
1675 self.infer_shapes = v;
1676 }
1677
1678 pub fn get_place_pruned_graph(&self) -> bool {
1682 self.place_pruned_graph
1683 }
1684 pub fn clear_place_pruned_graph(&mut self) {
1685 self.place_pruned_graph = false;
1686 }
1687
1688 pub fn set_place_pruned_graph(&mut self, v: bool) {
1690 self.place_pruned_graph = v;
1691 }
1692
1693 pub fn get_enable_bfloat16_sendrecv(&self) -> bool {
1697 self.enable_bfloat16_sendrecv
1698 }
1699 pub fn clear_enable_bfloat16_sendrecv(&mut self) {
1700 self.enable_bfloat16_sendrecv = false;
1701 }
1702
1703 pub fn set_enable_bfloat16_sendrecv(&mut self, v: bool) {
1705 self.enable_bfloat16_sendrecv = v;
1706 }
1707
1708 pub fn get_timeline_step(&self) -> i32 {
1712 self.timeline_step
1713 }
1714 pub fn clear_timeline_step(&mut self) {
1715 self.timeline_step = 0;
1716 }
1717
1718 pub fn set_timeline_step(&mut self, v: i32) {
1720 self.timeline_step = v;
1721 }
1722
1723 pub fn get_rewrite_options(&self) -> &super::rewriter_config::RewriterConfig {
1727 self.rewrite_options.as_ref().unwrap_or_else(|| super::rewriter_config::RewriterConfig::default_instance())
1728 }
1729 pub fn clear_rewrite_options(&mut self) {
1730 self.rewrite_options.clear();
1731 }
1732
1733 pub fn has_rewrite_options(&self) -> bool {
1734 self.rewrite_options.is_some()
1735 }
1736
1737 pub fn set_rewrite_options(&mut self, v: super::rewriter_config::RewriterConfig) {
1739 self.rewrite_options = ::protobuf::SingularPtrField::some(v);
1740 }
1741
1742 pub fn mut_rewrite_options(&mut self) -> &mut super::rewriter_config::RewriterConfig {
1745 if self.rewrite_options.is_none() {
1746 self.rewrite_options.set_default();
1747 }
1748 self.rewrite_options.as_mut().unwrap()
1749 }
1750
1751 pub fn take_rewrite_options(&mut self) -> super::rewriter_config::RewriterConfig {
1753 self.rewrite_options.take().unwrap_or_else(|| super::rewriter_config::RewriterConfig::new())
1754 }
1755}
1756
1757impl ::protobuf::Message for GraphOptions {
1758 fn is_initialized(&self) -> bool {
1759 for v in &self.optimizer_options {
1760 if !v.is_initialized() {
1761 return false;
1762 }
1763 };
1764 for v in &self.rewrite_options {
1765 if !v.is_initialized() {
1766 return false;
1767 }
1768 };
1769 true
1770 }
1771
1772 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1773 while !is.eof()? {
1774 let (field_number, wire_type) = is.read_tag_unpack()?;
1775 match field_number {
1776 2 => {
1777 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1778 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1779 }
1780 let tmp = is.read_bool()?;
1781 self.enable_recv_scheduling = tmp;
1782 },
1783 3 => {
1784 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.optimizer_options)?;
1785 },
1786 4 => {
1787 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1788 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1789 }
1790 let tmp = is.read_int64()?;
1791 self.build_cost_model = tmp;
1792 },
1793 9 => {
1794 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1795 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1796 }
1797 let tmp = is.read_int64()?;
1798 self.build_cost_model_after = tmp;
1799 },
1800 5 => {
1801 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1802 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1803 }
1804 let tmp = is.read_bool()?;
1805 self.infer_shapes = tmp;
1806 },
1807 6 => {
1808 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1809 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1810 }
1811 let tmp = is.read_bool()?;
1812 self.place_pruned_graph = tmp;
1813 },
1814 7 => {
1815 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1816 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1817 }
1818 let tmp = is.read_bool()?;
1819 self.enable_bfloat16_sendrecv = tmp;
1820 },
1821 8 => {
1822 if wire_type != ::protobuf::wire_format::WireTypeVarint {
1823 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1824 }
1825 let tmp = is.read_int32()?;
1826 self.timeline_step = tmp;
1827 },
1828 10 => {
1829 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.rewrite_options)?;
1830 },
1831 _ => {
1832 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1833 },
1834 };
1835 }
1836 ::std::result::Result::Ok(())
1837 }
1838
1839 #[allow(unused_variables)]
1841 fn compute_size(&self) -> u32 {
1842 let mut my_size = 0;
1843 if self.enable_recv_scheduling != false {
1844 my_size += 2;
1845 }
1846 if let Some(ref v) = self.optimizer_options.as_ref() {
1847 let len = v.compute_size();
1848 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1849 }
1850 if self.build_cost_model != 0 {
1851 my_size += ::protobuf::rt::value_size(4, self.build_cost_model, ::protobuf::wire_format::WireTypeVarint);
1852 }
1853 if self.build_cost_model_after != 0 {
1854 my_size += ::protobuf::rt::value_size(9, self.build_cost_model_after, ::protobuf::wire_format::WireTypeVarint);
1855 }
1856 if self.infer_shapes != false {
1857 my_size += 2;
1858 }
1859 if self.place_pruned_graph != false {
1860 my_size += 2;
1861 }
1862 if self.enable_bfloat16_sendrecv != false {
1863 my_size += 2;
1864 }
1865 if self.timeline_step != 0 {
1866 my_size += ::protobuf::rt::value_size(8, self.timeline_step, ::protobuf::wire_format::WireTypeVarint);
1867 }
1868 if let Some(ref v) = self.rewrite_options.as_ref() {
1869 let len = v.compute_size();
1870 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1871 }
1872 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1873 self.cached_size.set(my_size);
1874 my_size
1875 }
1876
1877 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1878 if self.enable_recv_scheduling != false {
1879 os.write_bool(2, self.enable_recv_scheduling)?;
1880 }
1881 if let Some(ref v) = self.optimizer_options.as_ref() {
1882 os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1883 os.write_raw_varint32(v.get_cached_size())?;
1884 v.write_to_with_cached_sizes(os)?;
1885 }
1886 if self.build_cost_model != 0 {
1887 os.write_int64(4, self.build_cost_model)?;
1888 }
1889 if self.build_cost_model_after != 0 {
1890 os.write_int64(9, self.build_cost_model_after)?;
1891 }
1892 if self.infer_shapes != false {
1893 os.write_bool(5, self.infer_shapes)?;
1894 }
1895 if self.place_pruned_graph != false {
1896 os.write_bool(6, self.place_pruned_graph)?;
1897 }
1898 if self.enable_bfloat16_sendrecv != false {
1899 os.write_bool(7, self.enable_bfloat16_sendrecv)?;
1900 }
1901 if self.timeline_step != 0 {
1902 os.write_int32(8, self.timeline_step)?;
1903 }
1904 if let Some(ref v) = self.rewrite_options.as_ref() {
1905 os.write_tag(10, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1906 os.write_raw_varint32(v.get_cached_size())?;
1907 v.write_to_with_cached_sizes(os)?;
1908 }
1909 os.write_unknown_fields(self.get_unknown_fields())?;
1910 ::std::result::Result::Ok(())
1911 }
1912
1913 fn get_cached_size(&self) -> u32 {
1914 self.cached_size.get()
1915 }
1916
1917 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1918 &self.unknown_fields
1919 }
1920
1921 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1922 &mut self.unknown_fields
1923 }
1924
1925 fn as_any(&self) -> &dyn (::std::any::Any) {
1926 self as &dyn (::std::any::Any)
1927 }
1928 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1929 self as &mut dyn (::std::any::Any)
1930 }
1931 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1932 self
1933 }
1934
1935 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1936 Self::descriptor_static()
1937 }
1938
1939 fn new() -> GraphOptions {
1940 GraphOptions::new()
1941 }
1942
1943 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1944 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1945 unsafe {
1946 descriptor.get(|| {
1947 let mut fields = ::std::vec::Vec::new();
1948 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1949 "enable_recv_scheduling",
1950 |m: &GraphOptions| { &m.enable_recv_scheduling },
1951 |m: &mut GraphOptions| { &mut m.enable_recv_scheduling },
1952 ));
1953 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<OptimizerOptions>>(
1954 "optimizer_options",
1955 |m: &GraphOptions| { &m.optimizer_options },
1956 |m: &mut GraphOptions| { &mut m.optimizer_options },
1957 ));
1958 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1959 "build_cost_model",
1960 |m: &GraphOptions| { &m.build_cost_model },
1961 |m: &mut GraphOptions| { &mut m.build_cost_model },
1962 ));
1963 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1964 "build_cost_model_after",
1965 |m: &GraphOptions| { &m.build_cost_model_after },
1966 |m: &mut GraphOptions| { &mut m.build_cost_model_after },
1967 ));
1968 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1969 "infer_shapes",
1970 |m: &GraphOptions| { &m.infer_shapes },
1971 |m: &mut GraphOptions| { &mut m.infer_shapes },
1972 ));
1973 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1974 "place_pruned_graph",
1975 |m: &GraphOptions| { &m.place_pruned_graph },
1976 |m: &mut GraphOptions| { &mut m.place_pruned_graph },
1977 ));
1978 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1979 "enable_bfloat16_sendrecv",
1980 |m: &GraphOptions| { &m.enable_bfloat16_sendrecv },
1981 |m: &mut GraphOptions| { &mut m.enable_bfloat16_sendrecv },
1982 ));
1983 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1984 "timeline_step",
1985 |m: &GraphOptions| { &m.timeline_step },
1986 |m: &mut GraphOptions| { &mut m.timeline_step },
1987 ));
1988 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::rewriter_config::RewriterConfig>>(
1989 "rewrite_options",
1990 |m: &GraphOptions| { &m.rewrite_options },
1991 |m: &mut GraphOptions| { &mut m.rewrite_options },
1992 ));
1993 ::protobuf::reflect::MessageDescriptor::new_pb_name::<GraphOptions>(
1994 "GraphOptions",
1995 fields,
1996 file_descriptor_proto()
1997 )
1998 })
1999 }
2000 }
2001
2002 fn default_instance() -> &'static GraphOptions {
2003 static mut instance: ::protobuf::lazy::Lazy<GraphOptions> = ::protobuf::lazy::Lazy::INIT;
2004 unsafe {
2005 instance.get(GraphOptions::new)
2006 }
2007 }
2008}
2009
2010impl ::protobuf::Clear for GraphOptions {
2011 fn clear(&mut self) {
2012 self.enable_recv_scheduling = false;
2013 self.optimizer_options.clear();
2014 self.build_cost_model = 0;
2015 self.build_cost_model_after = 0;
2016 self.infer_shapes = false;
2017 self.place_pruned_graph = false;
2018 self.enable_bfloat16_sendrecv = false;
2019 self.timeline_step = 0;
2020 self.rewrite_options.clear();
2021 self.unknown_fields.clear();
2022 }
2023}
2024
2025impl ::std::fmt::Debug for GraphOptions {
2026 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2027 ::protobuf::text_format::fmt(self, f)
2028 }
2029}
2030
2031impl ::protobuf::reflect::ProtobufValue for GraphOptions {
2032 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2033 ::protobuf::reflect::ReflectValueRef::Message(self)
2034 }
2035}
2036
2037#[derive(PartialEq,Clone,Default)]
2038pub struct ThreadPoolOptionProto {
2039 pub num_threads: i32,
2041 pub global_name: ::std::string::String,
2042 pub unknown_fields: ::protobuf::UnknownFields,
2044 pub cached_size: ::protobuf::CachedSize,
2045}
2046
2047impl<'a> ::std::default::Default for &'a ThreadPoolOptionProto {
2048 fn default() -> &'a ThreadPoolOptionProto {
2049 <ThreadPoolOptionProto as ::protobuf::Message>::default_instance()
2050 }
2051}
2052
2053impl ThreadPoolOptionProto {
2054 pub fn new() -> ThreadPoolOptionProto {
2055 ::std::default::Default::default()
2056 }
2057
2058 pub fn get_num_threads(&self) -> i32 {
2062 self.num_threads
2063 }
2064 pub fn clear_num_threads(&mut self) {
2065 self.num_threads = 0;
2066 }
2067
2068 pub fn set_num_threads(&mut self, v: i32) {
2070 self.num_threads = v;
2071 }
2072
2073 pub fn get_global_name(&self) -> &str {
2077 &self.global_name
2078 }
2079 pub fn clear_global_name(&mut self) {
2080 self.global_name.clear();
2081 }
2082
2083 pub fn set_global_name(&mut self, v: ::std::string::String) {
2085 self.global_name = v;
2086 }
2087
2088 pub fn mut_global_name(&mut self) -> &mut ::std::string::String {
2091 &mut self.global_name
2092 }
2093
2094 pub fn take_global_name(&mut self) -> ::std::string::String {
2096 ::std::mem::replace(&mut self.global_name, ::std::string::String::new())
2097 }
2098}
2099
2100impl ::protobuf::Message for ThreadPoolOptionProto {
2101 fn is_initialized(&self) -> bool {
2102 true
2103 }
2104
2105 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2106 while !is.eof()? {
2107 let (field_number, wire_type) = is.read_tag_unpack()?;
2108 match field_number {
2109 1 => {
2110 if wire_type != ::protobuf::wire_format::WireTypeVarint {
2111 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2112 }
2113 let tmp = is.read_int32()?;
2114 self.num_threads = tmp;
2115 },
2116 2 => {
2117 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.global_name)?;
2118 },
2119 _ => {
2120 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2121 },
2122 };
2123 }
2124 ::std::result::Result::Ok(())
2125 }
2126
2127 #[allow(unused_variables)]
2129 fn compute_size(&self) -> u32 {
2130 let mut my_size = 0;
2131 if self.num_threads != 0 {
2132 my_size += ::protobuf::rt::value_size(1, self.num_threads, ::protobuf::wire_format::WireTypeVarint);
2133 }
2134 if !self.global_name.is_empty() {
2135 my_size += ::protobuf::rt::string_size(2, &self.global_name);
2136 }
2137 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2138 self.cached_size.set(my_size);
2139 my_size
2140 }
2141
2142 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2143 if self.num_threads != 0 {
2144 os.write_int32(1, self.num_threads)?;
2145 }
2146 if !self.global_name.is_empty() {
2147 os.write_string(2, &self.global_name)?;
2148 }
2149 os.write_unknown_fields(self.get_unknown_fields())?;
2150 ::std::result::Result::Ok(())
2151 }
2152
2153 fn get_cached_size(&self) -> u32 {
2154 self.cached_size.get()
2155 }
2156
2157 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2158 &self.unknown_fields
2159 }
2160
2161 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2162 &mut self.unknown_fields
2163 }
2164
2165 fn as_any(&self) -> &dyn (::std::any::Any) {
2166 self as &dyn (::std::any::Any)
2167 }
2168 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2169 self as &mut dyn (::std::any::Any)
2170 }
2171 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2172 self
2173 }
2174
2175 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2176 Self::descriptor_static()
2177 }
2178
2179 fn new() -> ThreadPoolOptionProto {
2180 ThreadPoolOptionProto::new()
2181 }
2182
2183 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2184 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2185 unsafe {
2186 descriptor.get(|| {
2187 let mut fields = ::std::vec::Vec::new();
2188 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
2189 "num_threads",
2190 |m: &ThreadPoolOptionProto| { &m.num_threads },
2191 |m: &mut ThreadPoolOptionProto| { &mut m.num_threads },
2192 ));
2193 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2194 "global_name",
2195 |m: &ThreadPoolOptionProto| { &m.global_name },
2196 |m: &mut ThreadPoolOptionProto| { &mut m.global_name },
2197 ));
2198 ::protobuf::reflect::MessageDescriptor::new_pb_name::<ThreadPoolOptionProto>(
2199 "ThreadPoolOptionProto",
2200 fields,
2201 file_descriptor_proto()
2202 )
2203 })
2204 }
2205 }
2206
2207 fn default_instance() -> &'static ThreadPoolOptionProto {
2208 static mut instance: ::protobuf::lazy::Lazy<ThreadPoolOptionProto> = ::protobuf::lazy::Lazy::INIT;
2209 unsafe {
2210 instance.get(ThreadPoolOptionProto::new)
2211 }
2212 }
2213}
2214
2215impl ::protobuf::Clear for ThreadPoolOptionProto {
2216 fn clear(&mut self) {
2217 self.num_threads = 0;
2218 self.global_name.clear();
2219 self.unknown_fields.clear();
2220 }
2221}
2222
2223impl ::std::fmt::Debug for ThreadPoolOptionProto {
2224 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2225 ::protobuf::text_format::fmt(self, f)
2226 }
2227}
2228
2229impl ::protobuf::reflect::ProtobufValue for ThreadPoolOptionProto {
2230 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2231 ::protobuf::reflect::ReflectValueRef::Message(self)
2232 }
2233}
2234
2235#[derive(PartialEq,Clone,Default)]
2236pub struct RPCOptions {
2237 pub use_rpc_for_inprocess_master: bool,
2239 pub compression_algorithm: ::std::string::String,
2240 pub compression_level: i32,
2241 pub cache_rpc_response: bool,
2242 pub disable_session_connection_sharing: bool,
2243 pub unknown_fields: ::protobuf::UnknownFields,
2245 pub cached_size: ::protobuf::CachedSize,
2246}
2247
2248impl<'a> ::std::default::Default for &'a RPCOptions {
2249 fn default() -> &'a RPCOptions {
2250 <RPCOptions as ::protobuf::Message>::default_instance()
2251 }
2252}
2253
2254impl RPCOptions {
2255 pub fn new() -> RPCOptions {
2256 ::std::default::Default::default()
2257 }
2258
2259 pub fn get_use_rpc_for_inprocess_master(&self) -> bool {
2263 self.use_rpc_for_inprocess_master
2264 }
2265 pub fn clear_use_rpc_for_inprocess_master(&mut self) {
2266 self.use_rpc_for_inprocess_master = false;
2267 }
2268
2269 pub fn set_use_rpc_for_inprocess_master(&mut self, v: bool) {
2271 self.use_rpc_for_inprocess_master = v;
2272 }
2273
2274 pub fn get_compression_algorithm(&self) -> &str {
2278 &self.compression_algorithm
2279 }
2280 pub fn clear_compression_algorithm(&mut self) {
2281 self.compression_algorithm.clear();
2282 }
2283
2284 pub fn set_compression_algorithm(&mut self, v: ::std::string::String) {
2286 self.compression_algorithm = v;
2287 }
2288
2289 pub fn mut_compression_algorithm(&mut self) -> &mut ::std::string::String {
2292 &mut self.compression_algorithm
2293 }
2294
2295 pub fn take_compression_algorithm(&mut self) -> ::std::string::String {
2297 ::std::mem::replace(&mut self.compression_algorithm, ::std::string::String::new())
2298 }
2299
2300 pub fn get_compression_level(&self) -> i32 {
2304 self.compression_level
2305 }
2306 pub fn clear_compression_level(&mut self) {
2307 self.compression_level = 0;
2308 }
2309
2310 pub fn set_compression_level(&mut self, v: i32) {
2312 self.compression_level = v;
2313 }
2314
2315 pub fn get_cache_rpc_response(&self) -> bool {
2319 self.cache_rpc_response
2320 }
2321 pub fn clear_cache_rpc_response(&mut self) {
2322 self.cache_rpc_response = false;
2323 }
2324
2325 pub fn set_cache_rpc_response(&mut self, v: bool) {
2327 self.cache_rpc_response = v;
2328 }
2329
2330 pub fn get_disable_session_connection_sharing(&self) -> bool {
2334 self.disable_session_connection_sharing
2335 }
2336 pub fn clear_disable_session_connection_sharing(&mut self) {
2337 self.disable_session_connection_sharing = false;
2338 }
2339
2340 pub fn set_disable_session_connection_sharing(&mut self, v: bool) {
2342 self.disable_session_connection_sharing = v;
2343 }
2344}
2345
2346impl ::protobuf::Message for RPCOptions {
2347 fn is_initialized(&self) -> bool {
2348 true
2349 }
2350
2351 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2352 while !is.eof()? {
2353 let (field_number, wire_type) = is.read_tag_unpack()?;
2354 match field_number {
2355 1 => {
2356 if wire_type != ::protobuf::wire_format::WireTypeVarint {
2357 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2358 }
2359 let tmp = is.read_bool()?;
2360 self.use_rpc_for_inprocess_master = tmp;
2361 },
2362 2 => {
2363 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.compression_algorithm)?;
2364 },
2365 3 => {
2366 if wire_type != ::protobuf::wire_format::WireTypeVarint {
2367 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2368 }
2369 let tmp = is.read_int32()?;
2370 self.compression_level = tmp;
2371 },
2372 4 => {
2373 if wire_type != ::protobuf::wire_format::WireTypeVarint {
2374 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2375 }
2376 let tmp = is.read_bool()?;
2377 self.cache_rpc_response = tmp;
2378 },
2379 5 => {
2380 if wire_type != ::protobuf::wire_format::WireTypeVarint {
2381 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2382 }
2383 let tmp = is.read_bool()?;
2384 self.disable_session_connection_sharing = tmp;
2385 },
2386 _ => {
2387 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2388 },
2389 };
2390 }
2391 ::std::result::Result::Ok(())
2392 }
2393
2394 #[allow(unused_variables)]
2396 fn compute_size(&self) -> u32 {
2397 let mut my_size = 0;
2398 if self.use_rpc_for_inprocess_master != false {
2399 my_size += 2;
2400 }
2401 if !self.compression_algorithm.is_empty() {
2402 my_size += ::protobuf::rt::string_size(2, &self.compression_algorithm);
2403 }
2404 if self.compression_level != 0 {
2405 my_size += ::protobuf::rt::value_size(3, self.compression_level, ::protobuf::wire_format::WireTypeVarint);
2406 }
2407 if self.cache_rpc_response != false {
2408 my_size += 2;
2409 }
2410 if self.disable_session_connection_sharing != false {
2411 my_size += 2;
2412 }
2413 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2414 self.cached_size.set(my_size);
2415 my_size
2416 }
2417
2418 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2419 if self.use_rpc_for_inprocess_master != false {
2420 os.write_bool(1, self.use_rpc_for_inprocess_master)?;
2421 }
2422 if !self.compression_algorithm.is_empty() {
2423 os.write_string(2, &self.compression_algorithm)?;
2424 }
2425 if self.compression_level != 0 {
2426 os.write_int32(3, self.compression_level)?;
2427 }
2428 if self.cache_rpc_response != false {
2429 os.write_bool(4, self.cache_rpc_response)?;
2430 }
2431 if self.disable_session_connection_sharing != false {
2432 os.write_bool(5, self.disable_session_connection_sharing)?;
2433 }
2434 os.write_unknown_fields(self.get_unknown_fields())?;
2435 ::std::result::Result::Ok(())
2436 }
2437
2438 fn get_cached_size(&self) -> u32 {
2439 self.cached_size.get()
2440 }
2441
2442 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2443 &self.unknown_fields
2444 }
2445
2446 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2447 &mut self.unknown_fields
2448 }
2449
2450 fn as_any(&self) -> &dyn (::std::any::Any) {
2451 self as &dyn (::std::any::Any)
2452 }
2453 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2454 self as &mut dyn (::std::any::Any)
2455 }
2456 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2457 self
2458 }
2459
2460 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2461 Self::descriptor_static()
2462 }
2463
2464 fn new() -> RPCOptions {
2465 RPCOptions::new()
2466 }
2467
2468 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2469 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2470 unsafe {
2471 descriptor.get(|| {
2472 let mut fields = ::std::vec::Vec::new();
2473 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
2474 "use_rpc_for_inprocess_master",
2475 |m: &RPCOptions| { &m.use_rpc_for_inprocess_master },
2476 |m: &mut RPCOptions| { &mut m.use_rpc_for_inprocess_master },
2477 ));
2478 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2479 "compression_algorithm",
2480 |m: &RPCOptions| { &m.compression_algorithm },
2481 |m: &mut RPCOptions| { &mut m.compression_algorithm },
2482 ));
2483 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
2484 "compression_level",
2485 |m: &RPCOptions| { &m.compression_level },
2486 |m: &mut RPCOptions| { &mut m.compression_level },
2487 ));
2488 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
2489 "cache_rpc_response",
2490 |m: &RPCOptions| { &m.cache_rpc_response },
2491 |m: &mut RPCOptions| { &mut m.cache_rpc_response },
2492 ));
2493 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
2494 "disable_session_connection_sharing",
2495 |m: &RPCOptions| { &m.disable_session_connection_sharing },
2496 |m: &mut RPCOptions| { &mut m.disable_session_connection_sharing },
2497 ));
2498 ::protobuf::reflect::MessageDescriptor::new_pb_name::<RPCOptions>(
2499 "RPCOptions",
2500 fields,
2501 file_descriptor_proto()
2502 )
2503 })
2504 }
2505 }
2506
2507 fn default_instance() -> &'static RPCOptions {
2508 static mut instance: ::protobuf::lazy::Lazy<RPCOptions> = ::protobuf::lazy::Lazy::INIT;
2509 unsafe {
2510 instance.get(RPCOptions::new)
2511 }
2512 }
2513}
2514
2515impl ::protobuf::Clear for RPCOptions {
2516 fn clear(&mut self) {
2517 self.use_rpc_for_inprocess_master = false;
2518 self.compression_algorithm.clear();
2519 self.compression_level = 0;
2520 self.cache_rpc_response = false;
2521 self.disable_session_connection_sharing = false;
2522 self.unknown_fields.clear();
2523 }
2524}
2525
2526impl ::std::fmt::Debug for RPCOptions {
2527 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2528 ::protobuf::text_format::fmt(self, f)
2529 }
2530}
2531
2532impl ::protobuf::reflect::ProtobufValue for RPCOptions {
2533 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2534 ::protobuf::reflect::ReflectValueRef::Message(self)
2535 }
2536}
2537
2538#[derive(PartialEq,Clone,Default)]
2539pub struct SessionMetadata {
2540 pub name: ::std::string::String,
2542 pub version: i64,
2543 pub unknown_fields: ::protobuf::UnknownFields,
2545 pub cached_size: ::protobuf::CachedSize,
2546}
2547
2548impl<'a> ::std::default::Default for &'a SessionMetadata {
2549 fn default() -> &'a SessionMetadata {
2550 <SessionMetadata as ::protobuf::Message>::default_instance()
2551 }
2552}
2553
2554impl SessionMetadata {
2555 pub fn new() -> SessionMetadata {
2556 ::std::default::Default::default()
2557 }
2558
2559 pub fn get_name(&self) -> &str {
2563 &self.name
2564 }
2565 pub fn clear_name(&mut self) {
2566 self.name.clear();
2567 }
2568
2569 pub fn set_name(&mut self, v: ::std::string::String) {
2571 self.name = v;
2572 }
2573
2574 pub fn mut_name(&mut self) -> &mut ::std::string::String {
2577 &mut self.name
2578 }
2579
2580 pub fn take_name(&mut self) -> ::std::string::String {
2582 ::std::mem::replace(&mut self.name, ::std::string::String::new())
2583 }
2584
2585 pub fn get_version(&self) -> i64 {
2589 self.version
2590 }
2591 pub fn clear_version(&mut self) {
2592 self.version = 0;
2593 }
2594
2595 pub fn set_version(&mut self, v: i64) {
2597 self.version = v;
2598 }
2599}
2600
2601impl ::protobuf::Message for SessionMetadata {
2602 fn is_initialized(&self) -> bool {
2603 true
2604 }
2605
2606 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2607 while !is.eof()? {
2608 let (field_number, wire_type) = is.read_tag_unpack()?;
2609 match field_number {
2610 1 => {
2611 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
2612 },
2613 2 => {
2614 if wire_type != ::protobuf::wire_format::WireTypeVarint {
2615 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2616 }
2617 let tmp = is.read_int64()?;
2618 self.version = tmp;
2619 },
2620 _ => {
2621 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2622 },
2623 };
2624 }
2625 ::std::result::Result::Ok(())
2626 }
2627
2628 #[allow(unused_variables)]
2630 fn compute_size(&self) -> u32 {
2631 let mut my_size = 0;
2632 if !self.name.is_empty() {
2633 my_size += ::protobuf::rt::string_size(1, &self.name);
2634 }
2635 if self.version != 0 {
2636 my_size += ::protobuf::rt::value_size(2, self.version, ::protobuf::wire_format::WireTypeVarint);
2637 }
2638 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2639 self.cached_size.set(my_size);
2640 my_size
2641 }
2642
2643 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2644 if !self.name.is_empty() {
2645 os.write_string(1, &self.name)?;
2646 }
2647 if self.version != 0 {
2648 os.write_int64(2, self.version)?;
2649 }
2650 os.write_unknown_fields(self.get_unknown_fields())?;
2651 ::std::result::Result::Ok(())
2652 }
2653
2654 fn get_cached_size(&self) -> u32 {
2655 self.cached_size.get()
2656 }
2657
2658 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2659 &self.unknown_fields
2660 }
2661
2662 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2663 &mut self.unknown_fields
2664 }
2665
2666 fn as_any(&self) -> &dyn (::std::any::Any) {
2667 self as &dyn (::std::any::Any)
2668 }
2669 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2670 self as &mut dyn (::std::any::Any)
2671 }
2672 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2673 self
2674 }
2675
2676 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2677 Self::descriptor_static()
2678 }
2679
2680 fn new() -> SessionMetadata {
2681 SessionMetadata::new()
2682 }
2683
2684 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2685 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2686 unsafe {
2687 descriptor.get(|| {
2688 let mut fields = ::std::vec::Vec::new();
2689 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2690 "name",
2691 |m: &SessionMetadata| { &m.name },
2692 |m: &mut SessionMetadata| { &mut m.name },
2693 ));
2694 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
2695 "version",
2696 |m: &SessionMetadata| { &m.version },
2697 |m: &mut SessionMetadata| { &mut m.version },
2698 ));
2699 ::protobuf::reflect::MessageDescriptor::new_pb_name::<SessionMetadata>(
2700 "SessionMetadata",
2701 fields,
2702 file_descriptor_proto()
2703 )
2704 })
2705 }
2706 }
2707
2708 fn default_instance() -> &'static SessionMetadata {
2709 static mut instance: ::protobuf::lazy::Lazy<SessionMetadata> = ::protobuf::lazy::Lazy::INIT;
2710 unsafe {
2711 instance.get(SessionMetadata::new)
2712 }
2713 }
2714}
2715
2716impl ::protobuf::Clear for SessionMetadata {
2717 fn clear(&mut self) {
2718 self.name.clear();
2719 self.version = 0;
2720 self.unknown_fields.clear();
2721 }
2722}
2723
2724impl ::std::fmt::Debug for SessionMetadata {
2725 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2726 ::protobuf::text_format::fmt(self, f)
2727 }
2728}
2729
2730impl ::protobuf::reflect::ProtobufValue for SessionMetadata {
2731 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2732 ::protobuf::reflect::ReflectValueRef::Message(self)
2733 }
2734}
2735
2736#[derive(PartialEq,Clone,Default)]
2737pub struct ConfigProto {
2738 pub device_count: ::std::collections::HashMap<::std::string::String, i32>,
2740 pub intra_op_parallelism_threads: i32,
2741 pub inter_op_parallelism_threads: i32,
2742 pub use_per_session_threads: bool,
2743 pub session_inter_op_thread_pool: ::protobuf::RepeatedField<ThreadPoolOptionProto>,
2744 pub placement_period: i32,
2745 pub device_filters: ::protobuf::RepeatedField<::std::string::String>,
2746 pub gpu_options: ::protobuf::SingularPtrField<GPUOptions>,
2747 pub allow_soft_placement: bool,
2748 pub log_device_placement: bool,
2749 pub graph_options: ::protobuf::SingularPtrField<GraphOptions>,
2750 pub operation_timeout_in_ms: i64,
2751 pub rpc_options: ::protobuf::SingularPtrField<RPCOptions>,
2752 pub cluster_def: ::protobuf::SingularPtrField<super::cluster::ClusterDef>,
2753 pub isolate_session_state: bool,
2754 pub share_cluster_devices_in_session: bool,
2755 pub experimental: ::protobuf::SingularPtrField<ConfigProto_Experimental>,
2756 pub unknown_fields: ::protobuf::UnknownFields,
2758 pub cached_size: ::protobuf::CachedSize,
2759}
2760
2761impl<'a> ::std::default::Default for &'a ConfigProto {
2762 fn default() -> &'a ConfigProto {
2763 <ConfigProto as ::protobuf::Message>::default_instance()
2764 }
2765}
2766
2767impl ConfigProto {
2768 pub fn new() -> ConfigProto {
2769 ::std::default::Default::default()
2770 }
2771
2772 pub fn get_device_count(&self) -> &::std::collections::HashMap<::std::string::String, i32> {
2776 &self.device_count
2777 }
2778 pub fn clear_device_count(&mut self) {
2779 self.device_count.clear();
2780 }
2781
2782 pub fn set_device_count(&mut self, v: ::std::collections::HashMap<::std::string::String, i32>) {
2784 self.device_count = v;
2785 }
2786
2787 pub fn mut_device_count(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, i32> {
2789 &mut self.device_count
2790 }
2791
2792 pub fn take_device_count(&mut self) -> ::std::collections::HashMap<::std::string::String, i32> {
2794 ::std::mem::replace(&mut self.device_count, ::std::collections::HashMap::new())
2795 }
2796
2797 pub fn get_intra_op_parallelism_threads(&self) -> i32 {
2801 self.intra_op_parallelism_threads
2802 }
2803 pub fn clear_intra_op_parallelism_threads(&mut self) {
2804 self.intra_op_parallelism_threads = 0;
2805 }
2806
2807 pub fn set_intra_op_parallelism_threads(&mut self, v: i32) {
2809 self.intra_op_parallelism_threads = v;
2810 }
2811
2812 pub fn get_inter_op_parallelism_threads(&self) -> i32 {
2816 self.inter_op_parallelism_threads
2817 }
2818 pub fn clear_inter_op_parallelism_threads(&mut self) {
2819 self.inter_op_parallelism_threads = 0;
2820 }
2821
2822 pub fn set_inter_op_parallelism_threads(&mut self, v: i32) {
2824 self.inter_op_parallelism_threads = v;
2825 }
2826
2827 pub fn get_use_per_session_threads(&self) -> bool {
2831 self.use_per_session_threads
2832 }
2833 pub fn clear_use_per_session_threads(&mut self) {
2834 self.use_per_session_threads = false;
2835 }
2836
2837 pub fn set_use_per_session_threads(&mut self, v: bool) {
2839 self.use_per_session_threads = v;
2840 }
2841
2842 pub fn get_session_inter_op_thread_pool(&self) -> &[ThreadPoolOptionProto] {
2846 &self.session_inter_op_thread_pool
2847 }
2848 pub fn clear_session_inter_op_thread_pool(&mut self) {
2849 self.session_inter_op_thread_pool.clear();
2850 }
2851
2852 pub fn set_session_inter_op_thread_pool(&mut self, v: ::protobuf::RepeatedField<ThreadPoolOptionProto>) {
2854 self.session_inter_op_thread_pool = v;
2855 }
2856
2857 pub fn mut_session_inter_op_thread_pool(&mut self) -> &mut ::protobuf::RepeatedField<ThreadPoolOptionProto> {
2859 &mut self.session_inter_op_thread_pool
2860 }
2861
2862 pub fn take_session_inter_op_thread_pool(&mut self) -> ::protobuf::RepeatedField<ThreadPoolOptionProto> {
2864 ::std::mem::replace(&mut self.session_inter_op_thread_pool, ::protobuf::RepeatedField::new())
2865 }
2866
2867 pub fn get_placement_period(&self) -> i32 {
2871 self.placement_period
2872 }
2873 pub fn clear_placement_period(&mut self) {
2874 self.placement_period = 0;
2875 }
2876
2877 pub fn set_placement_period(&mut self, v: i32) {
2879 self.placement_period = v;
2880 }
2881
2882 pub fn get_device_filters(&self) -> &[::std::string::String] {
2886 &self.device_filters
2887 }
2888 pub fn clear_device_filters(&mut self) {
2889 self.device_filters.clear();
2890 }
2891
2892 pub fn set_device_filters(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
2894 self.device_filters = v;
2895 }
2896
2897 pub fn mut_device_filters(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
2899 &mut self.device_filters
2900 }
2901
2902 pub fn take_device_filters(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
2904 ::std::mem::replace(&mut self.device_filters, ::protobuf::RepeatedField::new())
2905 }
2906
2907 pub fn get_gpu_options(&self) -> &GPUOptions {
2911 self.gpu_options.as_ref().unwrap_or_else(|| GPUOptions::default_instance())
2912 }
2913 pub fn clear_gpu_options(&mut self) {
2914 self.gpu_options.clear();
2915 }
2916
2917 pub fn has_gpu_options(&self) -> bool {
2918 self.gpu_options.is_some()
2919 }
2920
2921 pub fn set_gpu_options(&mut self, v: GPUOptions) {
2923 self.gpu_options = ::protobuf::SingularPtrField::some(v);
2924 }
2925
2926 pub fn mut_gpu_options(&mut self) -> &mut GPUOptions {
2929 if self.gpu_options.is_none() {
2930 self.gpu_options.set_default();
2931 }
2932 self.gpu_options.as_mut().unwrap()
2933 }
2934
2935 pub fn take_gpu_options(&mut self) -> GPUOptions {
2937 self.gpu_options.take().unwrap_or_else(|| GPUOptions::new())
2938 }
2939
2940 pub fn get_allow_soft_placement(&self) -> bool {
2944 self.allow_soft_placement
2945 }
2946 pub fn clear_allow_soft_placement(&mut self) {
2947 self.allow_soft_placement = false;
2948 }
2949
2950 pub fn set_allow_soft_placement(&mut self, v: bool) {
2952 self.allow_soft_placement = v;
2953 }
2954
2955 pub fn get_log_device_placement(&self) -> bool {
2959 self.log_device_placement
2960 }
2961 pub fn clear_log_device_placement(&mut self) {
2962 self.log_device_placement = false;
2963 }
2964
2965 pub fn set_log_device_placement(&mut self, v: bool) {
2967 self.log_device_placement = v;
2968 }
2969
2970 pub fn get_graph_options(&self) -> &GraphOptions {
2974 self.graph_options.as_ref().unwrap_or_else(|| GraphOptions::default_instance())
2975 }
2976 pub fn clear_graph_options(&mut self) {
2977 self.graph_options.clear();
2978 }
2979
2980 pub fn has_graph_options(&self) -> bool {
2981 self.graph_options.is_some()
2982 }
2983
2984 pub fn set_graph_options(&mut self, v: GraphOptions) {
2986 self.graph_options = ::protobuf::SingularPtrField::some(v);
2987 }
2988
2989 pub fn mut_graph_options(&mut self) -> &mut GraphOptions {
2992 if self.graph_options.is_none() {
2993 self.graph_options.set_default();
2994 }
2995 self.graph_options.as_mut().unwrap()
2996 }
2997
2998 pub fn take_graph_options(&mut self) -> GraphOptions {
3000 self.graph_options.take().unwrap_or_else(|| GraphOptions::new())
3001 }
3002
3003 pub fn get_operation_timeout_in_ms(&self) -> i64 {
3007 self.operation_timeout_in_ms
3008 }
3009 pub fn clear_operation_timeout_in_ms(&mut self) {
3010 self.operation_timeout_in_ms = 0;
3011 }
3012
3013 pub fn set_operation_timeout_in_ms(&mut self, v: i64) {
3015 self.operation_timeout_in_ms = v;
3016 }
3017
3018 pub fn get_rpc_options(&self) -> &RPCOptions {
3022 self.rpc_options.as_ref().unwrap_or_else(|| RPCOptions::default_instance())
3023 }
3024 pub fn clear_rpc_options(&mut self) {
3025 self.rpc_options.clear();
3026 }
3027
3028 pub fn has_rpc_options(&self) -> bool {
3029 self.rpc_options.is_some()
3030 }
3031
3032 pub fn set_rpc_options(&mut self, v: RPCOptions) {
3034 self.rpc_options = ::protobuf::SingularPtrField::some(v);
3035 }
3036
3037 pub fn mut_rpc_options(&mut self) -> &mut RPCOptions {
3040 if self.rpc_options.is_none() {
3041 self.rpc_options.set_default();
3042 }
3043 self.rpc_options.as_mut().unwrap()
3044 }
3045
3046 pub fn take_rpc_options(&mut self) -> RPCOptions {
3048 self.rpc_options.take().unwrap_or_else(|| RPCOptions::new())
3049 }
3050
3051 pub fn get_cluster_def(&self) -> &super::cluster::ClusterDef {
3055 self.cluster_def.as_ref().unwrap_or_else(|| super::cluster::ClusterDef::default_instance())
3056 }
3057 pub fn clear_cluster_def(&mut self) {
3058 self.cluster_def.clear();
3059 }
3060
3061 pub fn has_cluster_def(&self) -> bool {
3062 self.cluster_def.is_some()
3063 }
3064
3065 pub fn set_cluster_def(&mut self, v: super::cluster::ClusterDef) {
3067 self.cluster_def = ::protobuf::SingularPtrField::some(v);
3068 }
3069
3070 pub fn mut_cluster_def(&mut self) -> &mut super::cluster::ClusterDef {
3073 if self.cluster_def.is_none() {
3074 self.cluster_def.set_default();
3075 }
3076 self.cluster_def.as_mut().unwrap()
3077 }
3078
3079 pub fn take_cluster_def(&mut self) -> super::cluster::ClusterDef {
3081 self.cluster_def.take().unwrap_or_else(|| super::cluster::ClusterDef::new())
3082 }
3083
3084 pub fn get_isolate_session_state(&self) -> bool {
3088 self.isolate_session_state
3089 }
3090 pub fn clear_isolate_session_state(&mut self) {
3091 self.isolate_session_state = false;
3092 }
3093
3094 pub fn set_isolate_session_state(&mut self, v: bool) {
3096 self.isolate_session_state = v;
3097 }
3098
3099 pub fn get_share_cluster_devices_in_session(&self) -> bool {
3103 self.share_cluster_devices_in_session
3104 }
3105 pub fn clear_share_cluster_devices_in_session(&mut self) {
3106 self.share_cluster_devices_in_session = false;
3107 }
3108
3109 pub fn set_share_cluster_devices_in_session(&mut self, v: bool) {
3111 self.share_cluster_devices_in_session = v;
3112 }
3113
3114 pub fn get_experimental(&self) -> &ConfigProto_Experimental {
3118 self.experimental.as_ref().unwrap_or_else(|| ConfigProto_Experimental::default_instance())
3119 }
3120 pub fn clear_experimental(&mut self) {
3121 self.experimental.clear();
3122 }
3123
3124 pub fn has_experimental(&self) -> bool {
3125 self.experimental.is_some()
3126 }
3127
3128 pub fn set_experimental(&mut self, v: ConfigProto_Experimental) {
3130 self.experimental = ::protobuf::SingularPtrField::some(v);
3131 }
3132
3133 pub fn mut_experimental(&mut self) -> &mut ConfigProto_Experimental {
3136 if self.experimental.is_none() {
3137 self.experimental.set_default();
3138 }
3139 self.experimental.as_mut().unwrap()
3140 }
3141
3142 pub fn take_experimental(&mut self) -> ConfigProto_Experimental {
3144 self.experimental.take().unwrap_or_else(|| ConfigProto_Experimental::new())
3145 }
3146}
3147
3148impl ::protobuf::Message for ConfigProto {
3149 fn is_initialized(&self) -> bool {
3150 for v in &self.session_inter_op_thread_pool {
3151 if !v.is_initialized() {
3152 return false;
3153 }
3154 };
3155 for v in &self.gpu_options {
3156 if !v.is_initialized() {
3157 return false;
3158 }
3159 };
3160 for v in &self.graph_options {
3161 if !v.is_initialized() {
3162 return false;
3163 }
3164 };
3165 for v in &self.rpc_options {
3166 if !v.is_initialized() {
3167 return false;
3168 }
3169 };
3170 for v in &self.cluster_def {
3171 if !v.is_initialized() {
3172 return false;
3173 }
3174 };
3175 for v in &self.experimental {
3176 if !v.is_initialized() {
3177 return false;
3178 }
3179 };
3180 true
3181 }
3182
3183 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3184 while !is.eof()? {
3185 let (field_number, wire_type) = is.read_tag_unpack()?;
3186 match field_number {
3187 1 => {
3188 ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeInt32>(wire_type, is, &mut self.device_count)?;
3189 },
3190 2 => {
3191 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3192 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3193 }
3194 let tmp = is.read_int32()?;
3195 self.intra_op_parallelism_threads = tmp;
3196 },
3197 5 => {
3198 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3199 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3200 }
3201 let tmp = is.read_int32()?;
3202 self.inter_op_parallelism_threads = tmp;
3203 },
3204 9 => {
3205 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3206 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3207 }
3208 let tmp = is.read_bool()?;
3209 self.use_per_session_threads = tmp;
3210 },
3211 12 => {
3212 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.session_inter_op_thread_pool)?;
3213 },
3214 3 => {
3215 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3216 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3217 }
3218 let tmp = is.read_int32()?;
3219 self.placement_period = tmp;
3220 },
3221 4 => {
3222 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.device_filters)?;
3223 },
3224 6 => {
3225 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.gpu_options)?;
3226 },
3227 7 => {
3228 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3229 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3230 }
3231 let tmp = is.read_bool()?;
3232 self.allow_soft_placement = tmp;
3233 },
3234 8 => {
3235 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3236 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3237 }
3238 let tmp = is.read_bool()?;
3239 self.log_device_placement = tmp;
3240 },
3241 10 => {
3242 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.graph_options)?;
3243 },
3244 11 => {
3245 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3246 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3247 }
3248 let tmp = is.read_int64()?;
3249 self.operation_timeout_in_ms = tmp;
3250 },
3251 13 => {
3252 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.rpc_options)?;
3253 },
3254 14 => {
3255 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cluster_def)?;
3256 },
3257 15 => {
3258 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3259 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3260 }
3261 let tmp = is.read_bool()?;
3262 self.isolate_session_state = tmp;
3263 },
3264 17 => {
3265 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3266 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3267 }
3268 let tmp = is.read_bool()?;
3269 self.share_cluster_devices_in_session = tmp;
3270 },
3271 16 => {
3272 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.experimental)?;
3273 },
3274 _ => {
3275 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3276 },
3277 };
3278 }
3279 ::std::result::Result::Ok(())
3280 }
3281
3282 #[allow(unused_variables)]
3284 fn compute_size(&self) -> u32 {
3285 let mut my_size = 0;
3286 my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeInt32>(1, &self.device_count);
3287 if self.intra_op_parallelism_threads != 0 {
3288 my_size += ::protobuf::rt::value_size(2, self.intra_op_parallelism_threads, ::protobuf::wire_format::WireTypeVarint);
3289 }
3290 if self.inter_op_parallelism_threads != 0 {
3291 my_size += ::protobuf::rt::value_size(5, self.inter_op_parallelism_threads, ::protobuf::wire_format::WireTypeVarint);
3292 }
3293 if self.use_per_session_threads != false {
3294 my_size += 2;
3295 }
3296 for value in &self.session_inter_op_thread_pool {
3297 let len = value.compute_size();
3298 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3299 };
3300 if self.placement_period != 0 {
3301 my_size += ::protobuf::rt::value_size(3, self.placement_period, ::protobuf::wire_format::WireTypeVarint);
3302 }
3303 for value in &self.device_filters {
3304 my_size += ::protobuf::rt::string_size(4, &value);
3305 };
3306 if let Some(ref v) = self.gpu_options.as_ref() {
3307 let len = v.compute_size();
3308 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3309 }
3310 if self.allow_soft_placement != false {
3311 my_size += 2;
3312 }
3313 if self.log_device_placement != false {
3314 my_size += 2;
3315 }
3316 if let Some(ref v) = self.graph_options.as_ref() {
3317 let len = v.compute_size();
3318 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3319 }
3320 if self.operation_timeout_in_ms != 0 {
3321 my_size += ::protobuf::rt::value_size(11, self.operation_timeout_in_ms, ::protobuf::wire_format::WireTypeVarint);
3322 }
3323 if let Some(ref v) = self.rpc_options.as_ref() {
3324 let len = v.compute_size();
3325 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3326 }
3327 if let Some(ref v) = self.cluster_def.as_ref() {
3328 let len = v.compute_size();
3329 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3330 }
3331 if self.isolate_session_state != false {
3332 my_size += 2;
3333 }
3334 if self.share_cluster_devices_in_session != false {
3335 my_size += 3;
3336 }
3337 if let Some(ref v) = self.experimental.as_ref() {
3338 let len = v.compute_size();
3339 my_size += 2 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3340 }
3341 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3342 self.cached_size.set(my_size);
3343 my_size
3344 }
3345
3346 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3347 ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeInt32>(1, &self.device_count, os)?;
3348 if self.intra_op_parallelism_threads != 0 {
3349 os.write_int32(2, self.intra_op_parallelism_threads)?;
3350 }
3351 if self.inter_op_parallelism_threads != 0 {
3352 os.write_int32(5, self.inter_op_parallelism_threads)?;
3353 }
3354 if self.use_per_session_threads != false {
3355 os.write_bool(9, self.use_per_session_threads)?;
3356 }
3357 for v in &self.session_inter_op_thread_pool {
3358 os.write_tag(12, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3359 os.write_raw_varint32(v.get_cached_size())?;
3360 v.write_to_with_cached_sizes(os)?;
3361 };
3362 if self.placement_period != 0 {
3363 os.write_int32(3, self.placement_period)?;
3364 }
3365 for v in &self.device_filters {
3366 os.write_string(4, &v)?;
3367 };
3368 if let Some(ref v) = self.gpu_options.as_ref() {
3369 os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3370 os.write_raw_varint32(v.get_cached_size())?;
3371 v.write_to_with_cached_sizes(os)?;
3372 }
3373 if self.allow_soft_placement != false {
3374 os.write_bool(7, self.allow_soft_placement)?;
3375 }
3376 if self.log_device_placement != false {
3377 os.write_bool(8, self.log_device_placement)?;
3378 }
3379 if let Some(ref v) = self.graph_options.as_ref() {
3380 os.write_tag(10, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3381 os.write_raw_varint32(v.get_cached_size())?;
3382 v.write_to_with_cached_sizes(os)?;
3383 }
3384 if self.operation_timeout_in_ms != 0 {
3385 os.write_int64(11, self.operation_timeout_in_ms)?;
3386 }
3387 if let Some(ref v) = self.rpc_options.as_ref() {
3388 os.write_tag(13, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3389 os.write_raw_varint32(v.get_cached_size())?;
3390 v.write_to_with_cached_sizes(os)?;
3391 }
3392 if let Some(ref v) = self.cluster_def.as_ref() {
3393 os.write_tag(14, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3394 os.write_raw_varint32(v.get_cached_size())?;
3395 v.write_to_with_cached_sizes(os)?;
3396 }
3397 if self.isolate_session_state != false {
3398 os.write_bool(15, self.isolate_session_state)?;
3399 }
3400 if self.share_cluster_devices_in_session != false {
3401 os.write_bool(17, self.share_cluster_devices_in_session)?;
3402 }
3403 if let Some(ref v) = self.experimental.as_ref() {
3404 os.write_tag(16, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3405 os.write_raw_varint32(v.get_cached_size())?;
3406 v.write_to_with_cached_sizes(os)?;
3407 }
3408 os.write_unknown_fields(self.get_unknown_fields())?;
3409 ::std::result::Result::Ok(())
3410 }
3411
3412 fn get_cached_size(&self) -> u32 {
3413 self.cached_size.get()
3414 }
3415
3416 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3417 &self.unknown_fields
3418 }
3419
3420 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3421 &mut self.unknown_fields
3422 }
3423
3424 fn as_any(&self) -> &dyn (::std::any::Any) {
3425 self as &dyn (::std::any::Any)
3426 }
3427 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3428 self as &mut dyn (::std::any::Any)
3429 }
3430 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3431 self
3432 }
3433
3434 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3435 Self::descriptor_static()
3436 }
3437
3438 fn new() -> ConfigProto {
3439 ConfigProto::new()
3440 }
3441
3442 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3443 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
3444 unsafe {
3445 descriptor.get(|| {
3446 let mut fields = ::std::vec::Vec::new();
3447 fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeInt32>(
3448 "device_count",
3449 |m: &ConfigProto| { &m.device_count },
3450 |m: &mut ConfigProto| { &mut m.device_count },
3451 ));
3452 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
3453 "intra_op_parallelism_threads",
3454 |m: &ConfigProto| { &m.intra_op_parallelism_threads },
3455 |m: &mut ConfigProto| { &mut m.intra_op_parallelism_threads },
3456 ));
3457 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
3458 "inter_op_parallelism_threads",
3459 |m: &ConfigProto| { &m.inter_op_parallelism_threads },
3460 |m: &mut ConfigProto| { &mut m.inter_op_parallelism_threads },
3461 ));
3462 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
3463 "use_per_session_threads",
3464 |m: &ConfigProto| { &m.use_per_session_threads },
3465 |m: &mut ConfigProto| { &mut m.use_per_session_threads },
3466 ));
3467 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ThreadPoolOptionProto>>(
3468 "session_inter_op_thread_pool",
3469 |m: &ConfigProto| { &m.session_inter_op_thread_pool },
3470 |m: &mut ConfigProto| { &mut m.session_inter_op_thread_pool },
3471 ));
3472 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
3473 "placement_period",
3474 |m: &ConfigProto| { &m.placement_period },
3475 |m: &mut ConfigProto| { &mut m.placement_period },
3476 ));
3477 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3478 "device_filters",
3479 |m: &ConfigProto| { &m.device_filters },
3480 |m: &mut ConfigProto| { &mut m.device_filters },
3481 ));
3482 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<GPUOptions>>(
3483 "gpu_options",
3484 |m: &ConfigProto| { &m.gpu_options },
3485 |m: &mut ConfigProto| { &mut m.gpu_options },
3486 ));
3487 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
3488 "allow_soft_placement",
3489 |m: &ConfigProto| { &m.allow_soft_placement },
3490 |m: &mut ConfigProto| { &mut m.allow_soft_placement },
3491 ));
3492 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
3493 "log_device_placement",
3494 |m: &ConfigProto| { &m.log_device_placement },
3495 |m: &mut ConfigProto| { &mut m.log_device_placement },
3496 ));
3497 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<GraphOptions>>(
3498 "graph_options",
3499 |m: &ConfigProto| { &m.graph_options },
3500 |m: &mut ConfigProto| { &mut m.graph_options },
3501 ));
3502 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
3503 "operation_timeout_in_ms",
3504 |m: &ConfigProto| { &m.operation_timeout_in_ms },
3505 |m: &mut ConfigProto| { &mut m.operation_timeout_in_ms },
3506 ));
3507 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RPCOptions>>(
3508 "rpc_options",
3509 |m: &ConfigProto| { &m.rpc_options },
3510 |m: &mut ConfigProto| { &mut m.rpc_options },
3511 ));
3512 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::cluster::ClusterDef>>(
3513 "cluster_def",
3514 |m: &ConfigProto| { &m.cluster_def },
3515 |m: &mut ConfigProto| { &mut m.cluster_def },
3516 ));
3517 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
3518 "isolate_session_state",
3519 |m: &ConfigProto| { &m.isolate_session_state },
3520 |m: &mut ConfigProto| { &mut m.isolate_session_state },
3521 ));
3522 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
3523 "share_cluster_devices_in_session",
3524 |m: &ConfigProto| { &m.share_cluster_devices_in_session },
3525 |m: &mut ConfigProto| { &mut m.share_cluster_devices_in_session },
3526 ));
3527 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ConfigProto_Experimental>>(
3528 "experimental",
3529 |m: &ConfigProto| { &m.experimental },
3530 |m: &mut ConfigProto| { &mut m.experimental },
3531 ));
3532 ::protobuf::reflect::MessageDescriptor::new_pb_name::<ConfigProto>(
3533 "ConfigProto",
3534 fields,
3535 file_descriptor_proto()
3536 )
3537 })
3538 }
3539 }
3540
3541 fn default_instance() -> &'static ConfigProto {
3542 static mut instance: ::protobuf::lazy::Lazy<ConfigProto> = ::protobuf::lazy::Lazy::INIT;
3543 unsafe {
3544 instance.get(ConfigProto::new)
3545 }
3546 }
3547}
3548
3549impl ::protobuf::Clear for ConfigProto {
3550 fn clear(&mut self) {
3551 self.device_count.clear();
3552 self.intra_op_parallelism_threads = 0;
3553 self.inter_op_parallelism_threads = 0;
3554 self.use_per_session_threads = false;
3555 self.session_inter_op_thread_pool.clear();
3556 self.placement_period = 0;
3557 self.device_filters.clear();
3558 self.gpu_options.clear();
3559 self.allow_soft_placement = false;
3560 self.log_device_placement = false;
3561 self.graph_options.clear();
3562 self.operation_timeout_in_ms = 0;
3563 self.rpc_options.clear();
3564 self.cluster_def.clear();
3565 self.isolate_session_state = false;
3566 self.share_cluster_devices_in_session = false;
3567 self.experimental.clear();
3568 self.unknown_fields.clear();
3569 }
3570}
3571
3572impl ::std::fmt::Debug for ConfigProto {
3573 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3574 ::protobuf::text_format::fmt(self, f)
3575 }
3576}
3577
3578impl ::protobuf::reflect::ProtobufValue for ConfigProto {
3579 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3580 ::protobuf::reflect::ReflectValueRef::Message(self)
3581 }
3582}
3583
3584#[derive(PartialEq,Clone,Default)]
3585pub struct ConfigProto_Experimental {
3586 pub collective_group_leader: ::std::string::String,
3588 pub executor_type: ::std::string::String,
3589 pub recv_buf_max_chunk: i32,
3590 pub use_numa_affinity: bool,
3591 pub collective_deterministic_sequential_execution: bool,
3592 pub collective_nccl: bool,
3593 pub share_session_state_in_clusterspec_propagation: bool,
3594 pub disable_thread_spinning: bool,
3595 pub share_cluster_devices_in_session: bool,
3596 pub session_metadata: ::protobuf::SingularPtrField<SessionMetadata>,
3597 pub optimize_for_static_graph: bool,
3598 pub enable_mlir_bridge: bool,
3599 pub enable_mlir_graph_optimization: bool,
3600 pub disable_output_partition_graphs: bool,
3601 pub xla_fusion_autotuner_thresh: i64,
3602 pub unknown_fields: ::protobuf::UnknownFields,
3604 pub cached_size: ::protobuf::CachedSize,
3605}
3606
3607impl<'a> ::std::default::Default for &'a ConfigProto_Experimental {
3608 fn default() -> &'a ConfigProto_Experimental {
3609 <ConfigProto_Experimental as ::protobuf::Message>::default_instance()
3610 }
3611}
3612
3613impl ConfigProto_Experimental {
3614 pub fn new() -> ConfigProto_Experimental {
3615 ::std::default::Default::default()
3616 }
3617
3618 pub fn get_collective_group_leader(&self) -> &str {
3622 &self.collective_group_leader
3623 }
3624 pub fn clear_collective_group_leader(&mut self) {
3625 self.collective_group_leader.clear();
3626 }
3627
3628 pub fn set_collective_group_leader(&mut self, v: ::std::string::String) {
3630 self.collective_group_leader = v;
3631 }
3632
3633 pub fn mut_collective_group_leader(&mut self) -> &mut ::std::string::String {
3636 &mut self.collective_group_leader
3637 }
3638
3639 pub fn take_collective_group_leader(&mut self) -> ::std::string::String {
3641 ::std::mem::replace(&mut self.collective_group_leader, ::std::string::String::new())
3642 }
3643
3644 pub fn get_executor_type(&self) -> &str {
3648 &self.executor_type
3649 }
3650 pub fn clear_executor_type(&mut self) {
3651 self.executor_type.clear();
3652 }
3653
3654 pub fn set_executor_type(&mut self, v: ::std::string::String) {
3656 self.executor_type = v;
3657 }
3658
3659 pub fn mut_executor_type(&mut self) -> &mut ::std::string::String {
3662 &mut self.executor_type
3663 }
3664
3665 pub fn take_executor_type(&mut self) -> ::std::string::String {
3667 ::std::mem::replace(&mut self.executor_type, ::std::string::String::new())
3668 }
3669
3670 pub fn get_recv_buf_max_chunk(&self) -> i32 {
3674 self.recv_buf_max_chunk
3675 }
3676 pub fn clear_recv_buf_max_chunk(&mut self) {
3677 self.recv_buf_max_chunk = 0;
3678 }
3679
3680 pub fn set_recv_buf_max_chunk(&mut self, v: i32) {
3682 self.recv_buf_max_chunk = v;
3683 }
3684
3685 pub fn get_use_numa_affinity(&self) -> bool {
3689 self.use_numa_affinity
3690 }
3691 pub fn clear_use_numa_affinity(&mut self) {
3692 self.use_numa_affinity = false;
3693 }
3694
3695 pub fn set_use_numa_affinity(&mut self, v: bool) {
3697 self.use_numa_affinity = v;
3698 }
3699
3700 pub fn get_collective_deterministic_sequential_execution(&self) -> bool {
3704 self.collective_deterministic_sequential_execution
3705 }
3706 pub fn clear_collective_deterministic_sequential_execution(&mut self) {
3707 self.collective_deterministic_sequential_execution = false;
3708 }
3709
3710 pub fn set_collective_deterministic_sequential_execution(&mut self, v: bool) {
3712 self.collective_deterministic_sequential_execution = v;
3713 }
3714
3715 pub fn get_collective_nccl(&self) -> bool {
3719 self.collective_nccl
3720 }
3721 pub fn clear_collective_nccl(&mut self) {
3722 self.collective_nccl = false;
3723 }
3724
3725 pub fn set_collective_nccl(&mut self, v: bool) {
3727 self.collective_nccl = v;
3728 }
3729
3730 pub fn get_share_session_state_in_clusterspec_propagation(&self) -> bool {
3734 self.share_session_state_in_clusterspec_propagation
3735 }
3736 pub fn clear_share_session_state_in_clusterspec_propagation(&mut self) {
3737 self.share_session_state_in_clusterspec_propagation = false;
3738 }
3739
3740 pub fn set_share_session_state_in_clusterspec_propagation(&mut self, v: bool) {
3742 self.share_session_state_in_clusterspec_propagation = v;
3743 }
3744
3745 pub fn get_disable_thread_spinning(&self) -> bool {
3749 self.disable_thread_spinning
3750 }
3751 pub fn clear_disable_thread_spinning(&mut self) {
3752 self.disable_thread_spinning = false;
3753 }
3754
3755 pub fn set_disable_thread_spinning(&mut self, v: bool) {
3757 self.disable_thread_spinning = v;
3758 }
3759
3760 pub fn get_share_cluster_devices_in_session(&self) -> bool {
3764 self.share_cluster_devices_in_session
3765 }
3766 pub fn clear_share_cluster_devices_in_session(&mut self) {
3767 self.share_cluster_devices_in_session = false;
3768 }
3769
3770 pub fn set_share_cluster_devices_in_session(&mut self, v: bool) {
3772 self.share_cluster_devices_in_session = v;
3773 }
3774
3775 pub fn get_session_metadata(&self) -> &SessionMetadata {
3779 self.session_metadata.as_ref().unwrap_or_else(|| SessionMetadata::default_instance())
3780 }
3781 pub fn clear_session_metadata(&mut self) {
3782 self.session_metadata.clear();
3783 }
3784
3785 pub fn has_session_metadata(&self) -> bool {
3786 self.session_metadata.is_some()
3787 }
3788
3789 pub fn set_session_metadata(&mut self, v: SessionMetadata) {
3791 self.session_metadata = ::protobuf::SingularPtrField::some(v);
3792 }
3793
3794 pub fn mut_session_metadata(&mut self) -> &mut SessionMetadata {
3797 if self.session_metadata.is_none() {
3798 self.session_metadata.set_default();
3799 }
3800 self.session_metadata.as_mut().unwrap()
3801 }
3802
3803 pub fn take_session_metadata(&mut self) -> SessionMetadata {
3805 self.session_metadata.take().unwrap_or_else(|| SessionMetadata::new())
3806 }
3807
3808 pub fn get_optimize_for_static_graph(&self) -> bool {
3812 self.optimize_for_static_graph
3813 }
3814 pub fn clear_optimize_for_static_graph(&mut self) {
3815 self.optimize_for_static_graph = false;
3816 }
3817
3818 pub fn set_optimize_for_static_graph(&mut self, v: bool) {
3820 self.optimize_for_static_graph = v;
3821 }
3822
3823 pub fn get_enable_mlir_bridge(&self) -> bool {
3827 self.enable_mlir_bridge
3828 }
3829 pub fn clear_enable_mlir_bridge(&mut self) {
3830 self.enable_mlir_bridge = false;
3831 }
3832
3833 pub fn set_enable_mlir_bridge(&mut self, v: bool) {
3835 self.enable_mlir_bridge = v;
3836 }
3837
3838 pub fn get_enable_mlir_graph_optimization(&self) -> bool {
3842 self.enable_mlir_graph_optimization
3843 }
3844 pub fn clear_enable_mlir_graph_optimization(&mut self) {
3845 self.enable_mlir_graph_optimization = false;
3846 }
3847
3848 pub fn set_enable_mlir_graph_optimization(&mut self, v: bool) {
3850 self.enable_mlir_graph_optimization = v;
3851 }
3852
3853 pub fn get_disable_output_partition_graphs(&self) -> bool {
3857 self.disable_output_partition_graphs
3858 }
3859 pub fn clear_disable_output_partition_graphs(&mut self) {
3860 self.disable_output_partition_graphs = false;
3861 }
3862
3863 pub fn set_disable_output_partition_graphs(&mut self, v: bool) {
3865 self.disable_output_partition_graphs = v;
3866 }
3867
3868 pub fn get_xla_fusion_autotuner_thresh(&self) -> i64 {
3872 self.xla_fusion_autotuner_thresh
3873 }
3874 pub fn clear_xla_fusion_autotuner_thresh(&mut self) {
3875 self.xla_fusion_autotuner_thresh = 0;
3876 }
3877
3878 pub fn set_xla_fusion_autotuner_thresh(&mut self, v: i64) {
3880 self.xla_fusion_autotuner_thresh = v;
3881 }
3882}
3883
3884impl ::protobuf::Message for ConfigProto_Experimental {
3885 fn is_initialized(&self) -> bool {
3886 for v in &self.session_metadata {
3887 if !v.is_initialized() {
3888 return false;
3889 }
3890 };
3891 true
3892 }
3893
3894 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3895 while !is.eof()? {
3896 let (field_number, wire_type) = is.read_tag_unpack()?;
3897 match field_number {
3898 1 => {
3899 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.collective_group_leader)?;
3900 },
3901 3 => {
3902 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.executor_type)?;
3903 },
3904 4 => {
3905 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3906 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3907 }
3908 let tmp = is.read_int32()?;
3909 self.recv_buf_max_chunk = tmp;
3910 },
3911 5 => {
3912 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3913 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3914 }
3915 let tmp = is.read_bool()?;
3916 self.use_numa_affinity = tmp;
3917 },
3918 6 => {
3919 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3920 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3921 }
3922 let tmp = is.read_bool()?;
3923 self.collective_deterministic_sequential_execution = tmp;
3924 },
3925 7 => {
3926 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3927 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3928 }
3929 let tmp = is.read_bool()?;
3930 self.collective_nccl = tmp;
3931 },
3932 8 => {
3933 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3934 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3935 }
3936 let tmp = is.read_bool()?;
3937 self.share_session_state_in_clusterspec_propagation = tmp;
3938 },
3939 9 => {
3940 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3941 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3942 }
3943 let tmp = is.read_bool()?;
3944 self.disable_thread_spinning = tmp;
3945 },
3946 10 => {
3947 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3948 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3949 }
3950 let tmp = is.read_bool()?;
3951 self.share_cluster_devices_in_session = tmp;
3952 },
3953 11 => {
3954 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.session_metadata)?;
3955 },
3956 12 => {
3957 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3958 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3959 }
3960 let tmp = is.read_bool()?;
3961 self.optimize_for_static_graph = tmp;
3962 },
3963 13 => {
3964 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3965 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3966 }
3967 let tmp = is.read_bool()?;
3968 self.enable_mlir_bridge = tmp;
3969 },
3970 16 => {
3971 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3972 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3973 }
3974 let tmp = is.read_bool()?;
3975 self.enable_mlir_graph_optimization = tmp;
3976 },
3977 14 => {
3978 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3979 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3980 }
3981 let tmp = is.read_bool()?;
3982 self.disable_output_partition_graphs = tmp;
3983 },
3984 15 => {
3985 if wire_type != ::protobuf::wire_format::WireTypeVarint {
3986 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3987 }
3988 let tmp = is.read_int64()?;
3989 self.xla_fusion_autotuner_thresh = tmp;
3990 },
3991 _ => {
3992 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3993 },
3994 };
3995 }
3996 ::std::result::Result::Ok(())
3997 }
3998
3999 #[allow(unused_variables)]
4001 fn compute_size(&self) -> u32 {
4002 let mut my_size = 0;
4003 if !self.collective_group_leader.is_empty() {
4004 my_size += ::protobuf::rt::string_size(1, &self.collective_group_leader);
4005 }
4006 if !self.executor_type.is_empty() {
4007 my_size += ::protobuf::rt::string_size(3, &self.executor_type);
4008 }
4009 if self.recv_buf_max_chunk != 0 {
4010 my_size += ::protobuf::rt::value_size(4, self.recv_buf_max_chunk, ::protobuf::wire_format::WireTypeVarint);
4011 }
4012 if self.use_numa_affinity != false {
4013 my_size += 2;
4014 }
4015 if self.collective_deterministic_sequential_execution != false {
4016 my_size += 2;
4017 }
4018 if self.collective_nccl != false {
4019 my_size += 2;
4020 }
4021 if self.share_session_state_in_clusterspec_propagation != false {
4022 my_size += 2;
4023 }
4024 if self.disable_thread_spinning != false {
4025 my_size += 2;
4026 }
4027 if self.share_cluster_devices_in_session != false {
4028 my_size += 2;
4029 }
4030 if let Some(ref v) = self.session_metadata.as_ref() {
4031 let len = v.compute_size();
4032 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4033 }
4034 if self.optimize_for_static_graph != false {
4035 my_size += 2;
4036 }
4037 if self.enable_mlir_bridge != false {
4038 my_size += 2;
4039 }
4040 if self.enable_mlir_graph_optimization != false {
4041 my_size += 3;
4042 }
4043 if self.disable_output_partition_graphs != false {
4044 my_size += 2;
4045 }
4046 if self.xla_fusion_autotuner_thresh != 0 {
4047 my_size += ::protobuf::rt::value_size(15, self.xla_fusion_autotuner_thresh, ::protobuf::wire_format::WireTypeVarint);
4048 }
4049 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4050 self.cached_size.set(my_size);
4051 my_size
4052 }
4053
4054 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4055 if !self.collective_group_leader.is_empty() {
4056 os.write_string(1, &self.collective_group_leader)?;
4057 }
4058 if !self.executor_type.is_empty() {
4059 os.write_string(3, &self.executor_type)?;
4060 }
4061 if self.recv_buf_max_chunk != 0 {
4062 os.write_int32(4, self.recv_buf_max_chunk)?;
4063 }
4064 if self.use_numa_affinity != false {
4065 os.write_bool(5, self.use_numa_affinity)?;
4066 }
4067 if self.collective_deterministic_sequential_execution != false {
4068 os.write_bool(6, self.collective_deterministic_sequential_execution)?;
4069 }
4070 if self.collective_nccl != false {
4071 os.write_bool(7, self.collective_nccl)?;
4072 }
4073 if self.share_session_state_in_clusterspec_propagation != false {
4074 os.write_bool(8, self.share_session_state_in_clusterspec_propagation)?;
4075 }
4076 if self.disable_thread_spinning != false {
4077 os.write_bool(9, self.disable_thread_spinning)?;
4078 }
4079 if self.share_cluster_devices_in_session != false {
4080 os.write_bool(10, self.share_cluster_devices_in_session)?;
4081 }
4082 if let Some(ref v) = self.session_metadata.as_ref() {
4083 os.write_tag(11, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4084 os.write_raw_varint32(v.get_cached_size())?;
4085 v.write_to_with_cached_sizes(os)?;
4086 }
4087 if self.optimize_for_static_graph != false {
4088 os.write_bool(12, self.optimize_for_static_graph)?;
4089 }
4090 if self.enable_mlir_bridge != false {
4091 os.write_bool(13, self.enable_mlir_bridge)?;
4092 }
4093 if self.enable_mlir_graph_optimization != false {
4094 os.write_bool(16, self.enable_mlir_graph_optimization)?;
4095 }
4096 if self.disable_output_partition_graphs != false {
4097 os.write_bool(14, self.disable_output_partition_graphs)?;
4098 }
4099 if self.xla_fusion_autotuner_thresh != 0 {
4100 os.write_int64(15, self.xla_fusion_autotuner_thresh)?;
4101 }
4102 os.write_unknown_fields(self.get_unknown_fields())?;
4103 ::std::result::Result::Ok(())
4104 }
4105
4106 fn get_cached_size(&self) -> u32 {
4107 self.cached_size.get()
4108 }
4109
4110 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4111 &self.unknown_fields
4112 }
4113
4114 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4115 &mut self.unknown_fields
4116 }
4117
4118 fn as_any(&self) -> &dyn (::std::any::Any) {
4119 self as &dyn (::std::any::Any)
4120 }
4121 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4122 self as &mut dyn (::std::any::Any)
4123 }
4124 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4125 self
4126 }
4127
4128 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4129 Self::descriptor_static()
4130 }
4131
4132 fn new() -> ConfigProto_Experimental {
4133 ConfigProto_Experimental::new()
4134 }
4135
4136 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4137 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
4138 unsafe {
4139 descriptor.get(|| {
4140 let mut fields = ::std::vec::Vec::new();
4141 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4142 "collective_group_leader",
4143 |m: &ConfigProto_Experimental| { &m.collective_group_leader },
4144 |m: &mut ConfigProto_Experimental| { &mut m.collective_group_leader },
4145 ));
4146 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
4147 "executor_type",
4148 |m: &ConfigProto_Experimental| { &m.executor_type },
4149 |m: &mut ConfigProto_Experimental| { &mut m.executor_type },
4150 ));
4151 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
4152 "recv_buf_max_chunk",
4153 |m: &ConfigProto_Experimental| { &m.recv_buf_max_chunk },
4154 |m: &mut ConfigProto_Experimental| { &mut m.recv_buf_max_chunk },
4155 ));
4156 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4157 "use_numa_affinity",
4158 |m: &ConfigProto_Experimental| { &m.use_numa_affinity },
4159 |m: &mut ConfigProto_Experimental| { &mut m.use_numa_affinity },
4160 ));
4161 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4162 "collective_deterministic_sequential_execution",
4163 |m: &ConfigProto_Experimental| { &m.collective_deterministic_sequential_execution },
4164 |m: &mut ConfigProto_Experimental| { &mut m.collective_deterministic_sequential_execution },
4165 ));
4166 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4167 "collective_nccl",
4168 |m: &ConfigProto_Experimental| { &m.collective_nccl },
4169 |m: &mut ConfigProto_Experimental| { &mut m.collective_nccl },
4170 ));
4171 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4172 "share_session_state_in_clusterspec_propagation",
4173 |m: &ConfigProto_Experimental| { &m.share_session_state_in_clusterspec_propagation },
4174 |m: &mut ConfigProto_Experimental| { &mut m.share_session_state_in_clusterspec_propagation },
4175 ));
4176 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4177 "disable_thread_spinning",
4178 |m: &ConfigProto_Experimental| { &m.disable_thread_spinning },
4179 |m: &mut ConfigProto_Experimental| { &mut m.disable_thread_spinning },
4180 ));
4181 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4182 "share_cluster_devices_in_session",
4183 |m: &ConfigProto_Experimental| { &m.share_cluster_devices_in_session },
4184 |m: &mut ConfigProto_Experimental| { &mut m.share_cluster_devices_in_session },
4185 ));
4186 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SessionMetadata>>(
4187 "session_metadata",
4188 |m: &ConfigProto_Experimental| { &m.session_metadata },
4189 |m: &mut ConfigProto_Experimental| { &mut m.session_metadata },
4190 ));
4191 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4192 "optimize_for_static_graph",
4193 |m: &ConfigProto_Experimental| { &m.optimize_for_static_graph },
4194 |m: &mut ConfigProto_Experimental| { &mut m.optimize_for_static_graph },
4195 ));
4196 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4197 "enable_mlir_bridge",
4198 |m: &ConfigProto_Experimental| { &m.enable_mlir_bridge },
4199 |m: &mut ConfigProto_Experimental| { &mut m.enable_mlir_bridge },
4200 ));
4201 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4202 "enable_mlir_graph_optimization",
4203 |m: &ConfigProto_Experimental| { &m.enable_mlir_graph_optimization },
4204 |m: &mut ConfigProto_Experimental| { &mut m.enable_mlir_graph_optimization },
4205 ));
4206 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4207 "disable_output_partition_graphs",
4208 |m: &ConfigProto_Experimental| { &m.disable_output_partition_graphs },
4209 |m: &mut ConfigProto_Experimental| { &mut m.disable_output_partition_graphs },
4210 ));
4211 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
4212 "xla_fusion_autotuner_thresh",
4213 |m: &ConfigProto_Experimental| { &m.xla_fusion_autotuner_thresh },
4214 |m: &mut ConfigProto_Experimental| { &mut m.xla_fusion_autotuner_thresh },
4215 ));
4216 ::protobuf::reflect::MessageDescriptor::new_pb_name::<ConfigProto_Experimental>(
4217 "ConfigProto.Experimental",
4218 fields,
4219 file_descriptor_proto()
4220 )
4221 })
4222 }
4223 }
4224
4225 fn default_instance() -> &'static ConfigProto_Experimental {
4226 static mut instance: ::protobuf::lazy::Lazy<ConfigProto_Experimental> = ::protobuf::lazy::Lazy::INIT;
4227 unsafe {
4228 instance.get(ConfigProto_Experimental::new)
4229 }
4230 }
4231}
4232
4233impl ::protobuf::Clear for ConfigProto_Experimental {
4234 fn clear(&mut self) {
4235 self.collective_group_leader.clear();
4236 self.executor_type.clear();
4237 self.recv_buf_max_chunk = 0;
4238 self.use_numa_affinity = false;
4239 self.collective_deterministic_sequential_execution = false;
4240 self.collective_nccl = false;
4241 self.share_session_state_in_clusterspec_propagation = false;
4242 self.disable_thread_spinning = false;
4243 self.share_cluster_devices_in_session = false;
4244 self.session_metadata.clear();
4245 self.optimize_for_static_graph = false;
4246 self.enable_mlir_bridge = false;
4247 self.enable_mlir_graph_optimization = false;
4248 self.disable_output_partition_graphs = false;
4249 self.xla_fusion_autotuner_thresh = 0;
4250 self.unknown_fields.clear();
4251 }
4252}
4253
4254impl ::std::fmt::Debug for ConfigProto_Experimental {
4255 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4256 ::protobuf::text_format::fmt(self, f)
4257 }
4258}
4259
4260impl ::protobuf::reflect::ProtobufValue for ConfigProto_Experimental {
4261 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4262 ::protobuf::reflect::ReflectValueRef::Message(self)
4263 }
4264}
4265
4266#[derive(PartialEq,Clone,Default)]
4267pub struct RunOptions {
4268 pub trace_level: RunOptions_TraceLevel,
4270 pub timeout_in_ms: i64,
4271 pub inter_op_thread_pool: i32,
4272 pub output_partition_graphs: bool,
4273 pub debug_options: ::protobuf::SingularPtrField<super::debug::DebugOptions>,
4274 pub report_tensor_allocations_upon_oom: bool,
4275 pub experimental: ::protobuf::SingularPtrField<RunOptions_Experimental>,
4276 pub unknown_fields: ::protobuf::UnknownFields,
4278 pub cached_size: ::protobuf::CachedSize,
4279}
4280
4281impl<'a> ::std::default::Default for &'a RunOptions {
4282 fn default() -> &'a RunOptions {
4283 <RunOptions as ::protobuf::Message>::default_instance()
4284 }
4285}
4286
4287impl RunOptions {
4288 pub fn new() -> RunOptions {
4289 ::std::default::Default::default()
4290 }
4291
4292 pub fn get_trace_level(&self) -> RunOptions_TraceLevel {
4296 self.trace_level
4297 }
4298 pub fn clear_trace_level(&mut self) {
4299 self.trace_level = RunOptions_TraceLevel::NO_TRACE;
4300 }
4301
4302 pub fn set_trace_level(&mut self, v: RunOptions_TraceLevel) {
4304 self.trace_level = v;
4305 }
4306
4307 pub fn get_timeout_in_ms(&self) -> i64 {
4311 self.timeout_in_ms
4312 }
4313 pub fn clear_timeout_in_ms(&mut self) {
4314 self.timeout_in_ms = 0;
4315 }
4316
4317 pub fn set_timeout_in_ms(&mut self, v: i64) {
4319 self.timeout_in_ms = v;
4320 }
4321
4322 pub fn get_inter_op_thread_pool(&self) -> i32 {
4326 self.inter_op_thread_pool
4327 }
4328 pub fn clear_inter_op_thread_pool(&mut self) {
4329 self.inter_op_thread_pool = 0;
4330 }
4331
4332 pub fn set_inter_op_thread_pool(&mut self, v: i32) {
4334 self.inter_op_thread_pool = v;
4335 }
4336
4337 pub fn get_output_partition_graphs(&self) -> bool {
4341 self.output_partition_graphs
4342 }
4343 pub fn clear_output_partition_graphs(&mut self) {
4344 self.output_partition_graphs = false;
4345 }
4346
4347 pub fn set_output_partition_graphs(&mut self, v: bool) {
4349 self.output_partition_graphs = v;
4350 }
4351
4352 pub fn get_debug_options(&self) -> &super::debug::DebugOptions {
4356 self.debug_options.as_ref().unwrap_or_else(|| super::debug::DebugOptions::default_instance())
4357 }
4358 pub fn clear_debug_options(&mut self) {
4359 self.debug_options.clear();
4360 }
4361
4362 pub fn has_debug_options(&self) -> bool {
4363 self.debug_options.is_some()
4364 }
4365
4366 pub fn set_debug_options(&mut self, v: super::debug::DebugOptions) {
4368 self.debug_options = ::protobuf::SingularPtrField::some(v);
4369 }
4370
4371 pub fn mut_debug_options(&mut self) -> &mut super::debug::DebugOptions {
4374 if self.debug_options.is_none() {
4375 self.debug_options.set_default();
4376 }
4377 self.debug_options.as_mut().unwrap()
4378 }
4379
4380 pub fn take_debug_options(&mut self) -> super::debug::DebugOptions {
4382 self.debug_options.take().unwrap_or_else(|| super::debug::DebugOptions::new())
4383 }
4384
4385 pub fn get_report_tensor_allocations_upon_oom(&self) -> bool {
4389 self.report_tensor_allocations_upon_oom
4390 }
4391 pub fn clear_report_tensor_allocations_upon_oom(&mut self) {
4392 self.report_tensor_allocations_upon_oom = false;
4393 }
4394
4395 pub fn set_report_tensor_allocations_upon_oom(&mut self, v: bool) {
4397 self.report_tensor_allocations_upon_oom = v;
4398 }
4399
4400 pub fn get_experimental(&self) -> &RunOptions_Experimental {
4404 self.experimental.as_ref().unwrap_or_else(|| RunOptions_Experimental::default_instance())
4405 }
4406 pub fn clear_experimental(&mut self) {
4407 self.experimental.clear();
4408 }
4409
4410 pub fn has_experimental(&self) -> bool {
4411 self.experimental.is_some()
4412 }
4413
4414 pub fn set_experimental(&mut self, v: RunOptions_Experimental) {
4416 self.experimental = ::protobuf::SingularPtrField::some(v);
4417 }
4418
4419 pub fn mut_experimental(&mut self) -> &mut RunOptions_Experimental {
4422 if self.experimental.is_none() {
4423 self.experimental.set_default();
4424 }
4425 self.experimental.as_mut().unwrap()
4426 }
4427
4428 pub fn take_experimental(&mut self) -> RunOptions_Experimental {
4430 self.experimental.take().unwrap_or_else(|| RunOptions_Experimental::new())
4431 }
4432}
4433
4434impl ::protobuf::Message for RunOptions {
4435 fn is_initialized(&self) -> bool {
4436 for v in &self.debug_options {
4437 if !v.is_initialized() {
4438 return false;
4439 }
4440 };
4441 for v in &self.experimental {
4442 if !v.is_initialized() {
4443 return false;
4444 }
4445 };
4446 true
4447 }
4448
4449 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4450 while !is.eof()? {
4451 let (field_number, wire_type) = is.read_tag_unpack()?;
4452 match field_number {
4453 1 => {
4454 ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.trace_level, 1, &mut self.unknown_fields)?
4455 },
4456 2 => {
4457 if wire_type != ::protobuf::wire_format::WireTypeVarint {
4458 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4459 }
4460 let tmp = is.read_int64()?;
4461 self.timeout_in_ms = tmp;
4462 },
4463 3 => {
4464 if wire_type != ::protobuf::wire_format::WireTypeVarint {
4465 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4466 }
4467 let tmp = is.read_int32()?;
4468 self.inter_op_thread_pool = tmp;
4469 },
4470 5 => {
4471 if wire_type != ::protobuf::wire_format::WireTypeVarint {
4472 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4473 }
4474 let tmp = is.read_bool()?;
4475 self.output_partition_graphs = tmp;
4476 },
4477 6 => {
4478 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.debug_options)?;
4479 },
4480 7 => {
4481 if wire_type != ::protobuf::wire_format::WireTypeVarint {
4482 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4483 }
4484 let tmp = is.read_bool()?;
4485 self.report_tensor_allocations_upon_oom = tmp;
4486 },
4487 8 => {
4488 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.experimental)?;
4489 },
4490 _ => {
4491 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4492 },
4493 };
4494 }
4495 ::std::result::Result::Ok(())
4496 }
4497
4498 #[allow(unused_variables)]
4500 fn compute_size(&self) -> u32 {
4501 let mut my_size = 0;
4502 if self.trace_level != RunOptions_TraceLevel::NO_TRACE {
4503 my_size += ::protobuf::rt::enum_size(1, self.trace_level);
4504 }
4505 if self.timeout_in_ms != 0 {
4506 my_size += ::protobuf::rt::value_size(2, self.timeout_in_ms, ::protobuf::wire_format::WireTypeVarint);
4507 }
4508 if self.inter_op_thread_pool != 0 {
4509 my_size += ::protobuf::rt::value_size(3, self.inter_op_thread_pool, ::protobuf::wire_format::WireTypeVarint);
4510 }
4511 if self.output_partition_graphs != false {
4512 my_size += 2;
4513 }
4514 if let Some(ref v) = self.debug_options.as_ref() {
4515 let len = v.compute_size();
4516 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4517 }
4518 if self.report_tensor_allocations_upon_oom != false {
4519 my_size += 2;
4520 }
4521 if let Some(ref v) = self.experimental.as_ref() {
4522 let len = v.compute_size();
4523 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4524 }
4525 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4526 self.cached_size.set(my_size);
4527 my_size
4528 }
4529
4530 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4531 if self.trace_level != RunOptions_TraceLevel::NO_TRACE {
4532 os.write_enum(1, self.trace_level.value())?;
4533 }
4534 if self.timeout_in_ms != 0 {
4535 os.write_int64(2, self.timeout_in_ms)?;
4536 }
4537 if self.inter_op_thread_pool != 0 {
4538 os.write_int32(3, self.inter_op_thread_pool)?;
4539 }
4540 if self.output_partition_graphs != false {
4541 os.write_bool(5, self.output_partition_graphs)?;
4542 }
4543 if let Some(ref v) = self.debug_options.as_ref() {
4544 os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4545 os.write_raw_varint32(v.get_cached_size())?;
4546 v.write_to_with_cached_sizes(os)?;
4547 }
4548 if self.report_tensor_allocations_upon_oom != false {
4549 os.write_bool(7, self.report_tensor_allocations_upon_oom)?;
4550 }
4551 if let Some(ref v) = self.experimental.as_ref() {
4552 os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4553 os.write_raw_varint32(v.get_cached_size())?;
4554 v.write_to_with_cached_sizes(os)?;
4555 }
4556 os.write_unknown_fields(self.get_unknown_fields())?;
4557 ::std::result::Result::Ok(())
4558 }
4559
4560 fn get_cached_size(&self) -> u32 {
4561 self.cached_size.get()
4562 }
4563
4564 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4565 &self.unknown_fields
4566 }
4567
4568 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4569 &mut self.unknown_fields
4570 }
4571
4572 fn as_any(&self) -> &dyn (::std::any::Any) {
4573 self as &dyn (::std::any::Any)
4574 }
4575 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4576 self as &mut dyn (::std::any::Any)
4577 }
4578 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4579 self
4580 }
4581
4582 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4583 Self::descriptor_static()
4584 }
4585
4586 fn new() -> RunOptions {
4587 RunOptions::new()
4588 }
4589
4590 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4591 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
4592 unsafe {
4593 descriptor.get(|| {
4594 let mut fields = ::std::vec::Vec::new();
4595 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<RunOptions_TraceLevel>>(
4596 "trace_level",
4597 |m: &RunOptions| { &m.trace_level },
4598 |m: &mut RunOptions| { &mut m.trace_level },
4599 ));
4600 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
4601 "timeout_in_ms",
4602 |m: &RunOptions| { &m.timeout_in_ms },
4603 |m: &mut RunOptions| { &mut m.timeout_in_ms },
4604 ));
4605 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
4606 "inter_op_thread_pool",
4607 |m: &RunOptions| { &m.inter_op_thread_pool },
4608 |m: &mut RunOptions| { &mut m.inter_op_thread_pool },
4609 ));
4610 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4611 "output_partition_graphs",
4612 |m: &RunOptions| { &m.output_partition_graphs },
4613 |m: &mut RunOptions| { &mut m.output_partition_graphs },
4614 ));
4615 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::debug::DebugOptions>>(
4616 "debug_options",
4617 |m: &RunOptions| { &m.debug_options },
4618 |m: &mut RunOptions| { &mut m.debug_options },
4619 ));
4620 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4621 "report_tensor_allocations_upon_oom",
4622 |m: &RunOptions| { &m.report_tensor_allocations_upon_oom },
4623 |m: &mut RunOptions| { &mut m.report_tensor_allocations_upon_oom },
4624 ));
4625 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RunOptions_Experimental>>(
4626 "experimental",
4627 |m: &RunOptions| { &m.experimental },
4628 |m: &mut RunOptions| { &mut m.experimental },
4629 ));
4630 ::protobuf::reflect::MessageDescriptor::new_pb_name::<RunOptions>(
4631 "RunOptions",
4632 fields,
4633 file_descriptor_proto()
4634 )
4635 })
4636 }
4637 }
4638
4639 fn default_instance() -> &'static RunOptions {
4640 static mut instance: ::protobuf::lazy::Lazy<RunOptions> = ::protobuf::lazy::Lazy::INIT;
4641 unsafe {
4642 instance.get(RunOptions::new)
4643 }
4644 }
4645}
4646
4647impl ::protobuf::Clear for RunOptions {
4648 fn clear(&mut self) {
4649 self.trace_level = RunOptions_TraceLevel::NO_TRACE;
4650 self.timeout_in_ms = 0;
4651 self.inter_op_thread_pool = 0;
4652 self.output_partition_graphs = false;
4653 self.debug_options.clear();
4654 self.report_tensor_allocations_upon_oom = false;
4655 self.experimental.clear();
4656 self.unknown_fields.clear();
4657 }
4658}
4659
4660impl ::std::fmt::Debug for RunOptions {
4661 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4662 ::protobuf::text_format::fmt(self, f)
4663 }
4664}
4665
4666impl ::protobuf::reflect::ProtobufValue for RunOptions {
4667 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4668 ::protobuf::reflect::ReflectValueRef::Message(self)
4669 }
4670}
4671
4672#[derive(PartialEq,Clone,Default)]
4673pub struct RunOptions_Experimental {
4674 pub collective_graph_key: i64,
4676 pub use_run_handler_pool: bool,
4677 pub run_handler_pool_options: ::protobuf::SingularPtrField<RunOptions_Experimental_RunHandlerPoolOptions>,
4678 pub unknown_fields: ::protobuf::UnknownFields,
4680 pub cached_size: ::protobuf::CachedSize,
4681}
4682
4683impl<'a> ::std::default::Default for &'a RunOptions_Experimental {
4684 fn default() -> &'a RunOptions_Experimental {
4685 <RunOptions_Experimental as ::protobuf::Message>::default_instance()
4686 }
4687}
4688
4689impl RunOptions_Experimental {
4690 pub fn new() -> RunOptions_Experimental {
4691 ::std::default::Default::default()
4692 }
4693
4694 pub fn get_collective_graph_key(&self) -> i64 {
4698 self.collective_graph_key
4699 }
4700 pub fn clear_collective_graph_key(&mut self) {
4701 self.collective_graph_key = 0;
4702 }
4703
4704 pub fn set_collective_graph_key(&mut self, v: i64) {
4706 self.collective_graph_key = v;
4707 }
4708
4709 pub fn get_use_run_handler_pool(&self) -> bool {
4713 self.use_run_handler_pool
4714 }
4715 pub fn clear_use_run_handler_pool(&mut self) {
4716 self.use_run_handler_pool = false;
4717 }
4718
4719 pub fn set_use_run_handler_pool(&mut self, v: bool) {
4721 self.use_run_handler_pool = v;
4722 }
4723
4724 pub fn get_run_handler_pool_options(&self) -> &RunOptions_Experimental_RunHandlerPoolOptions {
4728 self.run_handler_pool_options.as_ref().unwrap_or_else(|| RunOptions_Experimental_RunHandlerPoolOptions::default_instance())
4729 }
4730 pub fn clear_run_handler_pool_options(&mut self) {
4731 self.run_handler_pool_options.clear();
4732 }
4733
4734 pub fn has_run_handler_pool_options(&self) -> bool {
4735 self.run_handler_pool_options.is_some()
4736 }
4737
4738 pub fn set_run_handler_pool_options(&mut self, v: RunOptions_Experimental_RunHandlerPoolOptions) {
4740 self.run_handler_pool_options = ::protobuf::SingularPtrField::some(v);
4741 }
4742
4743 pub fn mut_run_handler_pool_options(&mut self) -> &mut RunOptions_Experimental_RunHandlerPoolOptions {
4746 if self.run_handler_pool_options.is_none() {
4747 self.run_handler_pool_options.set_default();
4748 }
4749 self.run_handler_pool_options.as_mut().unwrap()
4750 }
4751
4752 pub fn take_run_handler_pool_options(&mut self) -> RunOptions_Experimental_RunHandlerPoolOptions {
4754 self.run_handler_pool_options.take().unwrap_or_else(|| RunOptions_Experimental_RunHandlerPoolOptions::new())
4755 }
4756}
4757
4758impl ::protobuf::Message for RunOptions_Experimental {
4759 fn is_initialized(&self) -> bool {
4760 for v in &self.run_handler_pool_options {
4761 if !v.is_initialized() {
4762 return false;
4763 }
4764 };
4765 true
4766 }
4767
4768 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4769 while !is.eof()? {
4770 let (field_number, wire_type) = is.read_tag_unpack()?;
4771 match field_number {
4772 1 => {
4773 if wire_type != ::protobuf::wire_format::WireTypeVarint {
4774 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4775 }
4776 let tmp = is.read_int64()?;
4777 self.collective_graph_key = tmp;
4778 },
4779 2 => {
4780 if wire_type != ::protobuf::wire_format::WireTypeVarint {
4781 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4782 }
4783 let tmp = is.read_bool()?;
4784 self.use_run_handler_pool = tmp;
4785 },
4786 3 => {
4787 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.run_handler_pool_options)?;
4788 },
4789 _ => {
4790 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4791 },
4792 };
4793 }
4794 ::std::result::Result::Ok(())
4795 }
4796
4797 #[allow(unused_variables)]
4799 fn compute_size(&self) -> u32 {
4800 let mut my_size = 0;
4801 if self.collective_graph_key != 0 {
4802 my_size += ::protobuf::rt::value_size(1, self.collective_graph_key, ::protobuf::wire_format::WireTypeVarint);
4803 }
4804 if self.use_run_handler_pool != false {
4805 my_size += 2;
4806 }
4807 if let Some(ref v) = self.run_handler_pool_options.as_ref() {
4808 let len = v.compute_size();
4809 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
4810 }
4811 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4812 self.cached_size.set(my_size);
4813 my_size
4814 }
4815
4816 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4817 if self.collective_graph_key != 0 {
4818 os.write_int64(1, self.collective_graph_key)?;
4819 }
4820 if self.use_run_handler_pool != false {
4821 os.write_bool(2, self.use_run_handler_pool)?;
4822 }
4823 if let Some(ref v) = self.run_handler_pool_options.as_ref() {
4824 os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
4825 os.write_raw_varint32(v.get_cached_size())?;
4826 v.write_to_with_cached_sizes(os)?;
4827 }
4828 os.write_unknown_fields(self.get_unknown_fields())?;
4829 ::std::result::Result::Ok(())
4830 }
4831
4832 fn get_cached_size(&self) -> u32 {
4833 self.cached_size.get()
4834 }
4835
4836 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
4837 &self.unknown_fields
4838 }
4839
4840 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
4841 &mut self.unknown_fields
4842 }
4843
4844 fn as_any(&self) -> &dyn (::std::any::Any) {
4845 self as &dyn (::std::any::Any)
4846 }
4847 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
4848 self as &mut dyn (::std::any::Any)
4849 }
4850 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
4851 self
4852 }
4853
4854 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
4855 Self::descriptor_static()
4856 }
4857
4858 fn new() -> RunOptions_Experimental {
4859 RunOptions_Experimental::new()
4860 }
4861
4862 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
4863 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
4864 unsafe {
4865 descriptor.get(|| {
4866 let mut fields = ::std::vec::Vec::new();
4867 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
4868 "collective_graph_key",
4869 |m: &RunOptions_Experimental| { &m.collective_graph_key },
4870 |m: &mut RunOptions_Experimental| { &mut m.collective_graph_key },
4871 ));
4872 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
4873 "use_run_handler_pool",
4874 |m: &RunOptions_Experimental| { &m.use_run_handler_pool },
4875 |m: &mut RunOptions_Experimental| { &mut m.use_run_handler_pool },
4876 ));
4877 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RunOptions_Experimental_RunHandlerPoolOptions>>(
4878 "run_handler_pool_options",
4879 |m: &RunOptions_Experimental| { &m.run_handler_pool_options },
4880 |m: &mut RunOptions_Experimental| { &mut m.run_handler_pool_options },
4881 ));
4882 ::protobuf::reflect::MessageDescriptor::new_pb_name::<RunOptions_Experimental>(
4883 "RunOptions.Experimental",
4884 fields,
4885 file_descriptor_proto()
4886 )
4887 })
4888 }
4889 }
4890
4891 fn default_instance() -> &'static RunOptions_Experimental {
4892 static mut instance: ::protobuf::lazy::Lazy<RunOptions_Experimental> = ::protobuf::lazy::Lazy::INIT;
4893 unsafe {
4894 instance.get(RunOptions_Experimental::new)
4895 }
4896 }
4897}
4898
4899impl ::protobuf::Clear for RunOptions_Experimental {
4900 fn clear(&mut self) {
4901 self.collective_graph_key = 0;
4902 self.use_run_handler_pool = false;
4903 self.run_handler_pool_options.clear();
4904 self.unknown_fields.clear();
4905 }
4906}
4907
4908impl ::std::fmt::Debug for RunOptions_Experimental {
4909 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4910 ::protobuf::text_format::fmt(self, f)
4911 }
4912}
4913
4914impl ::protobuf::reflect::ProtobufValue for RunOptions_Experimental {
4915 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
4916 ::protobuf::reflect::ReflectValueRef::Message(self)
4917 }
4918}
4919
4920#[derive(PartialEq,Clone,Default)]
4921pub struct RunOptions_Experimental_RunHandlerPoolOptions {
4922 pub priority: i64,
4924 pub unknown_fields: ::protobuf::UnknownFields,
4926 pub cached_size: ::protobuf::CachedSize,
4927}
4928
4929impl<'a> ::std::default::Default for &'a RunOptions_Experimental_RunHandlerPoolOptions {
4930 fn default() -> &'a RunOptions_Experimental_RunHandlerPoolOptions {
4931 <RunOptions_Experimental_RunHandlerPoolOptions as ::protobuf::Message>::default_instance()
4932 }
4933}
4934
4935impl RunOptions_Experimental_RunHandlerPoolOptions {
4936 pub fn new() -> RunOptions_Experimental_RunHandlerPoolOptions {
4937 ::std::default::Default::default()
4938 }
4939
4940 pub fn get_priority(&self) -> i64 {
4944 self.priority
4945 }
4946 pub fn clear_priority(&mut self) {
4947 self.priority = 0;
4948 }
4949
4950 pub fn set_priority(&mut self, v: i64) {
4952 self.priority = v;
4953 }
4954}
4955
4956impl ::protobuf::Message for RunOptions_Experimental_RunHandlerPoolOptions {
4957 fn is_initialized(&self) -> bool {
4958 true
4959 }
4960
4961 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4962 while !is.eof()? {
4963 let (field_number, wire_type) = is.read_tag_unpack()?;
4964 match field_number {
4965 1 => {
4966 if wire_type != ::protobuf::wire_format::WireTypeVarint {
4967 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
4968 }
4969 let tmp = is.read_int64()?;
4970 self.priority = tmp;
4971 },
4972 _ => {
4973 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
4974 },
4975 };
4976 }
4977 ::std::result::Result::Ok(())
4978 }
4979
4980 #[allow(unused_variables)]
4982 fn compute_size(&self) -> u32 {
4983 let mut my_size = 0;
4984 if self.priority != 0 {
4985 my_size += ::protobuf::rt::value_size(1, self.priority, ::protobuf::wire_format::WireTypeVarint);
4986 }
4987 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
4988 self.cached_size.set(my_size);
4989 my_size
4990 }
4991
4992 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
4993 if self.priority != 0 {
4994 os.write_int64(1, self.priority)?;
4995 }
4996 os.write_unknown_fields(self.get_unknown_fields())?;
4997 ::std::result::Result::Ok(())
4998 }
4999
5000 fn get_cached_size(&self) -> u32 {
5001 self.cached_size.get()
5002 }
5003
5004 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5005 &self.unknown_fields
5006 }
5007
5008 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5009 &mut self.unknown_fields
5010 }
5011
5012 fn as_any(&self) -> &dyn (::std::any::Any) {
5013 self as &dyn (::std::any::Any)
5014 }
5015 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5016 self as &mut dyn (::std::any::Any)
5017 }
5018 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5019 self
5020 }
5021
5022 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5023 Self::descriptor_static()
5024 }
5025
5026 fn new() -> RunOptions_Experimental_RunHandlerPoolOptions {
5027 RunOptions_Experimental_RunHandlerPoolOptions::new()
5028 }
5029
5030 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5031 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
5032 unsafe {
5033 descriptor.get(|| {
5034 let mut fields = ::std::vec::Vec::new();
5035 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
5036 "priority",
5037 |m: &RunOptions_Experimental_RunHandlerPoolOptions| { &m.priority },
5038 |m: &mut RunOptions_Experimental_RunHandlerPoolOptions| { &mut m.priority },
5039 ));
5040 ::protobuf::reflect::MessageDescriptor::new_pb_name::<RunOptions_Experimental_RunHandlerPoolOptions>(
5041 "RunOptions.Experimental.RunHandlerPoolOptions",
5042 fields,
5043 file_descriptor_proto()
5044 )
5045 })
5046 }
5047 }
5048
5049 fn default_instance() -> &'static RunOptions_Experimental_RunHandlerPoolOptions {
5050 static mut instance: ::protobuf::lazy::Lazy<RunOptions_Experimental_RunHandlerPoolOptions> = ::protobuf::lazy::Lazy::INIT;
5051 unsafe {
5052 instance.get(RunOptions_Experimental_RunHandlerPoolOptions::new)
5053 }
5054 }
5055}
5056
5057impl ::protobuf::Clear for RunOptions_Experimental_RunHandlerPoolOptions {
5058 fn clear(&mut self) {
5059 self.priority = 0;
5060 self.unknown_fields.clear();
5061 }
5062}
5063
5064impl ::std::fmt::Debug for RunOptions_Experimental_RunHandlerPoolOptions {
5065 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5066 ::protobuf::text_format::fmt(self, f)
5067 }
5068}
5069
5070impl ::protobuf::reflect::ProtobufValue for RunOptions_Experimental_RunHandlerPoolOptions {
5071 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5072 ::protobuf::reflect::ReflectValueRef::Message(self)
5073 }
5074}
5075
5076#[derive(Clone,PartialEq,Eq,Debug,Hash)]
5077pub enum RunOptions_TraceLevel {
5078 NO_TRACE = 0,
5079 SOFTWARE_TRACE = 1,
5080 HARDWARE_TRACE = 2,
5081 FULL_TRACE = 3,
5082}
5083
5084impl ::protobuf::ProtobufEnum for RunOptions_TraceLevel {
5085 fn value(&self) -> i32 {
5086 *self as i32
5087 }
5088
5089 fn from_i32(value: i32) -> ::std::option::Option<RunOptions_TraceLevel> {
5090 match value {
5091 0 => ::std::option::Option::Some(RunOptions_TraceLevel::NO_TRACE),
5092 1 => ::std::option::Option::Some(RunOptions_TraceLevel::SOFTWARE_TRACE),
5093 2 => ::std::option::Option::Some(RunOptions_TraceLevel::HARDWARE_TRACE),
5094 3 => ::std::option::Option::Some(RunOptions_TraceLevel::FULL_TRACE),
5095 _ => ::std::option::Option::None
5096 }
5097 }
5098
5099 fn values() -> &'static [Self] {
5100 static values: &'static [RunOptions_TraceLevel] = &[
5101 RunOptions_TraceLevel::NO_TRACE,
5102 RunOptions_TraceLevel::SOFTWARE_TRACE,
5103 RunOptions_TraceLevel::HARDWARE_TRACE,
5104 RunOptions_TraceLevel::FULL_TRACE,
5105 ];
5106 values
5107 }
5108
5109 fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
5110 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy::INIT;
5111 unsafe {
5112 descriptor.get(|| {
5113 ::protobuf::reflect::EnumDescriptor::new_pb_name::<RunOptions_TraceLevel>("RunOptions.TraceLevel", file_descriptor_proto())
5114 })
5115 }
5116 }
5117}
5118
5119impl ::std::marker::Copy for RunOptions_TraceLevel {
5120}
5121
5122impl ::std::default::Default for RunOptions_TraceLevel {
5123 fn default() -> Self {
5124 RunOptions_TraceLevel::NO_TRACE
5125 }
5126}
5127
5128impl ::protobuf::reflect::ProtobufValue for RunOptions_TraceLevel {
5129 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5130 ::protobuf::reflect::ReflectValueRef::Enum(self.descriptor())
5131 }
5132}
5133
5134#[derive(PartialEq,Clone,Default)]
5135pub struct RunMetadata {
5136 pub step_stats: ::protobuf::SingularPtrField<super::step_stats::StepStats>,
5138 pub cost_graph: ::protobuf::SingularPtrField<super::cost_graph::CostGraphDef>,
5139 pub partition_graphs: ::protobuf::RepeatedField<super::graph::GraphDef>,
5140 pub function_graphs: ::protobuf::RepeatedField<RunMetadata_FunctionGraphs>,
5141 pub unknown_fields: ::protobuf::UnknownFields,
5143 pub cached_size: ::protobuf::CachedSize,
5144}
5145
5146impl<'a> ::std::default::Default for &'a RunMetadata {
5147 fn default() -> &'a RunMetadata {
5148 <RunMetadata as ::protobuf::Message>::default_instance()
5149 }
5150}
5151
5152impl RunMetadata {
5153 pub fn new() -> RunMetadata {
5154 ::std::default::Default::default()
5155 }
5156
5157 pub fn get_step_stats(&self) -> &super::step_stats::StepStats {
5161 self.step_stats.as_ref().unwrap_or_else(|| super::step_stats::StepStats::default_instance())
5162 }
5163 pub fn clear_step_stats(&mut self) {
5164 self.step_stats.clear();
5165 }
5166
5167 pub fn has_step_stats(&self) -> bool {
5168 self.step_stats.is_some()
5169 }
5170
5171 pub fn set_step_stats(&mut self, v: super::step_stats::StepStats) {
5173 self.step_stats = ::protobuf::SingularPtrField::some(v);
5174 }
5175
5176 pub fn mut_step_stats(&mut self) -> &mut super::step_stats::StepStats {
5179 if self.step_stats.is_none() {
5180 self.step_stats.set_default();
5181 }
5182 self.step_stats.as_mut().unwrap()
5183 }
5184
5185 pub fn take_step_stats(&mut self) -> super::step_stats::StepStats {
5187 self.step_stats.take().unwrap_or_else(|| super::step_stats::StepStats::new())
5188 }
5189
5190 pub fn get_cost_graph(&self) -> &super::cost_graph::CostGraphDef {
5194 self.cost_graph.as_ref().unwrap_or_else(|| super::cost_graph::CostGraphDef::default_instance())
5195 }
5196 pub fn clear_cost_graph(&mut self) {
5197 self.cost_graph.clear();
5198 }
5199
5200 pub fn has_cost_graph(&self) -> bool {
5201 self.cost_graph.is_some()
5202 }
5203
5204 pub fn set_cost_graph(&mut self, v: super::cost_graph::CostGraphDef) {
5206 self.cost_graph = ::protobuf::SingularPtrField::some(v);
5207 }
5208
5209 pub fn mut_cost_graph(&mut self) -> &mut super::cost_graph::CostGraphDef {
5212 if self.cost_graph.is_none() {
5213 self.cost_graph.set_default();
5214 }
5215 self.cost_graph.as_mut().unwrap()
5216 }
5217
5218 pub fn take_cost_graph(&mut self) -> super::cost_graph::CostGraphDef {
5220 self.cost_graph.take().unwrap_or_else(|| super::cost_graph::CostGraphDef::new())
5221 }
5222
5223 pub fn get_partition_graphs(&self) -> &[super::graph::GraphDef] {
5227 &self.partition_graphs
5228 }
5229 pub fn clear_partition_graphs(&mut self) {
5230 self.partition_graphs.clear();
5231 }
5232
5233 pub fn set_partition_graphs(&mut self, v: ::protobuf::RepeatedField<super::graph::GraphDef>) {
5235 self.partition_graphs = v;
5236 }
5237
5238 pub fn mut_partition_graphs(&mut self) -> &mut ::protobuf::RepeatedField<super::graph::GraphDef> {
5240 &mut self.partition_graphs
5241 }
5242
5243 pub fn take_partition_graphs(&mut self) -> ::protobuf::RepeatedField<super::graph::GraphDef> {
5245 ::std::mem::replace(&mut self.partition_graphs, ::protobuf::RepeatedField::new())
5246 }
5247
5248 pub fn get_function_graphs(&self) -> &[RunMetadata_FunctionGraphs] {
5252 &self.function_graphs
5253 }
5254 pub fn clear_function_graphs(&mut self) {
5255 self.function_graphs.clear();
5256 }
5257
5258 pub fn set_function_graphs(&mut self, v: ::protobuf::RepeatedField<RunMetadata_FunctionGraphs>) {
5260 self.function_graphs = v;
5261 }
5262
5263 pub fn mut_function_graphs(&mut self) -> &mut ::protobuf::RepeatedField<RunMetadata_FunctionGraphs> {
5265 &mut self.function_graphs
5266 }
5267
5268 pub fn take_function_graphs(&mut self) -> ::protobuf::RepeatedField<RunMetadata_FunctionGraphs> {
5270 ::std::mem::replace(&mut self.function_graphs, ::protobuf::RepeatedField::new())
5271 }
5272}
5273
5274impl ::protobuf::Message for RunMetadata {
5275 fn is_initialized(&self) -> bool {
5276 for v in &self.step_stats {
5277 if !v.is_initialized() {
5278 return false;
5279 }
5280 };
5281 for v in &self.cost_graph {
5282 if !v.is_initialized() {
5283 return false;
5284 }
5285 };
5286 for v in &self.partition_graphs {
5287 if !v.is_initialized() {
5288 return false;
5289 }
5290 };
5291 for v in &self.function_graphs {
5292 if !v.is_initialized() {
5293 return false;
5294 }
5295 };
5296 true
5297 }
5298
5299 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5300 while !is.eof()? {
5301 let (field_number, wire_type) = is.read_tag_unpack()?;
5302 match field_number {
5303 1 => {
5304 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.step_stats)?;
5305 },
5306 2 => {
5307 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.cost_graph)?;
5308 },
5309 3 => {
5310 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.partition_graphs)?;
5311 },
5312 4 => {
5313 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.function_graphs)?;
5314 },
5315 _ => {
5316 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5317 },
5318 };
5319 }
5320 ::std::result::Result::Ok(())
5321 }
5322
5323 #[allow(unused_variables)]
5325 fn compute_size(&self) -> u32 {
5326 let mut my_size = 0;
5327 if let Some(ref v) = self.step_stats.as_ref() {
5328 let len = v.compute_size();
5329 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5330 }
5331 if let Some(ref v) = self.cost_graph.as_ref() {
5332 let len = v.compute_size();
5333 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5334 }
5335 for value in &self.partition_graphs {
5336 let len = value.compute_size();
5337 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5338 };
5339 for value in &self.function_graphs {
5340 let len = value.compute_size();
5341 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5342 };
5343 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5344 self.cached_size.set(my_size);
5345 my_size
5346 }
5347
5348 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5349 if let Some(ref v) = self.step_stats.as_ref() {
5350 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5351 os.write_raw_varint32(v.get_cached_size())?;
5352 v.write_to_with_cached_sizes(os)?;
5353 }
5354 if let Some(ref v) = self.cost_graph.as_ref() {
5355 os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5356 os.write_raw_varint32(v.get_cached_size())?;
5357 v.write_to_with_cached_sizes(os)?;
5358 }
5359 for v in &self.partition_graphs {
5360 os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5361 os.write_raw_varint32(v.get_cached_size())?;
5362 v.write_to_with_cached_sizes(os)?;
5363 };
5364 for v in &self.function_graphs {
5365 os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5366 os.write_raw_varint32(v.get_cached_size())?;
5367 v.write_to_with_cached_sizes(os)?;
5368 };
5369 os.write_unknown_fields(self.get_unknown_fields())?;
5370 ::std::result::Result::Ok(())
5371 }
5372
5373 fn get_cached_size(&self) -> u32 {
5374 self.cached_size.get()
5375 }
5376
5377 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5378 &self.unknown_fields
5379 }
5380
5381 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5382 &mut self.unknown_fields
5383 }
5384
5385 fn as_any(&self) -> &dyn (::std::any::Any) {
5386 self as &dyn (::std::any::Any)
5387 }
5388 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5389 self as &mut dyn (::std::any::Any)
5390 }
5391 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5392 self
5393 }
5394
5395 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5396 Self::descriptor_static()
5397 }
5398
5399 fn new() -> RunMetadata {
5400 RunMetadata::new()
5401 }
5402
5403 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5404 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
5405 unsafe {
5406 descriptor.get(|| {
5407 let mut fields = ::std::vec::Vec::new();
5408 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::step_stats::StepStats>>(
5409 "step_stats",
5410 |m: &RunMetadata| { &m.step_stats },
5411 |m: &mut RunMetadata| { &mut m.step_stats },
5412 ));
5413 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::cost_graph::CostGraphDef>>(
5414 "cost_graph",
5415 |m: &RunMetadata| { &m.cost_graph },
5416 |m: &mut RunMetadata| { &mut m.cost_graph },
5417 ));
5418 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::graph::GraphDef>>(
5419 "partition_graphs",
5420 |m: &RunMetadata| { &m.partition_graphs },
5421 |m: &mut RunMetadata| { &mut m.partition_graphs },
5422 ));
5423 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RunMetadata_FunctionGraphs>>(
5424 "function_graphs",
5425 |m: &RunMetadata| { &m.function_graphs },
5426 |m: &mut RunMetadata| { &mut m.function_graphs },
5427 ));
5428 ::protobuf::reflect::MessageDescriptor::new_pb_name::<RunMetadata>(
5429 "RunMetadata",
5430 fields,
5431 file_descriptor_proto()
5432 )
5433 })
5434 }
5435 }
5436
5437 fn default_instance() -> &'static RunMetadata {
5438 static mut instance: ::protobuf::lazy::Lazy<RunMetadata> = ::protobuf::lazy::Lazy::INIT;
5439 unsafe {
5440 instance.get(RunMetadata::new)
5441 }
5442 }
5443}
5444
5445impl ::protobuf::Clear for RunMetadata {
5446 fn clear(&mut self) {
5447 self.step_stats.clear();
5448 self.cost_graph.clear();
5449 self.partition_graphs.clear();
5450 self.function_graphs.clear();
5451 self.unknown_fields.clear();
5452 }
5453}
5454
5455impl ::std::fmt::Debug for RunMetadata {
5456 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5457 ::protobuf::text_format::fmt(self, f)
5458 }
5459}
5460
5461impl ::protobuf::reflect::ProtobufValue for RunMetadata {
5462 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5463 ::protobuf::reflect::ReflectValueRef::Message(self)
5464 }
5465}
5466
5467#[derive(PartialEq,Clone,Default)]
5468pub struct RunMetadata_FunctionGraphs {
5469 pub partition_graphs: ::protobuf::RepeatedField<super::graph::GraphDef>,
5471 pub pre_optimization_graph: ::protobuf::SingularPtrField<super::graph::GraphDef>,
5472 pub post_optimization_graph: ::protobuf::SingularPtrField<super::graph::GraphDef>,
5473 pub unknown_fields: ::protobuf::UnknownFields,
5475 pub cached_size: ::protobuf::CachedSize,
5476}
5477
5478impl<'a> ::std::default::Default for &'a RunMetadata_FunctionGraphs {
5479 fn default() -> &'a RunMetadata_FunctionGraphs {
5480 <RunMetadata_FunctionGraphs as ::protobuf::Message>::default_instance()
5481 }
5482}
5483
5484impl RunMetadata_FunctionGraphs {
5485 pub fn new() -> RunMetadata_FunctionGraphs {
5486 ::std::default::Default::default()
5487 }
5488
5489 pub fn get_partition_graphs(&self) -> &[super::graph::GraphDef] {
5493 &self.partition_graphs
5494 }
5495 pub fn clear_partition_graphs(&mut self) {
5496 self.partition_graphs.clear();
5497 }
5498
5499 pub fn set_partition_graphs(&mut self, v: ::protobuf::RepeatedField<super::graph::GraphDef>) {
5501 self.partition_graphs = v;
5502 }
5503
5504 pub fn mut_partition_graphs(&mut self) -> &mut ::protobuf::RepeatedField<super::graph::GraphDef> {
5506 &mut self.partition_graphs
5507 }
5508
5509 pub fn take_partition_graphs(&mut self) -> ::protobuf::RepeatedField<super::graph::GraphDef> {
5511 ::std::mem::replace(&mut self.partition_graphs, ::protobuf::RepeatedField::new())
5512 }
5513
5514 pub fn get_pre_optimization_graph(&self) -> &super::graph::GraphDef {
5518 self.pre_optimization_graph.as_ref().unwrap_or_else(|| super::graph::GraphDef::default_instance())
5519 }
5520 pub fn clear_pre_optimization_graph(&mut self) {
5521 self.pre_optimization_graph.clear();
5522 }
5523
5524 pub fn has_pre_optimization_graph(&self) -> bool {
5525 self.pre_optimization_graph.is_some()
5526 }
5527
5528 pub fn set_pre_optimization_graph(&mut self, v: super::graph::GraphDef) {
5530 self.pre_optimization_graph = ::protobuf::SingularPtrField::some(v);
5531 }
5532
5533 pub fn mut_pre_optimization_graph(&mut self) -> &mut super::graph::GraphDef {
5536 if self.pre_optimization_graph.is_none() {
5537 self.pre_optimization_graph.set_default();
5538 }
5539 self.pre_optimization_graph.as_mut().unwrap()
5540 }
5541
5542 pub fn take_pre_optimization_graph(&mut self) -> super::graph::GraphDef {
5544 self.pre_optimization_graph.take().unwrap_or_else(|| super::graph::GraphDef::new())
5545 }
5546
5547 pub fn get_post_optimization_graph(&self) -> &super::graph::GraphDef {
5551 self.post_optimization_graph.as_ref().unwrap_or_else(|| super::graph::GraphDef::default_instance())
5552 }
5553 pub fn clear_post_optimization_graph(&mut self) {
5554 self.post_optimization_graph.clear();
5555 }
5556
5557 pub fn has_post_optimization_graph(&self) -> bool {
5558 self.post_optimization_graph.is_some()
5559 }
5560
5561 pub fn set_post_optimization_graph(&mut self, v: super::graph::GraphDef) {
5563 self.post_optimization_graph = ::protobuf::SingularPtrField::some(v);
5564 }
5565
5566 pub fn mut_post_optimization_graph(&mut self) -> &mut super::graph::GraphDef {
5569 if self.post_optimization_graph.is_none() {
5570 self.post_optimization_graph.set_default();
5571 }
5572 self.post_optimization_graph.as_mut().unwrap()
5573 }
5574
5575 pub fn take_post_optimization_graph(&mut self) -> super::graph::GraphDef {
5577 self.post_optimization_graph.take().unwrap_or_else(|| super::graph::GraphDef::new())
5578 }
5579}
5580
5581impl ::protobuf::Message for RunMetadata_FunctionGraphs {
5582 fn is_initialized(&self) -> bool {
5583 for v in &self.partition_graphs {
5584 if !v.is_initialized() {
5585 return false;
5586 }
5587 };
5588 for v in &self.pre_optimization_graph {
5589 if !v.is_initialized() {
5590 return false;
5591 }
5592 };
5593 for v in &self.post_optimization_graph {
5594 if !v.is_initialized() {
5595 return false;
5596 }
5597 };
5598 true
5599 }
5600
5601 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5602 while !is.eof()? {
5603 let (field_number, wire_type) = is.read_tag_unpack()?;
5604 match field_number {
5605 1 => {
5606 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.partition_graphs)?;
5607 },
5608 2 => {
5609 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.pre_optimization_graph)?;
5610 },
5611 3 => {
5612 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.post_optimization_graph)?;
5613 },
5614 _ => {
5615 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5616 },
5617 };
5618 }
5619 ::std::result::Result::Ok(())
5620 }
5621
5622 #[allow(unused_variables)]
5624 fn compute_size(&self) -> u32 {
5625 let mut my_size = 0;
5626 for value in &self.partition_graphs {
5627 let len = value.compute_size();
5628 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5629 };
5630 if let Some(ref v) = self.pre_optimization_graph.as_ref() {
5631 let len = v.compute_size();
5632 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5633 }
5634 if let Some(ref v) = self.post_optimization_graph.as_ref() {
5635 let len = v.compute_size();
5636 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
5637 }
5638 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5639 self.cached_size.set(my_size);
5640 my_size
5641 }
5642
5643 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5644 for v in &self.partition_graphs {
5645 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5646 os.write_raw_varint32(v.get_cached_size())?;
5647 v.write_to_with_cached_sizes(os)?;
5648 };
5649 if let Some(ref v) = self.pre_optimization_graph.as_ref() {
5650 os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5651 os.write_raw_varint32(v.get_cached_size())?;
5652 v.write_to_with_cached_sizes(os)?;
5653 }
5654 if let Some(ref v) = self.post_optimization_graph.as_ref() {
5655 os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
5656 os.write_raw_varint32(v.get_cached_size())?;
5657 v.write_to_with_cached_sizes(os)?;
5658 }
5659 os.write_unknown_fields(self.get_unknown_fields())?;
5660 ::std::result::Result::Ok(())
5661 }
5662
5663 fn get_cached_size(&self) -> u32 {
5664 self.cached_size.get()
5665 }
5666
5667 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5668 &self.unknown_fields
5669 }
5670
5671 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5672 &mut self.unknown_fields
5673 }
5674
5675 fn as_any(&self) -> &dyn (::std::any::Any) {
5676 self as &dyn (::std::any::Any)
5677 }
5678 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5679 self as &mut dyn (::std::any::Any)
5680 }
5681 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5682 self
5683 }
5684
5685 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5686 Self::descriptor_static()
5687 }
5688
5689 fn new() -> RunMetadata_FunctionGraphs {
5690 RunMetadata_FunctionGraphs::new()
5691 }
5692
5693 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5694 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
5695 unsafe {
5696 descriptor.get(|| {
5697 let mut fields = ::std::vec::Vec::new();
5698 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::graph::GraphDef>>(
5699 "partition_graphs",
5700 |m: &RunMetadata_FunctionGraphs| { &m.partition_graphs },
5701 |m: &mut RunMetadata_FunctionGraphs| { &mut m.partition_graphs },
5702 ));
5703 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::graph::GraphDef>>(
5704 "pre_optimization_graph",
5705 |m: &RunMetadata_FunctionGraphs| { &m.pre_optimization_graph },
5706 |m: &mut RunMetadata_FunctionGraphs| { &mut m.pre_optimization_graph },
5707 ));
5708 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::graph::GraphDef>>(
5709 "post_optimization_graph",
5710 |m: &RunMetadata_FunctionGraphs| { &m.post_optimization_graph },
5711 |m: &mut RunMetadata_FunctionGraphs| { &mut m.post_optimization_graph },
5712 ));
5713 ::protobuf::reflect::MessageDescriptor::new_pb_name::<RunMetadata_FunctionGraphs>(
5714 "RunMetadata.FunctionGraphs",
5715 fields,
5716 file_descriptor_proto()
5717 )
5718 })
5719 }
5720 }
5721
5722 fn default_instance() -> &'static RunMetadata_FunctionGraphs {
5723 static mut instance: ::protobuf::lazy::Lazy<RunMetadata_FunctionGraphs> = ::protobuf::lazy::Lazy::INIT;
5724 unsafe {
5725 instance.get(RunMetadata_FunctionGraphs::new)
5726 }
5727 }
5728}
5729
5730impl ::protobuf::Clear for RunMetadata_FunctionGraphs {
5731 fn clear(&mut self) {
5732 self.partition_graphs.clear();
5733 self.pre_optimization_graph.clear();
5734 self.post_optimization_graph.clear();
5735 self.unknown_fields.clear();
5736 }
5737}
5738
5739impl ::std::fmt::Debug for RunMetadata_FunctionGraphs {
5740 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5741 ::protobuf::text_format::fmt(self, f)
5742 }
5743}
5744
5745impl ::protobuf::reflect::ProtobufValue for RunMetadata_FunctionGraphs {
5746 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5747 ::protobuf::reflect::ReflectValueRef::Message(self)
5748 }
5749}
5750
5751#[derive(PartialEq,Clone,Default)]
5752pub struct TensorConnection {
5753 pub from_tensor: ::std::string::String,
5755 pub to_tensor: ::std::string::String,
5756 pub unknown_fields: ::protobuf::UnknownFields,
5758 pub cached_size: ::protobuf::CachedSize,
5759}
5760
5761impl<'a> ::std::default::Default for &'a TensorConnection {
5762 fn default() -> &'a TensorConnection {
5763 <TensorConnection as ::protobuf::Message>::default_instance()
5764 }
5765}
5766
5767impl TensorConnection {
5768 pub fn new() -> TensorConnection {
5769 ::std::default::Default::default()
5770 }
5771
5772 pub fn get_from_tensor(&self) -> &str {
5776 &self.from_tensor
5777 }
5778 pub fn clear_from_tensor(&mut self) {
5779 self.from_tensor.clear();
5780 }
5781
5782 pub fn set_from_tensor(&mut self, v: ::std::string::String) {
5784 self.from_tensor = v;
5785 }
5786
5787 pub fn mut_from_tensor(&mut self) -> &mut ::std::string::String {
5790 &mut self.from_tensor
5791 }
5792
5793 pub fn take_from_tensor(&mut self) -> ::std::string::String {
5795 ::std::mem::replace(&mut self.from_tensor, ::std::string::String::new())
5796 }
5797
5798 pub fn get_to_tensor(&self) -> &str {
5802 &self.to_tensor
5803 }
5804 pub fn clear_to_tensor(&mut self) {
5805 self.to_tensor.clear();
5806 }
5807
5808 pub fn set_to_tensor(&mut self, v: ::std::string::String) {
5810 self.to_tensor = v;
5811 }
5812
5813 pub fn mut_to_tensor(&mut self) -> &mut ::std::string::String {
5816 &mut self.to_tensor
5817 }
5818
5819 pub fn take_to_tensor(&mut self) -> ::std::string::String {
5821 ::std::mem::replace(&mut self.to_tensor, ::std::string::String::new())
5822 }
5823}
5824
5825impl ::protobuf::Message for TensorConnection {
5826 fn is_initialized(&self) -> bool {
5827 true
5828 }
5829
5830 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5831 while !is.eof()? {
5832 let (field_number, wire_type) = is.read_tag_unpack()?;
5833 match field_number {
5834 1 => {
5835 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.from_tensor)?;
5836 },
5837 2 => {
5838 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.to_tensor)?;
5839 },
5840 _ => {
5841 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
5842 },
5843 };
5844 }
5845 ::std::result::Result::Ok(())
5846 }
5847
5848 #[allow(unused_variables)]
5850 fn compute_size(&self) -> u32 {
5851 let mut my_size = 0;
5852 if !self.from_tensor.is_empty() {
5853 my_size += ::protobuf::rt::string_size(1, &self.from_tensor);
5854 }
5855 if !self.to_tensor.is_empty() {
5856 my_size += ::protobuf::rt::string_size(2, &self.to_tensor);
5857 }
5858 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
5859 self.cached_size.set(my_size);
5860 my_size
5861 }
5862
5863 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
5864 if !self.from_tensor.is_empty() {
5865 os.write_string(1, &self.from_tensor)?;
5866 }
5867 if !self.to_tensor.is_empty() {
5868 os.write_string(2, &self.to_tensor)?;
5869 }
5870 os.write_unknown_fields(self.get_unknown_fields())?;
5871 ::std::result::Result::Ok(())
5872 }
5873
5874 fn get_cached_size(&self) -> u32 {
5875 self.cached_size.get()
5876 }
5877
5878 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
5879 &self.unknown_fields
5880 }
5881
5882 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
5883 &mut self.unknown_fields
5884 }
5885
5886 fn as_any(&self) -> &dyn (::std::any::Any) {
5887 self as &dyn (::std::any::Any)
5888 }
5889 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
5890 self as &mut dyn (::std::any::Any)
5891 }
5892 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
5893 self
5894 }
5895
5896 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
5897 Self::descriptor_static()
5898 }
5899
5900 fn new() -> TensorConnection {
5901 TensorConnection::new()
5902 }
5903
5904 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
5905 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
5906 unsafe {
5907 descriptor.get(|| {
5908 let mut fields = ::std::vec::Vec::new();
5909 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5910 "from_tensor",
5911 |m: &TensorConnection| { &m.from_tensor },
5912 |m: &mut TensorConnection| { &mut m.from_tensor },
5913 ));
5914 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
5915 "to_tensor",
5916 |m: &TensorConnection| { &m.to_tensor },
5917 |m: &mut TensorConnection| { &mut m.to_tensor },
5918 ));
5919 ::protobuf::reflect::MessageDescriptor::new_pb_name::<TensorConnection>(
5920 "TensorConnection",
5921 fields,
5922 file_descriptor_proto()
5923 )
5924 })
5925 }
5926 }
5927
5928 fn default_instance() -> &'static TensorConnection {
5929 static mut instance: ::protobuf::lazy::Lazy<TensorConnection> = ::protobuf::lazy::Lazy::INIT;
5930 unsafe {
5931 instance.get(TensorConnection::new)
5932 }
5933 }
5934}
5935
5936impl ::protobuf::Clear for TensorConnection {
5937 fn clear(&mut self) {
5938 self.from_tensor.clear();
5939 self.to_tensor.clear();
5940 self.unknown_fields.clear();
5941 }
5942}
5943
5944impl ::std::fmt::Debug for TensorConnection {
5945 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5946 ::protobuf::text_format::fmt(self, f)
5947 }
5948}
5949
5950impl ::protobuf::reflect::ProtobufValue for TensorConnection {
5951 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
5952 ::protobuf::reflect::ReflectValueRef::Message(self)
5953 }
5954}
5955
5956#[derive(PartialEq,Clone,Default)]
5957pub struct CallableOptions {
5958 pub feed: ::protobuf::RepeatedField<::std::string::String>,
5960 pub fetch: ::protobuf::RepeatedField<::std::string::String>,
5961 pub target: ::protobuf::RepeatedField<::std::string::String>,
5962 pub run_options: ::protobuf::SingularPtrField<RunOptions>,
5963 pub tensor_connection: ::protobuf::RepeatedField<TensorConnection>,
5964 pub feed_devices: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
5965 pub fetch_devices: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
5966 pub fetch_skip_sync: bool,
5967 pub unknown_fields: ::protobuf::UnknownFields,
5969 pub cached_size: ::protobuf::CachedSize,
5970}
5971
5972impl<'a> ::std::default::Default for &'a CallableOptions {
5973 fn default() -> &'a CallableOptions {
5974 <CallableOptions as ::protobuf::Message>::default_instance()
5975 }
5976}
5977
5978impl CallableOptions {
5979 pub fn new() -> CallableOptions {
5980 ::std::default::Default::default()
5981 }
5982
5983 pub fn get_feed(&self) -> &[::std::string::String] {
5987 &self.feed
5988 }
5989 pub fn clear_feed(&mut self) {
5990 self.feed.clear();
5991 }
5992
5993 pub fn set_feed(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
5995 self.feed = v;
5996 }
5997
5998 pub fn mut_feed(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
6000 &mut self.feed
6001 }
6002
6003 pub fn take_feed(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
6005 ::std::mem::replace(&mut self.feed, ::protobuf::RepeatedField::new())
6006 }
6007
6008 pub fn get_fetch(&self) -> &[::std::string::String] {
6012 &self.fetch
6013 }
6014 pub fn clear_fetch(&mut self) {
6015 self.fetch.clear();
6016 }
6017
6018 pub fn set_fetch(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
6020 self.fetch = v;
6021 }
6022
6023 pub fn mut_fetch(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
6025 &mut self.fetch
6026 }
6027
6028 pub fn take_fetch(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
6030 ::std::mem::replace(&mut self.fetch, ::protobuf::RepeatedField::new())
6031 }
6032
6033 pub fn get_target(&self) -> &[::std::string::String] {
6037 &self.target
6038 }
6039 pub fn clear_target(&mut self) {
6040 self.target.clear();
6041 }
6042
6043 pub fn set_target(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
6045 self.target = v;
6046 }
6047
6048 pub fn mut_target(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
6050 &mut self.target
6051 }
6052
6053 pub fn take_target(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
6055 ::std::mem::replace(&mut self.target, ::protobuf::RepeatedField::new())
6056 }
6057
6058 pub fn get_run_options(&self) -> &RunOptions {
6062 self.run_options.as_ref().unwrap_or_else(|| RunOptions::default_instance())
6063 }
6064 pub fn clear_run_options(&mut self) {
6065 self.run_options.clear();
6066 }
6067
6068 pub fn has_run_options(&self) -> bool {
6069 self.run_options.is_some()
6070 }
6071
6072 pub fn set_run_options(&mut self, v: RunOptions) {
6074 self.run_options = ::protobuf::SingularPtrField::some(v);
6075 }
6076
6077 pub fn mut_run_options(&mut self) -> &mut RunOptions {
6080 if self.run_options.is_none() {
6081 self.run_options.set_default();
6082 }
6083 self.run_options.as_mut().unwrap()
6084 }
6085
6086 pub fn take_run_options(&mut self) -> RunOptions {
6088 self.run_options.take().unwrap_or_else(|| RunOptions::new())
6089 }
6090
6091 pub fn get_tensor_connection(&self) -> &[TensorConnection] {
6095 &self.tensor_connection
6096 }
6097 pub fn clear_tensor_connection(&mut self) {
6098 self.tensor_connection.clear();
6099 }
6100
6101 pub fn set_tensor_connection(&mut self, v: ::protobuf::RepeatedField<TensorConnection>) {
6103 self.tensor_connection = v;
6104 }
6105
6106 pub fn mut_tensor_connection(&mut self) -> &mut ::protobuf::RepeatedField<TensorConnection> {
6108 &mut self.tensor_connection
6109 }
6110
6111 pub fn take_tensor_connection(&mut self) -> ::protobuf::RepeatedField<TensorConnection> {
6113 ::std::mem::replace(&mut self.tensor_connection, ::protobuf::RepeatedField::new())
6114 }
6115
6116 pub fn get_feed_devices(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
6120 &self.feed_devices
6121 }
6122 pub fn clear_feed_devices(&mut self) {
6123 self.feed_devices.clear();
6124 }
6125
6126 pub fn set_feed_devices(&mut self, v: ::std::collections::HashMap<::std::string::String, ::std::string::String>) {
6128 self.feed_devices = v;
6129 }
6130
6131 pub fn mut_feed_devices(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::std::string::String> {
6133 &mut self.feed_devices
6134 }
6135
6136 pub fn take_feed_devices(&mut self) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
6138 ::std::mem::replace(&mut self.feed_devices, ::std::collections::HashMap::new())
6139 }
6140
6141 pub fn get_fetch_devices(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
6145 &self.fetch_devices
6146 }
6147 pub fn clear_fetch_devices(&mut self) {
6148 self.fetch_devices.clear();
6149 }
6150
6151 pub fn set_fetch_devices(&mut self, v: ::std::collections::HashMap<::std::string::String, ::std::string::String>) {
6153 self.fetch_devices = v;
6154 }
6155
6156 pub fn mut_fetch_devices(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::std::string::String> {
6158 &mut self.fetch_devices
6159 }
6160
6161 pub fn take_fetch_devices(&mut self) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
6163 ::std::mem::replace(&mut self.fetch_devices, ::std::collections::HashMap::new())
6164 }
6165
6166 pub fn get_fetch_skip_sync(&self) -> bool {
6170 self.fetch_skip_sync
6171 }
6172 pub fn clear_fetch_skip_sync(&mut self) {
6173 self.fetch_skip_sync = false;
6174 }
6175
6176 pub fn set_fetch_skip_sync(&mut self, v: bool) {
6178 self.fetch_skip_sync = v;
6179 }
6180}
6181
6182impl ::protobuf::Message for CallableOptions {
6183 fn is_initialized(&self) -> bool {
6184 for v in &self.run_options {
6185 if !v.is_initialized() {
6186 return false;
6187 }
6188 };
6189 for v in &self.tensor_connection {
6190 if !v.is_initialized() {
6191 return false;
6192 }
6193 };
6194 true
6195 }
6196
6197 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6198 while !is.eof()? {
6199 let (field_number, wire_type) = is.read_tag_unpack()?;
6200 match field_number {
6201 1 => {
6202 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.feed)?;
6203 },
6204 2 => {
6205 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.fetch)?;
6206 },
6207 3 => {
6208 ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.target)?;
6209 },
6210 4 => {
6211 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.run_options)?;
6212 },
6213 5 => {
6214 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.tensor_connection)?;
6215 },
6216 6 => {
6217 ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(wire_type, is, &mut self.feed_devices)?;
6218 },
6219 7 => {
6220 ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(wire_type, is, &mut self.fetch_devices)?;
6221 },
6222 8 => {
6223 if wire_type != ::protobuf::wire_format::WireTypeVarint {
6224 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
6225 }
6226 let tmp = is.read_bool()?;
6227 self.fetch_skip_sync = tmp;
6228 },
6229 _ => {
6230 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
6231 },
6232 };
6233 }
6234 ::std::result::Result::Ok(())
6235 }
6236
6237 #[allow(unused_variables)]
6239 fn compute_size(&self) -> u32 {
6240 let mut my_size = 0;
6241 for value in &self.feed {
6242 my_size += ::protobuf::rt::string_size(1, &value);
6243 };
6244 for value in &self.fetch {
6245 my_size += ::protobuf::rt::string_size(2, &value);
6246 };
6247 for value in &self.target {
6248 my_size += ::protobuf::rt::string_size(3, &value);
6249 };
6250 if let Some(ref v) = self.run_options.as_ref() {
6251 let len = v.compute_size();
6252 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6253 }
6254 for value in &self.tensor_connection {
6255 let len = value.compute_size();
6256 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
6257 };
6258 my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(6, &self.feed_devices);
6259 my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(7, &self.fetch_devices);
6260 if self.fetch_skip_sync != false {
6261 my_size += 2;
6262 }
6263 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
6264 self.cached_size.set(my_size);
6265 my_size
6266 }
6267
6268 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
6269 for v in &self.feed {
6270 os.write_string(1, &v)?;
6271 };
6272 for v in &self.fetch {
6273 os.write_string(2, &v)?;
6274 };
6275 for v in &self.target {
6276 os.write_string(3, &v)?;
6277 };
6278 if let Some(ref v) = self.run_options.as_ref() {
6279 os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6280 os.write_raw_varint32(v.get_cached_size())?;
6281 v.write_to_with_cached_sizes(os)?;
6282 }
6283 for v in &self.tensor_connection {
6284 os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
6285 os.write_raw_varint32(v.get_cached_size())?;
6286 v.write_to_with_cached_sizes(os)?;
6287 };
6288 ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(6, &self.feed_devices, os)?;
6289 ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(7, &self.fetch_devices, os)?;
6290 if self.fetch_skip_sync != false {
6291 os.write_bool(8, self.fetch_skip_sync)?;
6292 }
6293 os.write_unknown_fields(self.get_unknown_fields())?;
6294 ::std::result::Result::Ok(())
6295 }
6296
6297 fn get_cached_size(&self) -> u32 {
6298 self.cached_size.get()
6299 }
6300
6301 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
6302 &self.unknown_fields
6303 }
6304
6305 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
6306 &mut self.unknown_fields
6307 }
6308
6309 fn as_any(&self) -> &dyn (::std::any::Any) {
6310 self as &dyn (::std::any::Any)
6311 }
6312 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
6313 self as &mut dyn (::std::any::Any)
6314 }
6315 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
6316 self
6317 }
6318
6319 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
6320 Self::descriptor_static()
6321 }
6322
6323 fn new() -> CallableOptions {
6324 CallableOptions::new()
6325 }
6326
6327 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
6328 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
6329 unsafe {
6330 descriptor.get(|| {
6331 let mut fields = ::std::vec::Vec::new();
6332 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6333 "feed",
6334 |m: &CallableOptions| { &m.feed },
6335 |m: &mut CallableOptions| { &mut m.feed },
6336 ));
6337 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6338 "fetch",
6339 |m: &CallableOptions| { &m.fetch },
6340 |m: &mut CallableOptions| { &mut m.fetch },
6341 ));
6342 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
6343 "target",
6344 |m: &CallableOptions| { &m.target },
6345 |m: &mut CallableOptions| { &mut m.target },
6346 ));
6347 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<RunOptions>>(
6348 "run_options",
6349 |m: &CallableOptions| { &m.run_options },
6350 |m: &mut CallableOptions| { &mut m.run_options },
6351 ));
6352 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<TensorConnection>>(
6353 "tensor_connection",
6354 |m: &CallableOptions| { &m.tensor_connection },
6355 |m: &mut CallableOptions| { &mut m.tensor_connection },
6356 ));
6357 fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(
6358 "feed_devices",
6359 |m: &CallableOptions| { &m.feed_devices },
6360 |m: &mut CallableOptions| { &mut m.feed_devices },
6361 ));
6362 fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(
6363 "fetch_devices",
6364 |m: &CallableOptions| { &m.fetch_devices },
6365 |m: &mut CallableOptions| { &mut m.fetch_devices },
6366 ));
6367 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
6368 "fetch_skip_sync",
6369 |m: &CallableOptions| { &m.fetch_skip_sync },
6370 |m: &mut CallableOptions| { &mut m.fetch_skip_sync },
6371 ));
6372 ::protobuf::reflect::MessageDescriptor::new_pb_name::<CallableOptions>(
6373 "CallableOptions",
6374 fields,
6375 file_descriptor_proto()
6376 )
6377 })
6378 }
6379 }
6380
6381 fn default_instance() -> &'static CallableOptions {
6382 static mut instance: ::protobuf::lazy::Lazy<CallableOptions> = ::protobuf::lazy::Lazy::INIT;
6383 unsafe {
6384 instance.get(CallableOptions::new)
6385 }
6386 }
6387}
6388
6389impl ::protobuf::Clear for CallableOptions {
6390 fn clear(&mut self) {
6391 self.feed.clear();
6392 self.fetch.clear();
6393 self.target.clear();
6394 self.run_options.clear();
6395 self.tensor_connection.clear();
6396 self.feed_devices.clear();
6397 self.fetch_devices.clear();
6398 self.fetch_skip_sync = false;
6399 self.unknown_fields.clear();
6400 }
6401}
6402
6403impl ::std::fmt::Debug for CallableOptions {
6404 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
6405 ::protobuf::text_format::fmt(self, f)
6406 }
6407}
6408
6409impl ::protobuf::reflect::ProtobufValue for CallableOptions {
6410 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
6411 ::protobuf::reflect::ReflectValueRef::Message(self)
6412 }
6413}
6414
6415static file_descriptor_proto_data: &'static [u8] = b"\
6416 \n%tensorflow/core/protobuf/config.proto\x12\ntensorflow\x1a*tensorflow/\
6417 core/framework/cost_graph.proto\x1a%tensorflow/core/framework/graph.prot\
6418 o\x1a*tensorflow/core/framework/step_stats.proto\x1a&tensorflow/core/pro\
6419 tobuf/cluster.proto\x1a$tensorflow/core/protobuf/debug.proto\x1a.tensorf\
6420 low/core/protobuf/rewriter_config.proto\"\xca\x08\n\nGPUOptions\x12D\n\
6421 \x1fper_process_gpu_memory_fraction\x18\x01\x20\x01(\x01R\x1bperProcessG\
6422 puMemoryFraction\x12!\n\x0callow_growth\x18\x04\x20\x01(\x08R\x0ballowGr\
6423 owth\x12%\n\x0eallocator_type\x18\x02\x20\x01(\tR\rallocatorType\x126\n\
6424 \x17deferred_deletion_bytes\x18\x03\x20\x01(\x03R\x15deferredDeletionByt\
6425 es\x12.\n\x13visible_device_list\x18\x05\x20\x01(\tR\x11visibleDeviceLis\
6426 t\x12;\n\x1apolling_active_delay_usecs\x18\x06\x20\x01(\x05R\x17pollingA\
6427 ctiveDelayUsecs\x12?\n\x1cpolling_inactive_delay_msecs\x18\x07\x20\x01(\
6428 \x05R\x19pollingInactiveDelayMsecs\x120\n\x14force_gpu_compatible\x18\
6429 \x08\x20\x01(\x08R\x12forceGpuCompatible\x12G\n\x0cexperimental\x18\t\
6430 \x20\x01(\x0b2#.tensorflow.GPUOptions.ExperimentalR\x0cexperimental\x1a\
6431 \xca\x04\n\x0cExperimental\x12[\n\x0fvirtual_devices\x18\x01\x20\x03(\
6432 \x0b22.tensorflow.GPUOptions.Experimental.VirtualDevicesR\x0evirtualDevi\
6433 ces\x12,\n\x12use_unified_memory\x18\x02\x20\x01(\x08R\x10useUnifiedMemo\
6434 ry\x12;\n\x1bnum_dev_to_dev_copy_streams\x18\x03\x20\x01(\x05R\x16numDev\
6435 ToDevCopyStreams\x122\n\x15collective_ring_order\x18\x04\x20\x01(\tR\x13\
6436 collectiveRingOrder\x123\n\x15timestamped_allocator\x18\x05\x20\x01(\x08\
6437 R\x14timestampedAllocator\x12=\n\x1bkernel_tracker_max_interval\x18\x07\
6438 \x20\x01(\x05R\x18kernelTrackerMaxInterval\x127\n\x18kernel_tracker_max_\
6439 bytes\x18\x08\x20\x01(\x05R\x15kernelTrackerMaxBytes\x12;\n\x1akernel_tr\
6440 acker_max_pending\x18\t\x20\x01(\x05R\x17kernelTrackerMaxPending\x1aT\n\
6441 \x0eVirtualDevices\x12&\n\x0fmemory_limit_mb\x18\x01\x20\x03(\x02R\rmemo\
6442 ryLimitMb\x12\x1a\n\x08priority\x18\x02\x20\x03(\x05R\x08priority\"\x82\
6443 \x04\n\x10OptimizerOptions\x12M\n#do_common_subexpression_elimination\
6444 \x18\x01\x20\x01(\x08R\x20doCommonSubexpressionElimination\x12.\n\x13do_\
6445 constant_folding\x18\x02\x20\x01(\x08R\x11doConstantFolding\x12>\n\x1cma\
6446 x_folded_constant_in_bytes\x18\x06\x20\x01(\x03R\x18maxFoldedConstantInB\
6447 ytes\x120\n\x14do_function_inlining\x18\x04\x20\x01(\x08R\x12doFunctionI\
6448 nlining\x12?\n\topt_level\x18\x03\x20\x01(\x0e2\".tensorflow.OptimizerOp\
6449 tions.LevelR\x08optLevel\x12U\n\x10global_jit_level\x18\x05\x20\x01(\x0e\
6450 2+.tensorflow.OptimizerOptions.GlobalJitLevelR\x0eglobalJitLevel\"\x20\n\
6451 \x05Level\x12\x06\n\x02L1\x10\0\x12\x0f\n\x02L0\x10\xff\xff\xff\xff\xff\
6452 \xff\xff\xff\xff\x01\"C\n\x0eGlobalJitLevel\x12\x0b\n\x07DEFAULT\x10\0\
6453 \x12\x10\n\x03OFF\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x08\n\
6454 \x04ON_1\x10\x01\x12\x08\n\x04ON_2\x10\x02\"\x90\x04\n\x0cGraphOptions\
6455 \x124\n\x16enable_recv_scheduling\x18\x02\x20\x01(\x08R\x14enableRecvSch\
6456 eduling\x12I\n\x11optimizer_options\x18\x03\x20\x01(\x0b2\x1c.tensorflow\
6457 .OptimizerOptionsR\x10optimizerOptions\x12(\n\x10build_cost_model\x18\
6458 \x04\x20\x01(\x03R\x0ebuildCostModel\x123\n\x16build_cost_model_after\
6459 \x18\t\x20\x01(\x03R\x13buildCostModelAfter\x12!\n\x0cinfer_shapes\x18\
6460 \x05\x20\x01(\x08R\x0binferShapes\x12,\n\x12place_pruned_graph\x18\x06\
6461 \x20\x01(\x08R\x10placePrunedGraph\x128\n\x18enable_bfloat16_sendrecv\
6462 \x18\x07\x20\x01(\x08R\x16enableBfloat16Sendrecv\x12#\n\rtimeline_step\
6463 \x18\x08\x20\x01(\x05R\x0ctimelineStep\x12C\n\x0frewrite_options\x18\n\
6464 \x20\x01(\x0b2\x1a.tensorflow.RewriterConfigR\x0erewriteOptionsJ\x04\x08\
6465 \x01\x10\x02R%skip_common_subexpression_elimination\"Y\n\x15ThreadPoolOp\
6466 tionProto\x12\x1f\n\x0bnum_threads\x18\x01\x20\x01(\x05R\nnumThreads\x12\
6467 \x1f\n\x0bglobal_name\x18\x02\x20\x01(\tR\nglobalName\"\xa9\x02\n\nRPCOp\
6468 tions\x12>\n\x1cuse_rpc_for_inprocess_master\x18\x01\x20\x01(\x08R\x18us\
6469 eRpcForInprocessMaster\x123\n\x15compression_algorithm\x18\x02\x20\x01(\
6470 \tR\x14compressionAlgorithm\x12+\n\x11compression_level\x18\x03\x20\x01(\
6471 \x05R\x10compressionLevel\x12,\n\x12cache_rpc_response\x18\x04\x20\x01(\
6472 \x08R\x10cacheRpcResponse\x12K\n\"disable_session_connection_sharing\x18\
6473 \x05\x20\x01(\x08R\x1fdisableSessionConnectionSharing\"?\n\x0fSessionMet\
6474 adata\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x18\n\x07version\
6475 \x18\x02\x20\x01(\x03R\x07version\"\x8b\x10\n\x0bConfigProto\x12K\n\x0cd\
6476 evice_count\x18\x01\x20\x03(\x0b2(.tensorflow.ConfigProto.DeviceCountEnt\
6477 ryR\x0bdeviceCount\x12?\n\x1cintra_op_parallelism_threads\x18\x02\x20\
6478 \x01(\x05R\x19intraOpParallelismThreads\x12?\n\x1cinter_op_parallelism_t\
6479 hreads\x18\x05\x20\x01(\x05R\x19interOpParallelismThreads\x125\n\x17use_\
6480 per_session_threads\x18\t\x20\x01(\x08R\x14usePerSessionThreads\x12a\n\
6481 \x1csession_inter_op_thread_pool\x18\x0c\x20\x03(\x0b2!.tensorflow.Threa\
6482 dPoolOptionProtoR\x18sessionInterOpThreadPool\x12)\n\x10placement_period\
6483 \x18\x03\x20\x01(\x05R\x0fplacementPeriod\x12%\n\x0edevice_filters\x18\
6484 \x04\x20\x03(\tR\rdeviceFilters\x127\n\x0bgpu_options\x18\x06\x20\x01(\
6485 \x0b2\x16.tensorflow.GPUOptionsR\ngpuOptions\x120\n\x14allow_soft_placem\
6486 ent\x18\x07\x20\x01(\x08R\x12allowSoftPlacement\x120\n\x14log_device_pla\
6487 cement\x18\x08\x20\x01(\x08R\x12logDevicePlacement\x12=\n\rgraph_options\
6488 \x18\n\x20\x01(\x0b2\x18.tensorflow.GraphOptionsR\x0cgraphOptions\x125\n\
6489 \x17operation_timeout_in_ms\x18\x0b\x20\x01(\x03R\x14operationTimeoutInM\
6490 s\x127\n\x0brpc_options\x18\r\x20\x01(\x0b2\x16.tensorflow.RPCOptionsR\n\
6491 rpcOptions\x127\n\x0bcluster_def\x18\x0e\x20\x01(\x0b2\x16.tensorflow.Cl\
6492 usterDefR\nclusterDef\x122\n\x15isolate_session_state\x18\x0f\x20\x01(\
6493 \x08R\x13isolateSessionState\x12F\n\x20share_cluster_devices_in_session\
6494 \x18\x11\x20\x01(\x08R\x1cshareClusterDevicesInSession\x12H\n\x0cexperim\
6495 ental\x18\x10\x20\x01(\x0b2$.tensorflow.ConfigProto.ExperimentalR\x0cexp\
6496 erimental\x1a>\n\x10DeviceCountEntry\x12\x10\n\x03key\x18\x01\x20\x01(\t\
6497 R\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\x05R\x05value:\x028\x01\x1a\
6498 \xb5\x07\n\x0cExperimental\x126\n\x17collective_group_leader\x18\x01\x20\
6499 \x01(\tR\x15collectiveGroupLeader\x12#\n\rexecutor_type\x18\x03\x20\x01(\
6500 \tR\x0cexecutorType\x12+\n\x12recv_buf_max_chunk\x18\x04\x20\x01(\x05R\
6501 \x0frecvBufMaxChunk\x12*\n\x11use_numa_affinity\x18\x05\x20\x01(\x08R\
6502 \x0fuseNumaAffinity\x12a\n-collective_deterministic_sequential_execution\
6503 \x18\x06\x20\x01(\x08R*collectiveDeterministicSequentialExecution\x12'\n\
6504 \x0fcollective_nccl\x18\x07\x20\x01(\x08R\x0ecollectiveNccl\x12a\n.share\
6505 _session_state_in_clusterspec_propagation\x18\x08\x20\x01(\x08R)shareSes\
6506 sionStateInClusterspecPropagation\x126\n\x17disable_thread_spinning\x18\
6507 \t\x20\x01(\x08R\x15disableThreadSpinning\x12F\n\x20share_cluster_device\
6508 s_in_session\x18\n\x20\x01(\x08R\x1cshareClusterDevicesInSession\x12F\n\
6509 \x10session_metadata\x18\x0b\x20\x01(\x0b2\x1b.tensorflow.SessionMetadat\
6510 aR\x0fsessionMetadata\x129\n\x19optimize_for_static_graph\x18\x0c\x20\
6511 \x01(\x08R\x16optimizeForStaticGraph\x12,\n\x12enable_mlir_bridge\x18\r\
6512 \x20\x01(\x08R\x10enableMlirBridge\x12C\n\x1eenable_mlir_graph_optimizat\
6513 ion\x18\x10\x20\x01(\x08R\x1benableMlirGraphOptimization\x12E\n\x1fdisab\
6514 le_output_partition_graphs\x18\x0e\x20\x01(\x08R\x1cdisableOutputPartiti\
6515 onGraphs\x12=\n\x1bxla_fusion_autotuner_thresh\x18\x0f\x20\x01(\x03R\x18\
6516 xlaFusionAutotunerThreshJ\x04\x08\x02\x10\x03\"\xa8\x06\n\nRunOptions\
6517 \x12B\n\x0btrace_level\x18\x01\x20\x01(\x0e2!.tensorflow.RunOptions.Trac\
6518 eLevelR\ntraceLevel\x12\"\n\rtimeout_in_ms\x18\x02\x20\x01(\x03R\x0btime\
6519 outInMs\x12/\n\x14inter_op_thread_pool\x18\x03\x20\x01(\x05R\x11interOpT\
6520 hreadPool\x126\n\x17output_partition_graphs\x18\x05\x20\x01(\x08R\x15out\
6521 putPartitionGraphs\x12=\n\rdebug_options\x18\x06\x20\x01(\x0b2\x18.tenso\
6522 rflow.DebugOptionsR\x0cdebugOptions\x12J\n\"report_tensor_allocations_up\
6523 on_oom\x18\x07\x20\x01(\x08R\x1ereportTensorAllocationsUponOom\x12G\n\
6524 \x0cexperimental\x18\x08\x20\x01(\x0b2#.tensorflow.RunOptions.Experiment\
6525 alR\x0cexperimental\x1a\x9a\x02\n\x0cExperimental\x120\n\x14collective_g\
6526 raph_key\x18\x01\x20\x01(\x03R\x12collectiveGraphKey\x12/\n\x14use_run_h\
6527 andler_pool\x18\x02\x20\x01(\x08R\x11useRunHandlerPool\x12r\n\x18run_han\
6528 dler_pool_options\x18\x03\x20\x01(\x0b29.tensorflow.RunOptions.Experimen\
6529 tal.RunHandlerPoolOptionsR\x15runHandlerPoolOptions\x1a3\n\x15RunHandler\
6530 PoolOptions\x12\x1a\n\x08priority\x18\x01\x20\x01(\x03R\x08priority\"R\n\
6531 \nTraceLevel\x12\x0c\n\x08NO_TRACE\x10\0\x12\x12\n\x0eSOFTWARE_TRACE\x10\
6532 \x01\x12\x12\n\x0eHARDWARE_TRACE\x10\x02\x12\x0e\n\nFULL_TRACE\x10\x03J\
6533 \x04\x08\x04\x10\x05\"\xfc\x03\n\x0bRunMetadata\x124\n\nstep_stats\x18\
6534 \x01\x20\x01(\x0b2\x15.tensorflow.StepStatsR\tstepStats\x127\n\ncost_gra\
6535 ph\x18\x02\x20\x01(\x0b2\x18.tensorflow.CostGraphDefR\tcostGraph\x12?\n\
6536 \x10partition_graphs\x18\x03\x20\x03(\x0b2\x14.tensorflow.GraphDefR\x0fp\
6537 artitionGraphs\x12O\n\x0ffunction_graphs\x18\x04\x20\x03(\x0b2&.tensorfl\
6538 ow.RunMetadata.FunctionGraphsR\x0efunctionGraphs\x1a\xeb\x01\n\x0eFuncti\
6539 onGraphs\x12?\n\x10partition_graphs\x18\x01\x20\x03(\x0b2\x14.tensorflow\
6540 .GraphDefR\x0fpartitionGraphs\x12J\n\x16pre_optimization_graph\x18\x02\
6541 \x20\x01(\x0b2\x14.tensorflow.GraphDefR\x14preOptimizationGraph\x12L\n\
6542 \x17post_optimization_graph\x18\x03\x20\x01(\x0b2\x14.tensorflow.GraphDe\
6543 fR\x15postOptimizationGraph\"P\n\x10TensorConnection\x12\x1f\n\x0bfrom_t\
6544 ensor\x18\x01\x20\x01(\tR\nfromTensor\x12\x1b\n\tto_tensor\x18\x02\x20\
6545 \x01(\tR\x08toTensor\"\xa5\x04\n\x0fCallableOptions\x12\x12\n\x04feed\
6546 \x18\x01\x20\x03(\tR\x04feed\x12\x14\n\x05fetch\x18\x02\x20\x03(\tR\x05f\
6547 etch\x12\x16\n\x06target\x18\x03\x20\x03(\tR\x06target\x127\n\x0brun_opt\
6548 ions\x18\x04\x20\x01(\x0b2\x16.tensorflow.RunOptionsR\nrunOptions\x12I\n\
6549 \x11tensor_connection\x18\x05\x20\x03(\x0b2\x1c.tensorflow.TensorConnect\
6550 ionR\x10tensorConnection\x12O\n\x0cfeed_devices\x18\x06\x20\x03(\x0b2,.t\
6551 ensorflow.CallableOptions.FeedDevicesEntryR\x0bfeedDevices\x12R\n\rfetch\
6552 _devices\x18\x07\x20\x03(\x0b2-.tensorflow.CallableOptions.FetchDevicesE\
6553 ntryR\x0cfetchDevices\x12&\n\x0ffetch_skip_sync\x18\x08\x20\x01(\x08R\rf\
6554 etchSkipSync\x1a>\n\x10FeedDevicesEntry\x12\x10\n\x03key\x18\x01\x20\x01\
6555 (\tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\tR\x05value:\x028\x01\
6556 \x1a?\n\x11FetchDevicesEntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\
6557 \x12\x14\n\x05value\x18\x02\x20\x01(\tR\x05value:\x028\x01Bw\n\x18org.te\
6558 nsorflow.frameworkB\x0cConfigProtosP\x01ZHgithub.com/tensorflow/tensorfl\
6559 ow/tensorflow/go/core/core_protos_go_proto\xf8\x01\x01J\xe8\x96\x02\n\
6560 \x07\x12\x05\0\0\xa7\x06\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\
6561 \x02\x12\x03\x02\0\x13\n\t\n\x02\x03\0\x12\x03\x04\04\n\t\n\x02\x03\x01\
6562 \x12\x03\x05\0/\n\t\n\x02\x03\x02\x12\x03\x06\04\n\t\n\x02\x03\x03\x12\
6563 \x03\x07\00\n\t\n\x02\x03\x04\x12\x03\x08\0.\n\t\n\x02\x03\x05\x12\x03\t\
6564 \08\n\x08\n\x01\x08\x12\x03\x0b\0\x1f\n\t\n\x02\x08\x1f\x12\x03\x0b\0\
6565 \x1f\n\x08\n\x01\x08\x12\x03\x0c\0-\n\t\n\x02\x08\x08\x12\x03\x0c\0-\n\
6566 \x08\n\x01\x08\x12\x03\r\0\"\n\t\n\x02\x08\n\x12\x03\r\0\"\n\x08\n\x01\
6567 \x08\x12\x03\x0e\01\n\t\n\x02\x08\x01\x12\x03\x0e\01\n\x08\n\x01\x08\x12\
6568 \x03\x0f\0_\n\t\n\x02\x08\x0b\x12\x03\x0f\0_\n\x0b\n\x02\x04\0\x12\x05\
6569 \x11\0\xcd\x01\x01\n\n\n\x03\x04\0\x01\x12\x03\x11\x08\x12\n\xe2\x07\n\
6570 \x04\x04\0\x02\0\x12\x03#\x02-\x1a\xd4\x07\x20Fraction\x20of\x20the\x20a\
6571 vailable\x20GPU\x20memory\x20to\x20allocate\x20for\x20each\x20process.\n\
6572 \x201\x20means\x20to\x20allocate\x20all\x20of\x20the\x20GPU\x20memory,\
6573 \x200.5\x20means\x20the\x20process\n\x20allocates\x20up\x20to\x20~50%\
6574 \x20of\x20the\x20available\x20GPU\x20memory.\n\n\x20GPU\x20memory\x20is\
6575 \x20pre-allocated\x20unless\x20the\x20allow_growth\x20option\x20is\x20en\
6576 abled.\n\n\x20If\x20greater\x20than\x201.0,\x20uses\x20CUDA\x20unified\
6577 \x20memory\x20to\x20potentially\x20oversubscribe\n\x20the\x20amount\x20o\
6578 f\x20memory\x20available\x20on\x20the\x20GPU\x20device\x20by\x20using\
6579 \x20host\x20memory\x20as\x20a\n\x20swap\x20space.\x20Accessing\x20memory\
6580 \x20not\x20available\x20on\x20the\x20device\x20will\x20be\n\x20significa\
6581 ntly\x20slower\x20as\x20that\x20would\x20require\x20memory\x20transfer\
6582 \x20between\x20the\x20host\n\x20and\x20the\x20device.\x20Options\x20to\
6583 \x20reduce\x20the\x20memory\x20requirement\x20should\x20be\n\x20consider\
6584 ed\x20before\x20enabling\x20this\x20option\x20as\x20this\x20may\x20come\
6585 \x20with\x20a\x20negative\n\x20performance\x20impact.\x20Oversubscriptio\
6586 n\x20using\x20the\x20unified\x20memory\x20requires\n\x20Pascal\x20class\
6587 \x20or\x20newer\x20GPUs\x20and\x20it\x20is\x20currently\x20only\x20suppo\
6588 rted\x20on\x20the\x20Linux\n\x20operating\x20system.\x20See\n\x20https:/\
6589 /docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#um-requirement\
6590 s\n\x20for\x20the\x20detailed\x20requirements.\n\n\x0c\n\x05\x04\0\x02\0\
6591 \x05\x12\x03#\x02\x08\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03#\t(\n\x0c\n\
6592 \x05\x04\0\x02\0\x03\x12\x03#+,\n\x93\x01\n\x04\x04\0\x02\x01\x12\x03'\
6593 \x02\x18\x1a\x85\x01\x20If\x20true,\x20the\x20allocator\x20does\x20not\
6594 \x20pre-allocate\x20the\x20entire\x20specified\n\x20GPU\x20memory\x20reg\
6595 ion,\x20instead\x20starting\x20small\x20and\x20growing\x20as\x20needed.\
6596 \n\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03'\x02\x06\n\x0c\n\x05\x04\0\x02\
6597 \x01\x01\x12\x03'\x07\x13\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03'\x16\x17\
6598 \n\x8b\x02\n\x04\x04\0\x02\x02\x12\x031\x02\x1c\x1a\xfd\x01\x20The\x20ty\
6599 pe\x20of\x20GPU\x20allocation\x20strategy\x20to\x20use.\n\n\x20Allowed\
6600 \x20values:\n\x20\"\":\x20The\x20empty\x20string\x20(default)\x20uses\
6601 \x20a\x20system-chosen\x20default\n\x20\x20\x20\x20\x20which\x20may\x20c\
6602 hange\x20over\x20time.\n\n\x20\"BFC\":\x20A\x20\"Best-fit\x20with\x20coa\
6603 lescing\"\x20algorithm,\x20simplified\x20from\x20a\n\x20\x20\x20\x20\x20\
6604 \x20\x20\x20version\x20of\x20dlmalloc.\n\n\x0c\n\x05\x04\0\x02\x02\x05\
6605 \x12\x031\x02\x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x031\t\x17\n\x0c\n\
6606 \x05\x04\0\x02\x02\x03\x12\x031\x1a\x1b\n\xb2\x01\n\x04\x04\0\x02\x03\
6607 \x12\x036\x02$\x1a\xa4\x01\x20Delay\x20deletion\x20of\x20up\x20to\x20thi\
6608 s\x20many\x20bytes\x20to\x20reduce\x20the\x20number\x20of\n\x20interacti\
6609 ons\x20with\x20gpu\x20driver\x20code.\x20\x20If\x200,\x20the\x20system\
6610 \x20chooses\n\x20a\x20reasonable\x20default\x20(several\x20MBs).\n\n\x0c\
6611 \n\x05\x04\0\x02\x03\x05\x12\x036\x02\x07\n\x0c\n\x05\x04\0\x02\x03\x01\
6612 \x12\x036\x08\x1f\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x036\"#\n\xdc\t\n\
6613 \x04\x04\0\x02\x04\x12\x03M\x02!\x1a\xce\t\x20A\x20comma-separated\x20li\
6614 st\x20of\x20GPU\x20ids\x20that\x20determines\x20the\x20'visible'\n\x20to\
6615 \x20'virtual'\x20mapping\x20of\x20GPU\x20devices.\x20\x20For\x20example,\
6616 \x20if\x20TensorFlow\n\x20can\x20see\x208\x20GPU\x20devices\x20in\x20the\
6617 \x20process,\x20and\x20one\x20wanted\x20to\x20map\n\x20visible\x20GPU\
6618 \x20devices\x205\x20and\x203\x20as\x20\"/device:GPU:0\",\x20and\x20\"/de\
6619 vice:GPU:1\",\n\x20then\x20one\x20would\x20specify\x20this\x20field\x20a\
6620 s\x20\"5,3\".\x20\x20This\x20field\x20is\x20similar\x20in\n\x20spirit\
6621 \x20to\x20the\x20CUDA_VISIBLE_DEVICES\x20environment\x20variable,\x20exc\
6622 ept\n\x20it\x20applies\x20to\x20the\x20visible\x20GPU\x20devices\x20in\
6623 \x20the\x20process.\n\n\x20NOTE:\n\x201.\x20The\x20GPU\x20driver\x20prov\
6624 ides\x20the\x20process\x20with\x20the\x20visible\x20GPUs\n\x20\x20\x20\
6625 \x20in\x20an\x20order\x20which\x20is\x20not\x20guaranteed\x20to\x20have\
6626 \x20any\x20correlation\x20to\n\x20\x20\x20\x20the\x20*physical*\x20GPU\
6627 \x20id\x20in\x20the\x20machine.\x20\x20This\x20field\x20is\x20used\x20fo\
6628 r\n\x20\x20\x20\x20remapping\x20\"visible\"\x20to\x20\"virtual\",\x20whi\
6629 ch\x20means\x20this\x20operates\x20only\n\x20\x20\x20\x20after\x20the\
6630 \x20process\x20starts.\x20\x20Users\x20are\x20required\x20to\x20use\x20v\
6631 endor\n\x20\x20\x20\x20specific\x20mechanisms\x20(e.g.,\x20CUDA_VISIBLE_\
6632 DEVICES)\x20to\x20control\x20the\n\x20\x20\x20\x20physical\x20to\x20visi\
6633 ble\x20device\x20mapping\x20prior\x20to\x20invoking\x20TensorFlow.\n\x20\
6634 2.\x20In\x20the\x20code,\x20the\x20ids\x20in\x20this\x20list\x20are\x20a\
6635 lso\x20called\x20\"platform\x20GPU\x20id\"s,\n\x20\x20\x20\x20and\x20the\
6636 \x20'virtual'\x20ids\x20of\x20GPU\x20devices\x20(i.e.\x20the\x20ids\x20i\
6637 n\x20the\x20device\n\x20\x20\x20\x20name\x20\"/device:GPU:<id>\")\x20are\
6638 \x20also\x20called\x20\"TF\x20GPU\x20id\"s.\x20Please\n\x20\x20\x20\x20r\
6639 efer\x20to\x20third_party/tensorflow/core/common_runtime/gpu/gpu_id.h\n\
6640 \x20\x20\x20\x20for\x20more\x20information.\n\n\x0c\n\x05\x04\0\x02\x04\
6641 \x05\x12\x03M\x02\x08\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03M\t\x1c\n\x0c\
6642 \n\x05\x04\0\x02\x04\x03\x12\x03M\x1f\x20\n\xc1\x01\n\x04\x04\0\x02\x05\
6643 \x12\x03R\x02'\x1a\xb3\x01\x20In\x20the\x20event\x20polling\x20loop\x20s\
6644 leep\x20this\x20many\x20microseconds\x20between\n\x20PollEvents\x20calls\
6645 ,\x20when\x20the\x20queue\x20is\x20not\x20empty.\x20\x20If\x20value\x20i\
6646 s\x20not\n\x20set\x20or\x20set\x20to\x200,\x20gets\x20set\x20to\x20a\x20\
6647 non-zero\x20default.\n\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x03R\x02\x07\n\
6648 \x0c\n\x05\x04\0\x02\x05\x01\x12\x03R\x08\"\n\x0c\n\x05\x04\0\x02\x05\
6649 \x03\x12\x03R%&\n4\n\x04\x04\0\x02\x06\x12\x03U\x02)\x1a'\x20This\x20fie\
6650 ld\x20is\x20deprecated\x20and\x20ignored.\n\n\x0c\n\x05\x04\0\x02\x06\
6651 \x05\x12\x03U\x02\x07\n\x0c\n\x05\x04\0\x02\x06\x01\x12\x03U\x08$\n\x0c\
6652 \n\x05\x04\0\x02\x06\x03\x12\x03U'(\n\x9a\x05\n\x04\x04\0\x02\x07\x12\
6653 \x03a\x02\x20\x1a\x8c\x05\x20Force\x20all\x20tensors\x20to\x20be\x20gpu_\
6654 compatible.\x20On\x20a\x20GPU-enabled\x20TensorFlow,\n\x20enabling\x20th\
6655 is\x20option\x20forces\x20all\x20CPU\x20tensors\x20to\x20be\x20allocated\
6656 \x20with\x20Cuda\n\x20pinned\x20memory.\x20Normally,\x20TensorFlow\x20wi\
6657 ll\x20infer\x20which\x20tensors\x20should\x20be\n\x20allocated\x20as\x20\
6658 the\x20pinned\x20memory.\x20But\x20in\x20case\x20where\x20the\x20inferen\
6659 ce\x20is\n\x20incomplete,\x20this\x20option\x20can\x20significantly\x20s\
6660 peed\x20up\x20the\x20cross-device\x20memory\n\x20copy\x20performance\x20\
6661 as\x20long\x20as\x20it\x20fits\x20the\x20memory.\n\x20Note\x20that\x20th\
6662 is\x20option\x20is\x20not\x20something\x20that\x20should\x20be\n\x20enab\
6663 led\x20by\x20default\x20for\x20unknown\x20or\x20very\x20large\x20models,\
6664 \x20since\x20all\x20Cuda\x20pinned\n\x20memory\x20is\x20unpageable,\x20h\
6665 aving\x20too\x20much\x20pinned\x20memory\x20might\x20negatively\x20impac\
6666 t\n\x20the\x20overall\x20host\x20system\x20performance.\n\n\x0c\n\x05\
6667 \x04\0\x02\x07\x05\x12\x03a\x02\x06\n\x0c\n\x05\x04\0\x02\x07\x01\x12\
6668 \x03a\x07\x1b\n\x0c\n\x05\x04\0\x02\x07\x03\x12\x03a\x1e\x1f\n\r\n\x04\
6669 \x04\0\x03\0\x12\x05c\x02\xc7\x01\x03\n\x0c\n\x05\x04\0\x03\0\x01\x12\
6670 \x03c\n\x16\na\n\x06\x04\0\x03\0\x03\0\x12\x04f\x04|\x05\x1aQ\x20Configu\
6671 ration\x20for\x20breaking\x20down\x20a\x20visible\x20GPU\x20into\x20mult\
6672 iple\x20\"virtual\"\n\x20devices.\n\n\x0e\n\x07\x04\0\x03\0\x03\0\x01\
6673 \x12\x03f\x0c\x1a\n\xa5\x03\n\x08\x04\0\x03\0\x03\0\x02\0\x12\x03o\x06)\
6674 \x1a\x93\x03\x20Per\x20\"virtual\"\x20device\x20memory\x20limit,\x20in\
6675 \x20MB.\x20The\x20number\x20of\x20elements\x20in\n\x20the\x20list\x20is\
6676 \x20the\x20number\x20of\x20virtual\x20devices\x20to\x20create\x20on\x20t\
6677 he\n\x20corresponding\x20visible\x20GPU\x20(see\x20\"virtual_devices\"\
6678 \x20below).\n\x20If\x20empty,\x20it\x20will\x20create\x20single\x20virtu\
6679 al\x20device\x20taking\x20all\x20available\n\x20memory\x20from\x20the\
6680 \x20device.\n\n\x20For\x20the\x20concept\x20of\x20\"visible\"\x20and\x20\
6681 \"virtual\"\x20GPU,\x20see\x20the\x20comments\x20for\n\x20\"visible_devi\
6682 ce_list\"\x20above\x20for\x20more\x20information.\n\n\x10\n\t\x04\0\x03\
6683 \0\x03\0\x02\0\x04\x12\x03o\x06\x0e\n\x10\n\t\x04\0\x03\0\x03\0\x02\0\
6684 \x05\x12\x03o\x0f\x14\n\x10\n\t\x04\0\x03\0\x03\0\x02\0\x01\x12\x03o\x15\
6685 $\n\x10\n\t\x04\0\x03\0\x03\0\x02\0\x03\x12\x03o'(\n\xe1\x03\n\x08\x04\0\
6686 \x03\0\x03\0\x02\x01\x12\x03{\x06\"\x1a\xcf\x03\x20Priority\x20values\
6687 \x20to\x20use\x20with\x20the\x20virtual\x20devices.\x20Use\x20the\x20cud\
6688 a\x20function\n\x20cudaDeviceGetStreamPriorityRange\x20to\x20query\x20fo\
6689 r\x20valid\x20range\x20of\x20values\x20for\n\x20priority.\n\n\x20On\x20a\
6690 \x20P4000\x20GPU\x20with\x20cuda\x2010.1,\x20the\x20priority\x20range\
6691 \x20reported\x20was\x200\x20for\n\x20least\x20priority\x20and\x20-1\x20f\
6692 or\x20greatest\x20priority.\n\n\x20If\x20this\x20field\x20is\x20not\x20s\
6693 pecified,\x20then\x20the\x20virtual\x20devices\x20will\x20be\n\x20create\
6694 d\x20with\x20the\x20default.\x20If\x20this\x20field\x20has\x20values\x20\
6695 set,\x20then\x20the\x20size\n\x20of\x20this\x20must\x20match\x20with\x20\
6696 the\x20above\x20memory_limit_mb.\n\n\x10\n\t\x04\0\x03\0\x03\0\x02\x01\
6697 \x04\x12\x03{\x06\x0e\n\x10\n\t\x04\0\x03\0\x03\0\x02\x01\x05\x12\x03{\
6698 \x0f\x14\n\x10\n\t\x04\0\x03\0\x03\0\x02\x01\x01\x12\x03{\x15\x1d\n\x10\
6699 \n\t\x04\0\x03\0\x03\0\x02\x01\x03\x12\x03{\x20!\n\xae\t\n\x06\x04\0\x03\
6700 \0\x02\0\x12\x04\x95\x01\x040\x1a\x9d\t\x20The\x20multi\x20virtual\x20de\
6701 vice\x20settings.\x20If\x20empty\x20(not\x20set),\x20it\x20will\x20creat\
6702 e\n\x20single\x20virtual\x20device\x20on\x20each\x20visible\x20GPU,\x20a\
6703 ccording\x20to\x20the\x20settings\n\x20in\x20\"visible_device_list\"\x20\
6704 above.\x20Otherwise,\x20the\x20number\x20of\x20elements\x20in\x20the\n\
6705 \x20list\x20must\x20be\x20the\x20same\x20as\x20the\x20number\x20of\x20vi\
6706 sible\x20GPUs\x20(after\n\x20\"visible_device_list\"\x20filtering\x20if\
6707 \x20it\x20is\x20set),\x20and\x20the\x20string\x20represented\n\x20device\
6708 \x20names\x20(e.g.\x20/device:GPU:<id>)\x20will\x20refer\x20to\x20the\
6709 \x20virtual\n\x20devices\x20and\x20have\x20the\x20<id>\x20field\x20assig\
6710 ned\x20sequentially\x20starting\x20from\x200,\n\x20according\x20to\x20th\
6711 e\x20order\x20they\x20appear\x20in\x20this\x20list\x20and\x20the\x20\"me\
6712 mory_limit\"\n\x20list\x20inside\x20each\x20element.\x20For\x20example,\
6713 \n\x20\x20\x20visible_device_list\x20=\x20\"1,0\"\n\x20\x20\x20virtual_d\
6714 evices\x20{\x20memory_limit:\x201GB\x20memory_limit:\x202GB\x20}\n\x20\
6715 \x20\x20virtual_devices\x20{}\n\x20will\x20create\x20three\x20virtual\
6716 \x20devices\x20as:\n\x20\x20\x20/device:GPU:0\x20->\x20visible\x20GPU\
6717 \x201\x20with\x201GB\x20memory\n\x20\x20\x20/device:GPU:1\x20->\x20visib\
6718 le\x20GPU\x201\x20with\x202GB\x20memory\n\x20\x20\x20/device:GPU:2\x20->\
6719 \x20visible\x20GPU\x200\x20with\x20all\x20available\x20memory\n\n\x20NOT\
6720 E:\n\x201.\x20It's\x20invalid\x20to\x20set\x20both\x20this\x20and\x20\"p\
6721 er_process_gpu_memory_fraction\"\n\x20\x20\x20\x20at\x20the\x20same\x20t\
6722 ime.\n\x202.\x20Currently\x20this\x20setting\x20is\x20per-process,\x20no\
6723 t\x20per-session.\x20Using\n\x20\x20\x20\x20different\x20settings\x20in\
6724 \x20different\x20sessions\x20within\x20same\x20process\x20will\n\x20\x20\
6725 \x20\x20result\x20in\x20undefined\x20behavior.\n\n\x0f\n\x07\x04\0\x03\0\
6726 \x02\0\x04\x12\x04\x95\x01\x04\x0c\n\x0f\n\x07\x04\0\x03\0\x02\0\x06\x12\
6727 \x04\x95\x01\r\x1b\n\x0f\n\x07\x04\0\x03\0\x02\0\x01\x12\x04\x95\x01\x1c\
6728 +\n\x0f\n\x07\x04\0\x03\0\x02\0\x03\x12\x04\x95\x01./\n\xe6\x03\n\x06\
6729 \x04\0\x03\0\x02\x01\x12\x04\x9e\x01\x04\x20\x1a\xd5\x03\x20If\x20true,\
6730 \x20uses\x20CUDA\x20unified\x20memory\x20for\x20memory\x20allocations.\
6731 \x20If\n\x20per_process_gpu_memory_fraction\x20option\x20is\x20greater\
6732 \x20than\x201.0,\x20then\x20unified\n\x20memory\x20is\x20used\x20regardl\
6733 ess\x20of\x20the\x20value\x20for\x20this\x20field.\x20See\x20comments\
6734 \x20for\n\x20per_process_gpu_memory_fraction\x20field\x20for\x20more\x20\
6735 details\x20and\x20requirements\n\x20of\x20the\x20unified\x20memory.\x20T\
6736 his\x20option\x20is\x20useful\x20to\x20oversubscribe\x20memory\x20if\n\
6737 \x20multiple\x20processes\x20are\x20sharing\x20a\x20single\x20GPU\x20whi\
6738 le\x20individually\x20using\x20less\n\x20than\x201.0\x20per\x20process\
6739 \x20memory\x20fraction.\n\n\x0f\n\x07\x04\0\x03\0\x02\x01\x05\x12\x04\
6740 \x9e\x01\x04\x08\n\x0f\n\x07\x04\0\x03\0\x02\x01\x01\x12\x04\x9e\x01\t\
6741 \x1b\n\x0f\n\x07\x04\0\x03\0\x02\x01\x03\x12\x04\x9e\x01\x1e\x1f\n\xa2\
6742 \x01\n\x06\x04\0\x03\0\x02\x02\x12\x04\xa3\x01\x04*\x1a\x91\x01\x20If\
6743 \x20>\x201,\x20the\x20number\x20of\x20device-to-device\x20copy\x20stream\
6744 s\x20to\x20create\n\x20for\x20each\x20GPUDevice.\x20\x20Default\x20value\
6745 \x20is\x200,\x20which\x20is\x20automatically\n\x20converted\x20to\x201.\
6746 \n\n\x0f\n\x07\x04\0\x03\0\x02\x02\x05\x12\x04\xa3\x01\x04\t\n\x0f\n\x07\
6747 \x04\0\x03\0\x02\x02\x01\x12\x04\xa3\x01\n%\n\x0f\n\x07\x04\0\x03\0\x02\
6748 \x02\x03\x12\x04\xa3\x01()\n\xb4\x03\n\x06\x04\0\x03\0\x02\x03\x12\x04\
6749 \xab\x01\x04%\x1a\xa3\x03\x20If\x20non-empty,\x20defines\x20a\x20good\
6750 \x20GPU\x20ring\x20order\x20on\x20a\x20single\x20worker\x20based\x20on\n\
6751 \x20device\x20interconnect.\x20\x20This\x20assumes\x20that\x20all\x20wor\
6752 kers\x20have\x20the\x20same\x20GPU\n\x20topology.\x20\x20Specify\x20as\
6753 \x20a\x20comma-separated\x20string,\x20e.g.\x20\"3,2,1,0,7,6,5,4\".\n\
6754 \x20This\x20ring\x20order\x20is\x20used\x20by\x20the\x20RingReducer\x20i\
6755 mplementation\x20of\n\x20CollectiveReduce,\x20and\x20serves\x20as\x20an\
6756 \x20override\x20to\x20automatic\x20ring\x20order\n\x20generation\x20in\
6757 \x20OrderTaskDeviceMap()\x20during\x20CollectiveParam\x20resolution.\n\n\
6758 \x0f\n\x07\x04\0\x03\0\x02\x03\x05\x12\x04\xab\x01\x04\n\n\x0f\n\x07\x04\
6759 \0\x03\0\x02\x03\x01\x12\x04\xab\x01\x0b\x20\n\x0f\n\x07\x04\0\x03\0\x02\
6760 \x03\x03\x12\x04\xab\x01#$\n\x80\x02\n\x06\x04\0\x03\0\x02\x04\x12\x04\
6761 \xb1\x01\x04#\x1a\xef\x01\x20If\x20true\x20then\x20extra\x20work\x20is\
6762 \x20done\x20by\x20GPUDevice\x20and\x20GPUBFCAllocator\x20to\n\x20keep\
6763 \x20track\x20of\x20when\x20GPU\x20memory\x20is\x20freed\x20and\x20when\
6764 \x20kernels\x20actually\n\x20complete\x20so\x20that\x20we\x20can\x20know\
6765 \x20when\x20a\x20nominally\x20free\x20memory\x20chunk\n\x20is\x20really\
6766 \x20not\x20subject\x20to\x20pending\x20use.\n\n\x0f\n\x07\x04\0\x03\0\
6767 \x02\x04\x05\x12\x04\xb1\x01\x04\x08\n\x0f\n\x07\x04\0\x03\0\x02\x04\x01\
6768 \x12\x04\xb1\x01\t\x1e\n\x0f\n\x07\x04\0\x03\0\x02\x04\x03\x12\x04\xb1\
6769 \x01!\"\n\xb5\x02\n\x06\x04\0\x03\0\x02\x05\x12\x04\xbb\x01\x04*\x1a\x92\
6770 \x02\x20Parameters\x20for\x20GPUKernelTracker.\x20\x20By\x20default\x20n\
6771 o\x20kernel\x20tracking\x20is\x20done.\n\x20Note\x20that\x20timestamped_\
6772 allocator\x20is\x20only\x20effective\x20if\x20some\x20tracking\x20is\n\
6773 \x20specified.\n\n\x20If\x20kernel_tracker_max_interval\x20=\x20n\x20>\
6774 \x200,\x20then\x20a\x20tracking\x20event\n\x20is\x20inserted\x20after\
6775 \x20every\x20n\x20kernels\x20without\x20an\x20event.\n2\x10\x20reserved\
6776 \x20id:\x206\n\n\x0f\n\x07\x04\0\x03\0\x02\x05\x05\x12\x04\xbb\x01\x04\t\
6777 \n\x0f\n\x07\x04\0\x03\0\x02\x05\x01\x12\x04\xbb\x01\n%\n\x0f\n\x07\x04\
6778 \0\x03\0\x02\x05\x03\x12\x04\xbb\x01()\n\x9e\x02\n\x06\x04\0\x03\0\x02\
6779 \x06\x12\x04\xc1\x01\x04'\x1a\x8d\x02\x20If\x20kernel_tracker_max_bytes\
6780 \x20=\x20n\x20>\x200,\x20then\x20a\x20tracking\x20event\x20is\n\x20inser\
6781 ted\x20after\x20every\x20series\x20of\x20kernels\x20allocating\x20a\x20s\
6782 um\x20of\n\x20memory\x20>=\x20n.\x20\x20If\x20one\x20kernel\x20allocates\
6783 \x20b\x20*\x20n\x20bytes,\x20then\x20one\n\x20event\x20will\x20be\x20ins\
6784 erted\x20after\x20it,\x20but\x20it\x20will\x20count\x20as\x20b\x20agains\
6785 t\n\x20the\x20pending\x20limit.\n\n\x0f\n\x07\x04\0\x03\0\x02\x06\x05\
6786 \x12\x04\xc1\x01\x04\t\n\x0f\n\x07\x04\0\x03\0\x02\x06\x01\x12\x04\xc1\
6787 \x01\n\"\n\x0f\n\x07\x04\0\x03\0\x02\x06\x03\x12\x04\xc1\x01%&\n\xd1\x01\
6788 \n\x06\x04\0\x03\0\x02\x07\x12\x04\xc6\x01\x04)\x1a\xc0\x01\x20If\x20ker\
6789 nel_tracker_max_pending\x20>\x200\x20then\x20no\x20more\x20than\x20this\
6790 \x20many\n\x20tracking\x20events\x20can\x20be\x20outstanding\x20at\x20a\
6791 \x20time.\x20\x20An\x20attempt\x20to\n\x20launch\x20an\x20additional\x20\
6792 kernel\x20will\x20stall\x20until\x20an\x20event\n\x20completes.\n\n\x0f\
6793 \n\x07\x04\0\x03\0\x02\x07\x05\x12\x04\xc6\x01\x04\t\n\x0f\n\x07\x04\0\
6794 \x03\0\x02\x07\x01\x12\x04\xc6\x01\n$\n\x0f\n\x07\x04\0\x03\0\x02\x07\
6795 \x03\x12\x04\xc6\x01'(\n\xa9\x01\n\x04\x04\0\x02\x08\x12\x04\xcc\x01\x02\
6796 \x20\x1a\x9a\x01\x20Everything\x20inside\x20experimental\x20is\x20subjec\
6797 t\x20to\x20change\x20and\x20is\x20not\x20subject\n\x20to\x20API\x20stabi\
6798 lity\x20guarantees\x20in\n\x20https://www.tensorflow.org/guide/version_c\
6799 ompat.\n\n\r\n\x05\x04\0\x02\x08\x06\x12\x04\xcc\x01\x02\x0e\n\r\n\x05\
6800 \x04\0\x02\x08\x01\x12\x04\xcc\x01\x0f\x1b\n\r\n\x05\x04\0\x02\x08\x03\
6801 \x12\x04\xcc\x01\x1e\x1f\n5\n\x02\x04\x01\x12\x06\xd0\x01\0\xfd\x01\x01\
6802 \x1a'\x20Options\x20passed\x20to\x20the\x20graph\x20optimizer\n\n\x0b\n\
6803 \x03\x04\x01\x01\x12\x04\xd0\x01\x08\x18\nS\n\x04\x04\x01\x02\0\x12\x04\
6804 \xd2\x01\x02/\x1aE\x20If\x20true,\x20optimize\x20the\x20graph\x20using\
6805 \x20common\x20subexpression\x20elimination.\n\n\r\n\x05\x04\x01\x02\0\
6806 \x05\x12\x04\xd2\x01\x02\x06\n\r\n\x05\x04\x01\x02\0\x01\x12\x04\xd2\x01\
6807 \x07*\n\r\n\x05\x04\x01\x02\0\x03\x12\x04\xd2\x01-.\nL\n\x04\x04\x01\x02\
6808 \x01\x12\x04\xd5\x01\x02\x1f\x1a>\x20If\x20true,\x20perform\x20constant\
6809 \x20folding\x20optimization\x20on\x20the\x20graph.\n\n\r\n\x05\x04\x01\
6810 \x02\x01\x05\x12\x04\xd5\x01\x02\x06\n\r\n\x05\x04\x01\x02\x01\x01\x12\
6811 \x04\xd5\x01\x07\x1a\n\r\n\x05\x04\x01\x02\x01\x03\x12\x04\xd5\x01\x1d\
6812 \x1e\n\xdc\x02\n\x04\x04\x01\x02\x02\x12\x04\xdc\x01\x02)\x1a\xcd\x02\
6813 \x20Constant\x20folding\x20optimization\x20replaces\x20tensors\x20whose\
6814 \x20values\x20can\x20be\n\x20predetermined,\x20with\x20constant\x20nodes\
6815 .\x20To\x20avoid\x20inserting\x20too\x20large\x20constants,\n\x20the\x20\
6816 size\x20of\x20each\x20constant\x20created\x20can\x20be\x20limited.\x20If\
6817 \x20this\x20value\x20is\x20zero,\x20a\n\x20default\x20limit\x20of\x2010\
6818 \x20MiB\x20will\x20be\x20applied.\x20If\x20constant\x20folding\x20optimi\
6819 zation\n\x20is\x20disabled,\x20this\x20value\x20is\x20ignored.\n\n\r\n\
6820 \x05\x04\x01\x02\x02\x05\x12\x04\xdc\x01\x02\x07\n\r\n\x05\x04\x01\x02\
6821 \x02\x01\x12\x04\xdc\x01\x08$\n\r\n\x05\x04\x01\x02\x02\x03\x12\x04\xdc\
6822 \x01'(\n@\n\x04\x04\x01\x02\x03\x12\x04\xdf\x01\x02\x20\x1a2\x20If\x20tr\
6823 ue,\x20perform\x20function\x20inlining\x20on\x20the\x20graph.\n\n\r\n\
6824 \x05\x04\x01\x02\x03\x05\x12\x04\xdf\x01\x02\x06\n\r\n\x05\x04\x01\x02\
6825 \x03\x01\x12\x04\xdf\x01\x07\x1b\n\r\n\x05\x04\x01\x02\x03\x03\x12\x04\
6826 \xdf\x01\x1e\x1f\n$\n\x04\x04\x01\x04\0\x12\x06\xe2\x01\x02\xeb\x01\x03\
6827 \x1a\x14\x20Optimization\x20level\n\n\r\n\x05\x04\x01\x04\0\x01\x12\x04\
6828 \xe2\x01\x07\x0c\n\x84\x01\n\x06\x04\x01\x04\0\x02\0\x12\x04\xe7\x01\x04\
6829 \x0b\x1at\x20L1\x20is\x20the\x20default\x20level.\n\x20Optimization\x20p\
6830 erformed\x20at\x20L1\x20:\n\x201.\x20Common\x20subexpression\x20eliminat\
6831 ion\n\x202.\x20Constant\x20folding\n\n\x0f\n\x07\x04\x01\x04\0\x02\0\x01\
6832 \x12\x04\xe7\x01\x04\x06\n\x0f\n\x07\x04\x01\x04\0\x02\0\x02\x12\x04\xe7\
6833 \x01\t\n\n\"\n\x06\x04\x01\x04\0\x02\x01\x12\x04\xea\x01\x04\x0c\x1a\x12\
6834 \x20No\x20optimizations\n\n\x0f\n\x07\x04\x01\x04\0\x02\x01\x01\x12\x04\
6835 \xea\x01\x04\x06\n\x0f\n\x07\x04\x01\x04\0\x02\x01\x02\x12\x04\xea\x01\t\
6836 \x0b\n\xa5\x01\n\x04\x04\x01\x02\x04\x12\x04\xef\x01\x02\x16\x1a\x96\x01\
6837 \x20Overall\x20optimization\x20level.\x20The\x20actual\x20optimizations\
6838 \x20applied\x20will\x20be\x20the\n\x20logical\x20OR\x20of\x20the\x20flag\
6839 s\x20that\x20this\x20level\x20implies\x20and\x20any\x20flags\x20already\
6840 \x20set.\n\n\r\n\x05\x04\x01\x02\x04\x06\x12\x04\xef\x01\x02\x07\n\r\n\
6841 \x05\x04\x01\x02\x04\x01\x12\x04\xef\x01\x08\x11\n\r\n\x05\x04\x01\x02\
6842 \x04\x03\x12\x04\xef\x01\x14\x15\nE\n\x04\x04\x01\x04\x01\x12\x06\xf2\
6843 \x01\x02\xfb\x01\x03\x1a5\x20Control\x20the\x20use\x20of\x20the\x20compi\
6844 ler/jit.\x20\x20Experimental.\n\n\r\n\x05\x04\x01\x04\x01\x01\x12\x04\
6845 \xf2\x01\x07\x15\nL\n\x06\x04\x01\x04\x01\x02\0\x12\x04\xf3\x01\x04\x10\
6846 \"<\x20Default\x20setting\x20(\"off\"\x20now,\x20but\x20later\x20expecte\
6847 d\x20to\x20be\x20\"on\")\n\n\x0f\n\x07\x04\x01\x04\x01\x02\0\x01\x12\x04\
6848 \xf3\x01\x04\x0b\n\x0f\n\x07\x04\x01\x04\x01\x02\0\x02\x12\x04\xf3\x01\
6849 \x0e\x0f\n\x0e\n\x06\x04\x01\x04\x01\x02\x01\x12\x04\xf4\x01\x04\r\n\x0f\
6850 \n\x07\x04\x01\x04\x01\x02\x01\x01\x12\x04\xf4\x01\x04\x07\n\x0f\n\x07\
6851 \x04\x01\x04\x01\x02\x01\x02\x12\x04\xf4\x01\n\x0c\n\x84\x02\n\x06\x04\
6852 \x01\x04\x01\x02\x02\x12\x04\xf9\x01\x04\r\x1a\xf3\x01\x20The\x20followi\
6853 ng\x20settings\x20turn\x20on\x20compilation,\x20with\x20higher\x20values\
6854 \x20being\n\x20more\x20aggressive.\x20\x20Higher\x20values\x20may\x20red\
6855 uce\x20opportunities\x20for\x20parallelism\n\x20and\x20may\x20use\x20mor\
6856 e\x20memory.\x20\x20(At\x20present,\x20there\x20is\x20no\x20distinction,\
6857 \x20but\x20this\n\x20is\x20expected\x20to\x20change.)\n\n\x0f\n\x07\x04\
6858 \x01\x04\x01\x02\x02\x01\x12\x04\xf9\x01\x04\x08\n\x0f\n\x07\x04\x01\x04\
6859 \x01\x02\x02\x02\x12\x04\xf9\x01\x0b\x0c\n\x0e\n\x06\x04\x01\x04\x01\x02\
6860 \x03\x12\x04\xfa\x01\x04\r\n\x0f\n\x07\x04\x01\x04\x01\x02\x03\x01\x12\
6861 \x04\xfa\x01\x04\x08\n\x0f\n\x07\x04\x01\x04\x01\x02\x03\x02\x12\x04\xfa\
6862 \x01\x0b\x0c\n\x0c\n\x04\x04\x01\x02\x05\x12\x04\xfc\x01\x02&\n\r\n\x05\
6863 \x04\x01\x02\x05\x06\x12\x04\xfc\x01\x02\x10\n\r\n\x05\x04\x01\x02\x05\
6864 \x01\x12\x04\xfc\x01\x11!\n\r\n\x05\x04\x01\x02\x05\x03\x12\x04\xfc\x01$\
6865 %\n\x0c\n\x02\x04\x02\x12\x06\xff\x01\0\xac\x02\x01\n\x0b\n\x03\x04\x02\
6866 \x01\x12\x04\xff\x01\x08\x14\n4\n\x03\x04\x02\n\x12\x04\x81\x02\x023\x1a\
6867 '\x20Removed,\x20use\x20optimizer_options\x20below.\n\n\x0c\n\x04\x04\
6868 \x02\n\0\x12\x04\x81\x02\x0b2\n\x0b\n\x03\x04\x02\t\x12\x04\x82\x02\x02\
6869 \r\n\x0c\n\x04\x04\x02\t\0\x12\x04\x82\x02\x0b\x0c\n\r\n\x05\x04\x02\t\0\
6870 \x01\x12\x04\x82\x02\x0b\x0c\n\r\n\x05\x04\x02\t\0\x02\x12\x04\x82\x02\
6871 \x0b\x0c\ni\n\x04\x04\x02\x02\0\x12\x04\x86\x02\x02\"\x1a[\x20If\x20true\
6872 ,\x20use\x20control\x20flow\x20to\x20schedule\x20the\x20activation\x20of\
6873 \x20Recv\x20nodes.\n\x20(Currently\x20ignored.)\n\n\r\n\x05\x04\x02\x02\
6874 \0\x05\x12\x04\x86\x02\x02\x06\n\r\n\x05\x04\x02\x02\0\x01\x12\x04\x86\
6875 \x02\x07\x1d\n\r\n\x05\x04\x02\x02\0\x03\x12\x04\x86\x02\x20!\n;\n\x04\
6876 \x04\x02\x02\x01\x12\x04\x89\x02\x02)\x1a-\x20Options\x20controlling\x20\
6877 how\x20graph\x20is\x20optimized.\n\n\r\n\x05\x04\x02\x02\x01\x06\x12\x04\
6878 \x89\x02\x02\x12\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\x89\x02\x13$\n\r\
6879 \n\x05\x04\x02\x02\x01\x03\x12\x04\x89\x02'(\n\xa8\x01\n\x04\x04\x02\x02\
6880 \x02\x12\x04\x8e\x02\x02\x1d\x1a\x99\x01\x20The\x20number\x20of\x20steps\
6881 \x20to\x20run\x20before\x20returning\x20a\x20cost\x20model\x20detailing\
6882 \n\x20the\x20memory\x20usage\x20and\x20performance\x20of\x20each\x20node\
6883 \x20of\x20the\x20graph.\x200\x20means\n\x20no\x20cost\x20model.\n\n\r\n\
6884 \x05\x04\x02\x02\x02\x05\x12\x04\x8e\x02\x02\x07\n\r\n\x05\x04\x02\x02\
6885 \x02\x01\x12\x04\x8e\x02\x08\x18\n\r\n\x05\x04\x02\x02\x02\x03\x12\x04\
6886 \x8e\x02\x1b\x1c\n]\n\x04\x04\x02\x02\x03\x12\x04\x92\x02\x02#\x1aO\x20T\
6887 he\x20number\x20of\x20steps\x20to\x20skip\x20before\x20collecting\x20sta\
6888 tistics\x20for\x20the\n\x20cost\x20model.\n\n\r\n\x05\x04\x02\x02\x03\
6889 \x05\x12\x04\x92\x02\x02\x07\n\r\n\x05\x04\x02\x02\x03\x01\x12\x04\x92\
6890 \x02\x08\x1e\n\r\n\x05\x04\x02\x02\x03\x03\x12\x04\x92\x02!\"\nk\n\x04\
6891 \x04\x02\x02\x04\x12\x04\x96\x02\x02\x18\x1a]\x20Annotate\x20each\x20Nod\
6892 e\x20with\x20Op\x20output\x20shape\x20data,\x20to\x20the\x20extent\x20it\
6893 \x20can\n\x20be\x20statically\x20inferred.\n\n\r\n\x05\x04\x02\x02\x04\
6894 \x05\x12\x04\x96\x02\x02\x06\n\r\n\x05\x04\x02\x02\x04\x01\x12\x04\x96\
6895 \x02\x07\x13\n\r\n\x05\x04\x02\x02\x04\x03\x12\x04\x96\x02\x16\x17\n\xee\
6896 \x02\n\x04\x04\x02\x02\x05\x12\x04\x9f\x02\x02\x1e\x1a\xdf\x02\x20Only\
6897 \x20place\x20the\x20subgraphs\x20that\x20are\x20run,\x20rather\x20than\
6898 \x20the\x20entire\x20graph.\n\n\x20This\x20is\x20useful\x20for\x20intera\
6899 ctive\x20graph\x20building,\x20where\x20one\x20might\n\x20produce\x20gra\
6900 phs\x20that\x20cannot\x20be\x20placed\x20during\x20the\x20debugging\n\
6901 \x20process.\x20\x20In\x20particular,\x20it\x20allows\x20the\x20client\
6902 \x20to\x20continue\x20work\x20in\n\x20a\x20session\x20after\x20adding\
6903 \x20a\x20node\x20to\x20a\x20graph\x20whose\x20placement\n\x20constraints\
6904 \x20are\x20unsatisfiable.\n\n\r\n\x05\x04\x02\x02\x05\x05\x12\x04\x9f\
6905 \x02\x02\x06\n\r\n\x05\x04\x02\x02\x05\x01\x12\x04\x9f\x02\x07\x19\n\r\n\
6906 \x05\x04\x02\x02\x05\x03\x12\x04\x9f\x02\x1c\x1d\nM\n\x04\x04\x02\x02\
6907 \x06\x12\x04\xa2\x02\x02$\x1a?\x20If\x20true,\x20transfer\x20float\x20va\
6908 lues\x20between\x20processes\x20as\x20bfloat16.\n\n\r\n\x05\x04\x02\x02\
6909 \x06\x05\x12\x04\xa2\x02\x02\x06\n\r\n\x05\x04\x02\x02\x06\x01\x12\x04\
6910 \xa2\x02\x07\x1f\n\r\n\x05\x04\x02\x02\x06\x03\x12\x04\xa2\x02\"#\n~\n\
6911 \x04\x04\x02\x02\x07\x12\x04\xa6\x02\x02\x1a\x1ap\x20If\x20>\x200,\x20re\
6912 cord\x20a\x20timeline\x20every\x20this\x20many\x20steps.\n\x20EXPERIMENT\
6913 AL:\x20This\x20currently\x20has\x20no\x20effect\x20in\x20MasterSession.\
6914 \n\n\r\n\x05\x04\x02\x02\x07\x05\x12\x04\xa6\x02\x02\x07\n\r\n\x05\x04\
6915 \x02\x02\x07\x01\x12\x04\xa6\x02\x08\x15\n\r\n\x05\x04\x02\x02\x07\x03\
6916 \x12\x04\xa6\x02\x18\x19\n\xd8\x01\n\x04\x04\x02\x02\x08\x12\x04\xab\x02\
6917 \x02&\x1a\xc9\x01\x20Options\x20that\x20control\x20the\x20type\x20and\
6918 \x20amount\x20of\x20graph\x20rewriting.\n\x20Not\x20currently\x20configu\
6919 rable\x20via\x20the\x20public\x20Python\x20API\x20(i.e.\x20there\x20is\
6920 \x20no\x20API\n\x20stability\x20guarantee\x20if\x20you\x20import\x20Rewr\
6921 iterConfig\x20explicitly).\n\n\r\n\x05\x04\x02\x02\x08\x06\x12\x04\xab\
6922 \x02\x02\x10\n\r\n\x05\x04\x02\x02\x08\x01\x12\x04\xab\x02\x11\x20\n\r\n\
6923 \x05\x04\x02\x02\x08\x03\x12\x04\xab\x02#%\n\x0c\n\x02\x04\x03\x12\x06\
6924 \xae\x02\0\xc5\x02\x01\n\x0b\n\x03\x04\x03\x01\x12\x04\xae\x02\x08\x1d\n\
6925 \xbb\x01\n\x04\x04\x03\x02\0\x12\x04\xb3\x02\x02\x18\x1a\xac\x01\x20The\
6926 \x20number\x20of\x20threads\x20in\x20the\x20pool.\n\n\x200\x20means\x20t\
6927 he\x20system\x20picks\x20a\x20value\x20based\x20on\x20where\x20this\x20o\
6928 ption\x20proto\x20is\x20used\n\x20(see\x20the\x20declaration\x20of\x20th\
6929 e\x20specific\x20field\x20for\x20more\x20info).\n\n\r\n\x05\x04\x03\x02\
6930 \0\x05\x12\x04\xb3\x02\x02\x07\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\xb3\
6931 \x02\x08\x13\n\r\n\x05\x04\x03\x02\0\x03\x12\x04\xb3\x02\x16\x17\n\xf7\
6932 \x05\n\x04\x04\x03\x02\x01\x12\x04\xc4\x02\x02\x19\x1a\xe8\x05\x20The\
6933 \x20global\x20name\x20of\x20the\x20threadpool.\n\n\x20If\x20empty,\x20th\
6934 en\x20the\x20threadpool\x20is\x20made\x20and\x20used\x20according\x20to\
6935 \x20the\x20scope\x20it's\n\x20in\x20-\x20e.g.,\x20for\x20a\x20session\
6936 \x20threadpool,\x20it\x20is\x20used\x20by\x20that\x20session\x20only.\n\
6937 \n\x20If\x20non-empty,\x20then:\n\x20-\x20a\x20global\x20threadpool\x20a\
6938 ssociated\x20with\x20this\x20name\x20is\x20looked\n\x20\x20\x20up\x20or\
6939 \x20created.\x20This\x20allows,\x20for\x20example,\x20sharing\x20one\x20\
6940 threadpool\x20across\n\x20\x20\x20many\x20sessions\x20(e.g.,\x20like\x20\
6941 the\x20default\x20behavior,\x20if\n\x20\x20\x20inter_op_parallelism_thre\
6942 ads\x20is\x20not\x20configured),\x20but\x20still\x20partitioning\n\x20\
6943 \x20\x20into\x20a\x20large\x20and\x20small\x20pool.\n\x20-\x20if\x20the\
6944 \x20threadpool\x20for\x20this\x20global_name\x20already\x20exists,\x20th\
6945 en\x20it\x20is\x20an\n\x20\x20\x20error\x20if\x20the\x20existing\x20pool\
6946 \x20was\x20created\x20using\x20a\x20different\x20num_threads\n\x20\x20\
6947 \x20value\x20as\x20is\x20specified\x20on\x20this\x20call.\n\x20-\x20thre\
6948 adpools\x20created\x20this\x20way\x20are\x20never\x20garbage\x20collecte\
6949 d.\n\n\r\n\x05\x04\x03\x02\x01\x05\x12\x04\xc4\x02\x02\x08\n\r\n\x05\x04\
6950 \x03\x02\x01\x01\x12\x04\xc4\x02\t\x14\n\r\n\x05\x04\x03\x02\x01\x03\x12\
6951 \x04\xc4\x02\x17\x18\n\x0c\n\x02\x04\x04\x12\x06\xc7\x02\0\xe0\x02\x01\n\
6952 \x0b\n\x03\x04\x04\x01\x12\x04\xc7\x02\x08\x12\n\x88\x02\n\x04\x04\x04\
6953 \x02\0\x12\x04\xcd\x02\x02(\x1a\xf9\x01\x20If\x20true,\x20always\x20use\
6954 \x20RPC\x20to\x20contact\x20the\x20session\x20target.\n\n\x20If\x20false\
6955 \x20(the\x20default\x20option),\x20TensorFlow\x20may\x20use\x20an\x20opt\
6956 imized\n\x20transport\x20for\x20client-master\x20communication\x20that\
6957 \x20avoids\x20the\x20RPC\n\x20stack.\x20This\x20option\x20is\x20primaril\
6958 y\x20for\x20used\x20testing\x20the\x20RPC\x20stack.\n\n\r\n\x05\x04\x04\
6959 \x02\0\x05\x12\x04\xcd\x02\x02\x06\n\r\n\x05\x04\x04\x02\0\x01\x12\x04\
6960 \xcd\x02\x07#\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\xcd\x02&'\nO\n\x04\x04\
6961 \x04\x02\x01\x12\x04\xd0\x02\x02#\x1aA\x20The\x20compression\x20algorith\
6962 m\x20to\x20be\x20used.\x20One\x20of\x20\"deflate\",\x20\"gzip\".\n\n\r\n\
6963 \x05\x04\x04\x02\x01\x05\x12\x04\xd0\x02\x02\x08\n\r\n\x05\x04\x04\x02\
6964 \x01\x01\x12\x04\xd0\x02\t\x1e\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\xd0\
6965 \x02!\"\nu\n\x04\x04\x04\x02\x02\x12\x04\xd4\x02\x02\x1e\x1ag\x20If\x20c\
6966 ompression_algorithm\x20is\x20set,\x20the\x20compression\x20level\x20to\
6967 \x20be\x20used.\n\x20From\x200\x20(no\x20compression),\x20up\x20to\x203.\
6968 \n\n\r\n\x05\x04\x04\x02\x02\x05\x12\x04\xd4\x02\x02\x07\n\r\n\x05\x04\
6969 \x04\x02\x02\x01\x12\x04\xd4\x02\x08\x19\n\r\n\x05\x04\x04\x02\x02\x03\
6970 \x12\x04\xd4\x02\x1c\x1d\n\xc3\x03\n\x04\x04\x04\x02\x03\x12\x04\xdc\x02\
6971 \x02\x1e\x1a\xb4\x03\x20Setting\x20cache_rpc_response\x20to\x20true\x20w\
6972 ill\x20enable\x20sender\x20side\x20caching\x20of\n\x20response\x20for\
6973 \x20RecvTensorAsync\x20and\x20RecvBufAsync\x20to\x20allow\x20receiver\
6974 \x20to\x20retry\n\x20requests\x20.\x20This\x20is\x20only\x20necessary\
6975 \x20when\x20the\x20network\x20fabric\x20is\x20experiencing\x20a\n\x20sig\
6976 nificant\x20error\x20rate.\x20\x20Without\x20it\x20we'll\x20fail\x20a\
6977 \x20step\x20on\x20an\x20network\x20error,\n\x20while\x20with\x20it\x20we\
6978 'll\x20be\x20able\x20to\x20complete\x20long\x20steps\x20(like\x20complex\
6979 \n\x20initializations)\x20in\x20the\x20face\x20of\x20some\x20network\x20\
6980 errors\x20during\x20RecvTensor.\n\n\r\n\x05\x04\x04\x02\x03\x05\x12\x04\
6981 \xdc\x02\x02\x06\n\r\n\x05\x04\x04\x02\x03\x01\x12\x04\xdc\x02\x07\x19\n\
6982 \r\n\x05\x04\x04\x02\x03\x03\x12\x04\xdc\x02\x1c\x1d\nO\n\x04\x04\x04\
6983 \x02\x04\x12\x04\xdf\x02\x02.\x1aA\x20Disables\x20TCP\x20connection\x20s\
6984 haring\x20when\x20opening\x20a\x20new\x20RPC\x20channel.\n\n\r\n\x05\x04\
6985 \x04\x02\x04\x05\x12\x04\xdf\x02\x02\x06\n\r\n\x05\x04\x04\x02\x04\x01\
6986 \x12\x04\xdf\x02\x07)\n\r\n\x05\x04\x04\x02\x04\x03\x12\x04\xdf\x02,-\n\
6987 \xad\x02\n\x02\x04\x05\x12\x06\xea\x02\0\xef\x02\x01\x1a\x9e\x02\x20Meta\
6988 data\x20about\x20the\x20session.\n\n\x20This\x20can\x20be\x20used\x20by\
6989 \x20the\x20runtime\x20and\x20the\x20Ops\x20for\x20debugging,\x20monitori\
6990 ng,\x20etc.\n\n\x20The\x20(name,\x20version)\x20tuple\x20is\x20expected\
6991 \x20to\x20be\x20a\x20unique\x20identifier\x20for\n\x20sessions\x20within\
6992 \x20the\x20same\x20process.\n\n\x20NOTE:\x20This\x20is\x20currently\x20u\
6993 sed\x20and\x20propagated\x20only\x20by\x20the\x20direct\x20session.\n\n\
6994 \x0b\n\x03\x04\x05\x01\x12\x04\xea\x02\x08\x17\n\x0c\n\x04\x04\x05\x02\0\
6995 \x12\x04\xeb\x02\x02\x12\n\r\n\x05\x04\x05\x02\0\x05\x12\x04\xeb\x02\x02\
6996 \x08\n\r\n\x05\x04\x05\x02\0\x01\x12\x04\xeb\x02\t\r\n\r\n\x05\x04\x05\
6997 \x02\0\x03\x12\x04\xeb\x02\x10\x11\nB\n\x04\x04\x05\x02\x01\x12\x04\xee\
6998 \x02\x02\x14\x1a4\x20The\x20version\x20is\x20optional.\x20If\x20set,\x20\
6999 needs\x20to\x20be\x20>=\x200.\n\n\r\n\x05\x04\x05\x02\x01\x05\x12\x04\
7000 \xee\x02\x02\x07\n\r\n\x05\x04\x05\x02\x01\x01\x12\x04\xee\x02\x08\x0f\n\
7001 \r\n\x05\x04\x05\x02\x01\x03\x12\x04\xee\x02\x12\x13\ns\n\x02\x04\x06\
7002 \x12\x06\xf3\x02\0\xe0\x04\x01\x1ae\x20Session\x20configuration\x20param\
7003 eters.\n\x20The\x20system\x20picks\x20appropriate\x20values\x20for\x20fi\
7004 elds\x20that\x20are\x20not\x20set.\n\n\x0b\n\x03\x04\x06\x01\x12\x04\xf3\
7005 \x02\x08\x13\n\xd5\x01\n\x04\x04\x06\x02\0\x12\x04\xf8\x02\x02&\x1a\xc6\
7006 \x01\x20Map\x20from\x20device\x20type\x20name\x20(e.g.,\x20\"CPU\"\x20or\
7007 \x20\"GPU\"\x20)\x20to\x20maximum\n\x20number\x20of\x20devices\x20of\x20\
7008 that\x20type\x20to\x20use.\x20\x20If\x20a\x20particular\x20device\n\x20t\
7009 ype\x20is\x20not\x20found\x20in\x20the\x20map,\x20the\x20system\x20picks\
7010 \x20an\x20appropriate\n\x20number.\n\n\r\n\x05\x04\x06\x02\0\x06\x12\x04\
7011 \xf8\x02\x02\x14\n\r\n\x05\x04\x06\x02\0\x01\x12\x04\xf8\x02\x15!\n\r\n\
7012 \x05\x04\x06\x02\0\x03\x12\x04\xf8\x02$%\n\xee\x05\n\x04\x04\x06\x02\x01\
7013 \x12\x04\x88\x03\x02)\x1a\xdf\x05\x20The\x20execution\x20of\x20an\x20ind\
7014 ividual\x20op\x20(for\x20some\x20op\x20types)\x20can\x20be\n\x20parallel\
7015 ized\x20on\x20a\x20pool\x20of\x20intra_op_parallelism_threads.\n\x200\
7016 \x20means\x20the\x20system\x20picks\x20an\x20appropriate\x20number.\n\n\
7017 \x20If\x20you\x20create\x20an\x20ordinary\x20session,\x20e.g.,\x20from\
7018 \x20Python\x20or\x20C++,\n\x20then\x20there\x20is\x20exactly\x20one\x20i\
7019 ntra\x20op\x20thread\x20pool\x20per\x20process.\n\x20The\x20first\x20ses\
7020 sion\x20created\x20determines\x20the\x20number\x20of\x20threads\x20in\
7021 \x20this\x20pool.\n\x20All\x20subsequent\x20sessions\x20reuse/share\x20t\
7022 his\x20one\x20global\x20pool.\n\n\x20There\x20are\x20notable\x20exceptio\
7023 ns\x20to\x20the\x20default\x20behavior\x20describe\x20above:\n\x201.\x20\
7024 There\x20is\x20an\x20environment\x20variable\x20\x20for\x20overriding\
7025 \x20this\x20thread\x20pool,\n\x20\x20\x20\x20named\x20TF_OVERRIDE_GLOBAL\
7026 _THREADPOOL.\n\x202.\x20When\x20connecting\x20to\x20a\x20server,\x20such\
7027 \x20as\x20a\x20remote\x20`tf.train.Server`\n\x20\x20\x20\x20instance,\
7028 \x20then\x20this\x20option\x20will\x20be\x20ignored\x20altogether.\n\n\r\
7029 \n\x05\x04\x06\x02\x01\x05\x12\x04\x88\x03\x02\x07\n\r\n\x05\x04\x06\x02\
7030 \x01\x01\x12\x04\x88\x03\x08$\n\r\n\x05\x04\x06\x02\x01\x03\x12\x04\x88\
7031 \x03'(\n\xbd\x03\n\x04\x04\x06\x02\x02\x12\x04\x93\x03\x02)\x1a\xae\x03\
7032 \x20Nodes\x20that\x20perform\x20blocking\x20operations\x20are\x20enqueue\
7033 d\x20on\x20a\x20pool\x20of\n\x20inter_op_parallelism_threads\x20availabl\
7034 e\x20in\x20each\x20process.\n\n\x200\x20means\x20the\x20system\x20picks\
7035 \x20an\x20appropriate\x20number.\n\x20Negative\x20means\x20all\x20operat\
7036 ions\x20are\x20performed\x20in\x20caller's\x20thread.\n\n\x20Note\x20tha\
7037 t\x20the\x20first\x20Session\x20created\x20in\x20the\x20process\x20sets\
7038 \x20the\n\x20number\x20of\x20threads\x20for\x20all\x20future\x20sessions\
7039 \x20unless\x20use_per_session_threads\x20is\n\x20true\x20or\x20session_i\
7040 nter_op_thread_pool\x20is\x20configured.\n\n\r\n\x05\x04\x06\x02\x02\x05\
7041 \x12\x04\x93\x03\x02\x07\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\x93\x03\
7042 \x08$\n\r\n\x05\x04\x06\x02\x02\x03\x12\x04\x93\x03'(\n\xd0\x03\n\x04\
7043 \x04\x06\x02\x03\x12\x04\x9e\x03\x02#\x1a\xc1\x03\x20If\x20true,\x20use\
7044 \x20a\x20new\x20set\x20of\x20threads\x20for\x20this\x20session\x20rather\
7045 \x20than\x20the\x20global\n\x20pool\x20of\x20threads.\x20Only\x20support\
7046 ed\x20by\x20direct\x20sessions.\n\n\x20If\x20false,\x20use\x20the\x20glo\
7047 bal\x20threads\x20created\x20by\x20the\x20first\x20session,\x20or\x20the\
7048 \n\x20per-session\x20thread\x20pools\x20configured\x20by\x20session_inte\
7049 r_op_thread_pool.\n\n\x20This\x20option\x20is\x20deprecated.\x20The\x20s\
7050 ame\x20effect\x20can\x20be\x20achieved\x20by\x20setting\n\x20session_int\
7051 er_op_thread_pool\x20to\x20have\x20one\x20element,\x20whose\x20num_threa\
7052 ds\x20equals\n\x20inter_op_parallelism_threads.\n\n\r\n\x05\x04\x06\x02\
7053 \x03\x05\x12\x04\x9e\x03\x02\x06\n\r\n\x05\x04\x06\x02\x03\x01\x12\x04\
7054 \x9e\x03\x07\x1e\n\r\n\x05\x04\x06\x02\x03\x03\x12\x04\x9e\x03!\"\n\x91\
7055 \x08\n\x04\x04\x06\x02\x04\x12\x04\xb3\x03\x02C\x1a\x82\x08\x20This\x20o\
7056 ption\x20is\x20experimental\x20-\x20it\x20may\x20be\x20replaced\x20with\
7057 \x20a\x20different\x20mechanism\n\x20in\x20the\x20future.\n\n\x20Configu\
7058 res\x20session\x20thread\x20pools.\x20If\x20this\x20is\x20configured,\
7059 \x20then\x20RunOptions\x20for\n\x20a\x20Run\x20call\x20can\x20select\x20\
7060 the\x20thread\x20pool\x20to\x20use.\n\n\x20The\x20intended\x20use\x20is\
7061 \x20for\x20when\x20some\x20session\x20invocations\x20need\x20to\x20run\
7062 \x20in\x20a\n\x20background\x20pool\x20limited\x20to\x20a\x20small\x20nu\
7063 mber\x20of\x20threads:\n\x20-\x20For\x20example,\x20a\x20session\x20may\
7064 \x20be\x20configured\x20to\x20have\x20one\x20large\x20pool\x20(for\n\x20\
7065 regular\x20compute)\x20and\x20one\x20small\x20pool\x20(for\x20periodic,\
7066 \x20low\x20priority\x20work);\n\x20using\x20the\x20small\x20pool\x20is\
7067 \x20currently\x20the\x20mechanism\x20for\x20limiting\x20the\x20inter-op\
7068 \n\x20parallelism\x20of\x20the\x20low\x20priority\x20work.\x20\x20Note\
7069 \x20that\x20it\x20does\x20not\x20limit\x20the\n\x20parallelism\x20of\x20\
7070 work\x20spawned\x20by\x20a\x20single\x20op\x20kernel\x20implementation.\
7071 \n\x20-\x20Using\x20this\x20setting\x20is\x20normally\x20not\x20needed\
7072 \x20in\x20training,\x20but\x20may\x20help\x20some\n\x20serving\x20use\
7073 \x20cases.\n\x20-\x20It\x20is\x20also\x20generally\x20recommended\x20to\
7074 \x20set\x20the\x20global_name\x20field\x20of\x20this\n\x20proto,\x20to\
7075 \x20avoid\x20creating\x20multiple\x20large\x20pools.\x20It\x20is\x20typi\
7076 cally\x20better\x20to\n\x20run\x20the\x20non-low-priority\x20work,\x20ev\
7077 en\x20across\x20sessions,\x20in\x20a\x20single\x20large\n\x20pool.\n\n\r\
7078 \n\x05\x04\x06\x02\x04\x04\x12\x04\xb3\x03\x02\n\n\r\n\x05\x04\x06\x02\
7079 \x04\x06\x12\x04\xb3\x03\x0b\x20\n\r\n\x05\x04\x06\x02\x04\x01\x12\x04\
7080 \xb3\x03!=\n\r\n\x05\x04\x06\x02\x04\x03\x12\x04\xb3\x03@B\n\xbd\x01\n\
7081 \x04\x04\x06\x02\x05\x12\x04\xb8\x03\x02\x1d\x1a\xae\x01\x20Assignment\
7082 \x20of\x20Nodes\x20to\x20Devices\x20is\x20recomputed\x20every\x20placeme\
7083 nt_period\n\x20steps\x20until\x20the\x20system\x20warms\x20up\x20(at\x20\
7084 which\x20point\x20the\x20recomputation\n\x20typically\x20slows\x20down\
7085 \x20automatically).\n\n\r\n\x05\x04\x06\x02\x05\x05\x12\x04\xb8\x03\x02\
7086 \x07\n\r\n\x05\x04\x06\x02\x05\x01\x12\x04\xb8\x03\x08\x18\n\r\n\x05\x04\
7087 \x06\x02\x05\x03\x12\x04\xb8\x03\x1b\x1c\n\xc5\x01\n\x04\x04\x06\x02\x06\
7088 \x12\x04\xbd\x03\x02%\x1a\xb6\x01\x20When\x20any\x20filters\x20are\x20pr\
7089 esent\x20sessions\x20will\x20ignore\x20all\x20devices\x20which\x20do\x20\
7090 not\n\x20match\x20the\x20filters.\x20Each\x20filter\x20can\x20be\x20part\
7091 ially\x20specified,\x20e.g.\x20\"/job:ps\"\n\x20\"/job:worker/replica:3\
7092 \",\x20etc.\n\n\r\n\x05\x04\x06\x02\x06\x04\x12\x04\xbd\x03\x02\n\n\r\n\
7093 \x05\x04\x06\x02\x06\x05\x12\x04\xbd\x03\x0b\x11\n\r\n\x05\x04\x06\x02\
7094 \x06\x01\x12\x04\xbd\x03\x12\x20\n\r\n\x05\x04\x06\x02\x06\x03\x12\x04\
7095 \xbd\x03#$\n/\n\x04\x04\x06\x02\x07\x12\x04\xc0\x03\x02\x1d\x1a!\x20Opti\
7096 ons\x20that\x20apply\x20to\x20all\x20GPUs.\n\n\r\n\x05\x04\x06\x02\x07\
7097 \x06\x12\x04\xc0\x03\x02\x0c\n\r\n\x05\x04\x06\x02\x07\x01\x12\x04\xc0\
7098 \x03\r\x18\n\r\n\x05\x04\x06\x02\x07\x03\x12\x04\xc0\x03\x1b\x1c\n\x9a\
7099 \x02\n\x04\x04\x06\x02\x08\x12\x04\xc9\x03\x02\x20\x1a\x8b\x02\x20Whethe\
7100 r\x20soft\x20placement\x20is\x20allowed.\x20If\x20allow_soft_placement\
7101 \x20is\x20true,\n\x20an\x20op\x20will\x20be\x20placed\x20on\x20CPU\x20if\
7102 \n\x20\x20\x201.\x20there's\x20no\x20GPU\x20implementation\x20for\x20the\
7103 \x20OP\n\x20or\n\x20\x20\x202.\x20no\x20GPU\x20devices\x20are\x20known\
7104 \x20or\x20registered\n\x20or\n\x20\x20\x203.\x20need\x20to\x20co-locate\
7105 \x20with\x20reftype\x20input(s)\x20which\x20are\x20from\x20CPU.\n\n\r\n\
7106 \x05\x04\x06\x02\x08\x05\x12\x04\xc9\x03\x02\x06\n\r\n\x05\x04\x06\x02\
7107 \x08\x01\x12\x04\xc9\x03\x07\x1b\n\r\n\x05\x04\x06\x02\x08\x03\x12\x04\
7108 \xc9\x03\x1e\x1f\n;\n\x04\x04\x06\x02\t\x12\x04\xcc\x03\x02\x20\x1a-\x20\
7109 Whether\x20device\x20placements\x20should\x20be\x20logged.\n\n\r\n\x05\
7110 \x04\x06\x02\t\x05\x12\x04\xcc\x03\x02\x06\n\r\n\x05\x04\x06\x02\t\x01\
7111 \x12\x04\xcc\x03\x07\x1b\n\r\n\x05\x04\x06\x02\t\x03\x12\x04\xcc\x03\x1e\
7112 \x1f\n1\n\x04\x04\x06\x02\n\x12\x04\xcf\x03\x02\"\x1a#\x20Options\x20tha\
7113 t\x20apply\x20to\x20all\x20graphs.\n\n\r\n\x05\x04\x06\x02\n\x06\x12\x04\
7114 \xcf\x03\x02\x0e\n\r\n\x05\x04\x06\x02\n\x01\x12\x04\xcf\x03\x0f\x1c\n\r\
7115 \n\x05\x04\x06\x02\n\x03\x12\x04\xcf\x03\x1f!\n\xce\x01\n\x04\x04\x06\
7116 \x02\x0b\x12\x04\xd4\x03\x02%\x1a\xbf\x01\x20Global\x20timeout\x20for\
7117 \x20all\x20blocking\x20operations\x20in\x20this\x20session.\x20\x20If\
7118 \x20non-zero,\n\x20and\x20not\x20overridden\x20on\x20a\x20per-operation\
7119 \x20basis,\x20this\x20value\x20will\x20be\x20used\x20as\x20the\n\x20dead\
7120 line\x20for\x20all\x20blocking\x20operations.\n\n\r\n\x05\x04\x06\x02\
7121 \x0b\x05\x12\x04\xd4\x03\x02\x07\n\r\n\x05\x04\x06\x02\x0b\x01\x12\x04\
7122 \xd4\x03\x08\x1f\n\r\n\x05\x04\x06\x02\x0b\x03\x12\x04\xd4\x03\"$\nR\n\
7123 \x04\x04\x06\x02\x0c\x12\x04\xd7\x03\x02\x1e\x1aD\x20Options\x20that\x20\
7124 apply\x20when\x20this\x20session\x20uses\x20the\x20distributed\x20runtim\
7125 e.\n\n\r\n\x05\x04\x06\x02\x0c\x06\x12\x04\xd7\x03\x02\x0c\n\r\n\x05\x04\
7126 \x06\x02\x0c\x01\x12\x04\xd7\x03\r\x18\n\r\n\x05\x04\x06\x02\x0c\x03\x12\
7127 \x04\xd7\x03\x1b\x1d\nD\n\x04\x04\x06\x02\r\x12\x04\xda\x03\x02\x1e\x1a6\
7128 \x20Optional\x20list\x20of\x20all\x20workers\x20to\x20use\x20in\x20this\
7129 \x20session.\n\n\r\n\x05\x04\x06\x02\r\x06\x12\x04\xda\x03\x02\x0c\n\r\n\
7130 \x05\x04\x06\x02\r\x01\x12\x04\xda\x03\r\x18\n\r\n\x05\x04\x06\x02\r\x03\
7131 \x12\x04\xda\x03\x1b\x1d\n\xe1\x01\n\x04\x04\x06\x02\x0e\x12\x04\xdf\x03\
7132 \x02\"\x1a\xd2\x01\x20If\x20true,\x20any\x20resources\x20such\x20as\x20V\
7133 ariables\x20used\x20in\x20the\x20session\x20will\x20not\x20be\n\x20share\
7134 d\x20with\x20other\x20sessions.\x20However,\x20when\x20clusterspec\x20pr\
7135 opagation\x20is\n\x20enabled,\x20this\x20field\x20is\x20ignored\x20and\
7136 \x20sessions\x20are\x20always\x20isolated.\n\n\r\n\x05\x04\x06\x02\x0e\
7137 \x05\x12\x04\xdf\x03\x02\x06\n\r\n\x05\x04\x06\x02\x0e\x01\x12\x04\xdf\
7138 \x03\x07\x1c\n\r\n\x05\x04\x06\x02\x0e\x03\x12\x04\xdf\x03\x1f!\n\xca\
7139 \x01\n\x04\x04\x06\x02\x0f\x12\x04\xe5\x03\x02-\x1a\xbb\x01\x20When\x20t\
7140 rue,\x20WorkerSessions\x20are\x20created\x20with\x20device\x20attributes\
7141 \x20from\x20the\n\x20full\x20cluster.\n\x20This\x20is\x20helpful\x20when\
7142 \x20a\x20worker\x20wants\x20to\x20partition\x20a\x20graph\n\x20(for\x20e\
7143 xample\x20during\x20a\x20PartitionedCallOp).\n\n\r\n\x05\x04\x06\x02\x0f\
7144 \x05\x12\x04\xe5\x03\x02\x06\n\r\n\x05\x04\x06\x02\x0f\x01\x12\x04\xe5\
7145 \x03\x07'\n\r\n\x05\x04\x06\x02\x0f\x03\x12\x04\xe5\x03*,\n\xab\x01\n\
7146 \x04\x04\x06\x03\x01\x12\x06\xea\x03\x02\xdb\x04\x03\x1a\x9a\x01\x20Ever\
7147 ything\x20inside\x20Experimental\x20is\x20subject\x20to\x20change\x20and\
7148 \x20is\x20not\x20subject\n\x20to\x20API\x20stability\x20guarantees\x20in\
7149 \n\x20https://www.tensorflow.org/guide/version_compat.\n\n\r\n\x05\x04\
7150 \x06\x03\x01\x01\x12\x04\xea\x03\n\x16\n1\n\x06\x04\x06\x03\x01\x02\0\
7151 \x12\x04\xec\x03\x04'\x1a!\x20Task\x20name\x20for\x20group\x20resolution\
7152 .\n\n\x0f\n\x07\x04\x06\x03\x01\x02\0\x05\x12\x04\xec\x03\x04\n\n\x0f\n\
7153 \x07\x04\x06\x03\x01\x02\0\x01\x12\x04\xec\x03\x0b\"\n\x0f\n\x07\x04\x06\
7154 \x03\x01\x02\0\x03\x12\x04\xec\x03%&\n\xd6\x01\n\x05\x04\x06\x03\x01\t\
7155 \x12\x04\xf2\x03\x04\x0f\x1a\xc6\x01\x20We\x20removed\x20the\x20flag\x20\
7156 client_handles_error_formatting.\x20Marking\x20the\x20tag\n\x20number\
7157 \x20as\x20reserved.\n\x20TODO(shikharagarwal):\x20Should\x20we\x20just\
7158 \x20remove\x20this\x20tag\x20so\x20that\x20it\x20can\x20be\n\x20used\x20\
7159 in\x20future\x20for\x20other\x20purpose?\n\n\x0e\n\x06\x04\x06\x03\x01\t\
7160 \0\x12\x04\xf2\x03\r\x0e\n\x0f\n\x07\x04\x06\x03\x01\t\0\x01\x12\x04\xf2\
7161 \x03\r\x0e\n\x0f\n\x07\x04\x06\x03\x01\t\0\x02\x12\x04\xf2\x03\r\x0e\nq\
7162 \n\x06\x04\x06\x03\x01\x02\x01\x12\x04\xf6\x03\x04\x1d\x1aa\x20Which\x20\
7163 executor\x20to\x20use,\x20the\x20default\x20executor\x20will\x20be\x20us\
7164 ed\n\x20if\x20it\x20is\x20an\x20empty\x20string\x20or\x20\"DEFAULT\"\n\n\
7165 \x0f\n\x07\x04\x06\x03\x01\x02\x01\x05\x12\x04\xf6\x03\x04\n\n\x0f\n\x07\
7166 \x04\x06\x03\x01\x02\x01\x01\x12\x04\xf6\x03\x0b\x18\n\x0f\n\x07\x04\x06\
7167 \x03\x01\x02\x01\x03\x12\x04\xf6\x03\x1b\x1c\n\xcc\x01\n\x06\x04\x06\x03\
7168 \x01\x02\x02\x12\x04\xfb\x03\x04!\x1a\xbb\x01\x20Guidance\x20to\x20forma\
7169 tting\x20of\x20large\x20RecvBuf\x20fields\x20for\x20transfer.\n\x20Any\
7170 \x20positive\x20value\x20sets\x20the\x20max\x20chunk\x20size.\x20\x200\
7171 \x20defaults\x20to\x204096.\n\x20Any\x20negative\x20value\x20indicates\
7172 \x20no\x20max,\x20i.e.\x20one\x20chunk\x20only.\n\n\x0f\n\x07\x04\x06\
7173 \x03\x01\x02\x02\x05\x12\x04\xfb\x03\x04\t\n\x0f\n\x07\x04\x06\x03\x01\
7174 \x02\x02\x01\x12\x04\xfb\x03\n\x1c\n\x0f\n\x07\x04\x06\x03\x01\x02\x02\
7175 \x03\x12\x04\xfb\x03\x1f\x20\n\xdd\x01\n\x06\x04\x06\x03\x01\x02\x03\x12\
7176 \x04\x80\x04\x04\x1f\x1a\xcc\x01\x20If\x20true,\x20and\x20supported\x20b\
7177 y\x20the\x20platform,\x20the\x20runtime\x20will\x20attempt\x20to\n\x20us\
7178 e\x20NUMA\x20affinity\x20where\x20applicable.\x20\x20One\x20consequence\
7179 \x20will\x20be\x20the\n\x20existence\x20of\x20as\x20many\x20CPU\x20devic\
7180 es\x20as\x20there\x20are\x20available\x20NUMA\x20nodes.\n\n\x0f\n\x07\
7181 \x04\x06\x03\x01\x02\x03\x05\x12\x04\x80\x04\x04\x08\n\x0f\n\x07\x04\x06\
7182 \x03\x01\x02\x03\x01\x12\x04\x80\x04\t\x1a\n\x0f\n\x07\x04\x06\x03\x01\
7183 \x02\x03\x03\x12\x04\x80\x04\x1d\x1e\n\x8c\x01\n\x06\x04\x06\x03\x01\x02\
7184 \x04\x12\x04\x84\x04\x04;\x1a|\x20If\x20true,\x20make\x20collective\x20o\
7185 p\x20execution\x20order\x20sequential\x20and\x20deterministic\n\x20for\
7186 \x20potentially\x20concurrent\x20collective\x20instances.\n\n\x0f\n\x07\
7187 \x04\x06\x03\x01\x02\x04\x05\x12\x04\x84\x04\x04\x08\n\x0f\n\x07\x04\x06\
7188 \x03\x01\x02\x04\x01\x12\x04\x84\x04\t6\n\x0f\n\x07\x04\x06\x03\x01\x02\
7189 \x04\x03\x12\x04\x84\x049:\n]\n\x06\x04\x06\x03\x01\x02\x05\x12\x04\x88\
7190 \x04\x04\x1d\x1aM\x20If\x20true,\x20use\x20NCCL\x20for\x20CollectiveOps.\
7191 \x20\x20This\x20feature\x20is\x20highly\n\x20experimental.\n\n\x0f\n\x07\
7192 \x04\x06\x03\x01\x02\x05\x05\x12\x04\x88\x04\x04\x08\n\x0f\n\x07\x04\x06\
7193 \x03\x01\x02\x05\x01\x12\x04\x88\x04\t\x18\n\x0f\n\x07\x04\x06\x03\x01\
7194 \x02\x05\x03\x12\x04\x88\x04\x1b\x1c\n\xda\x07\n\x06\x04\x06\x03\x01\x02\
7195 \x06\x12\x04\x9e\x04\x04<\x1a\xc9\x07\x20In\x20the\x20following,\x20sess\
7196 ion\x20state\x20means\x20the\x20value\x20of\x20a\x20variable,\x20element\
7197 s\n\x20in\x20a\x20hash\x20table,\x20or\x20any\x20other\x20resource,\x20a\
7198 ccessible\x20by\x20worker\x20sessions\n\x20held\x20by\x20a\x20TF\x20serv\
7199 er.\n\n\x20When\x20ClusterSpec\x20propagation\x20is\x20enabled,\x20the\
7200 \x20value\x20of\n\x20isolate_session_state\x20is\x20ignored\x20when\x20d\
7201 eciding\x20whether\x20to\x20share\x20session\n\x20states\x20in\x20a\x20T\
7202 F\x20server\x20(for\x20backwards\x20compatibility\x20reasons).\n\x20-\
7203 \x20If\x20share_session_state_in_clusterspec_propagation\x20is\x20true,\
7204 \x20the\x20session\n\x20states\x20are\x20shared.\n\x20-\x20If\x20share_s\
7205 ession_state_in_clusterspec_propagation\x20is\x20false,\x20session\n\x20\
7206 states\x20are\x20isolated.\n\n\x20When\x20clusterspec\x20propagation\x20\
7207 is\x20not\x20used,\x20the\x20value\x20of\n\x20share_session_state_in_clu\
7208 sterspec_propagation\x20is\x20ignored\x20when\x20deciding\n\x20whether\
7209 \x20to\x20share\x20session\x20states\x20in\x20a\x20TF\x20server.\n\x20-\
7210 \x20If\x20isolate_session_state\x20is\x20true,\x20session\x20states\x20a\
7211 re\x20isolated.\n\x20-\x20If\x20isolate_session_state\x20is\x20false,\
7212 \x20session\x20states\x20are\x20shared.\n\n\x20TODO(b/129330037):\x20Add\
7213 \x20a\x20single\x20API\x20that\x20consistently\x20treats\n\x20isolate_se\
7214 ssion_state\x20and\x20ClusterSpec\x20propagation.\n\n\x0f\n\x07\x04\x06\
7215 \x03\x01\x02\x06\x05\x12\x04\x9e\x04\x04\x08\n\x0f\n\x07\x04\x06\x03\x01\
7216 \x02\x06\x01\x12\x04\x9e\x04\t7\n\x0f\n\x07\x04\x06\x03\x01\x02\x06\x03\
7217 \x12\x04\x9e\x04:;\n\xf2\x01\n\x06\x04\x06\x03\x01\x02\x07\x12\x04\xa4\
7218 \x04\x04%\x1a\xe1\x01\x20If\x20using\x20a\x20direct\x20session,\x20disab\
7219 le\x20spinning\x20while\x20waiting\x20for\x20work\x20in\n\x20the\x20thre\
7220 ad\x20pool.\x20This\x20may\x20result\x20in\x20higher\x20latency\x20for\
7221 \x20completing\x20ops,\n\x20but\x20in\x20the\x20case\x20where\x20there\
7222 \x20is\x20a\x20lot\x20of\x20spinning\x20may\x20result\x20in\x20lower\n\
7223 \x20CPU\x20usage.\n\n\x0f\n\x07\x04\x06\x03\x01\x02\x07\x05\x12\x04\xa4\
7224 \x04\x04\x08\n\x0f\n\x07\x04\x06\x03\x01\x02\x07\x01\x12\x04\xa4\x04\t\
7225 \x20\n\x0f\n\x07\x04\x06\x03\x01\x02\x07\x03\x12\x04\xa4\x04#$\n\x80\x01\
7226 \n\x06\x04\x06\x03\x01\x02\x08\x12\x04\xa8\x04\x04/\x1ap\x20This\x20was\
7227 \x20promoted\x20to\x20a\x20non-experimental\x20API.\x20Please\x20use\n\
7228 \x20ConfigProto.share_cluster_devices_in_session\x20instead.\n\n\x0f\n\
7229 \x07\x04\x06\x03\x01\x02\x08\x05\x12\x04\xa8\x04\x04\x08\n\x0f\n\x07\x04\
7230 \x06\x03\x01\x02\x08\x01\x12\x04\xa8\x04\t)\n\x0f\n\x07\x04\x06\x03\x01\
7231 \x02\x08\x03\x12\x04\xa8\x04,.\n\xcf\x01\n\x06\x04\x06\x03\x01\x02\t\x12\
7232 \x04\xb0\x04\x04*\x1a\xbe\x01\x20Metadata\x20about\x20the\x20session.\n\
7233 \n\x20If\x20set,\x20this\x20can\x20be\x20used\x20by\x20the\x20runtime\
7234 \x20and\x20the\x20Ops\x20for\x20debugging,\n\x20monitoring,\x20etc.\n\n\
7235 \x20NOTE:\x20This\x20is\x20currently\x20used\x20and\x20propagated\x20onl\
7236 y\x20by\x20the\x20direct\x20session.\n\n\x0f\n\x07\x04\x06\x03\x01\x02\t\
7237 \x06\x12\x04\xb0\x04\x04\x13\n\x0f\n\x07\x04\x06\x03\x01\x02\t\x01\x12\
7238 \x04\xb0\x04\x14$\n\x0f\n\x07\x04\x06\x03\x01\x02\t\x03\x12\x04\xb0\x04'\
7239 )\n\x98\x02\n\x06\x04\x06\x03\x01\x02\n\x12\x04\xb8\x04\x04(\x1a\x87\x02\
7240 \x20If\x20true,\x20the\x20session\x20may\x20treat\x20the\x20graph\x20as\
7241 \x20being\x20static\x20for\x20optimization\n\x20purposes.\n\n\x20If\x20t\
7242 his\x20option\x20is\x20set\x20to\x20true\x20when\x20a\x20session\x20is\
7243 \x20created,\x20the\x20full\n\x20GraphDef\x20must\x20be\x20passed\x20in\
7244 \x20a\x20single\x20call\x20to\x20Session::Create(),\x20and\n\x20Session:\
7245 :Extend()\x20may\x20not\x20be\x20supported.\n\n\x0f\n\x07\x04\x06\x03\
7246 \x01\x02\n\x05\x12\x04\xb8\x04\x04\x08\n\x0f\n\x07\x04\x06\x03\x01\x02\n\
7247 \x01\x12\x04\xb8\x04\t\"\n\x0f\n\x07\x04\x06\x03\x01\x02\n\x03\x12\x04\
7248 \xb8\x04%'\n\x86\x05\n\x06\x04\x06\x03\x01\x02\x0b\x12\x04\xc5\x04\x04!\
7249 \x1a\xf5\x04\x20Whether\x20to\x20enable\x20the\x20MLIR-based\x20TF->XLA\
7250 \x20bridge.\n\n\x20This\x20is\x20a\x20replacement\x20to\x20the\x20existi\
7251 ng\x20bridge,\x20and\x20not\x20ready\x20for\n\x20production\x20usage\x20\
7252 yet.\n\x20If\x20this\x20option\x20is\x20set\x20to\x20true\x20when\x20a\
7253 \x20session\x20is\x20created,\x20MLIR\x20is\x20used\x20to\n\x20perform\
7254 \x20the\x20set\x20of\x20graph\x20transformations\x20to\x20put\x20the\x20\
7255 graph\x20in\x20a\x20form\x20that\n\x20can\x20be\x20executed\x20with\x20d\
7256 elegation\x20of\x20some\x20computations\x20to\x20an\x20accelerator.\n\
7257 \x20This\x20builds\x20on\x20the\x20model\x20of\x20XLA\x20where\x20a\x20s\
7258 ubset\x20of\x20the\x20graph\x20is\n\x20encapsulated\x20and\x20attached\
7259 \x20to\x20a\x20\"compile\"\x20operation,\x20whose\x20result\x20is\x20fed\
7260 \n\x20to\x20an\x20\"execute\"\x20operation.\x20The\x20kernel\x20for\x20t\
7261 hese\x20operations\x20is\x20responsible\n\x20to\x20lower\x20the\x20encap\
7262 sulated\x20graph\x20to\x20a\x20particular\x20device.\n\n\x0f\n\x07\x04\
7263 \x06\x03\x01\x02\x0b\x05\x12\x04\xc5\x04\x04\x08\n\x0f\n\x07\x04\x06\x03\
7264 \x01\x02\x0b\x01\x12\x04\xc5\x04\t\x1b\n\x0f\n\x07\x04\x06\x03\x01\x02\
7265 \x0b\x03\x12\x04\xc5\x04\x1e\x20\n\x98\x02\n\x06\x04\x06\x03\x01\x02\x0c\
7266 \x12\x04\xcc\x04\x04-\x1a\x87\x02\x20Whether\x20to\x20enable\x20the\x20M\
7267 LIR-based\x20Graph\x20optimizations.\n\n\x20This\x20will\x20become\x20a\
7268 \x20part\x20of\x20standard\x20Tensorflow\x20graph\x20optimization\n\x20p\
7269 ipeline,\x20currently\x20this\x20is\x20only\x20used\x20for\x20gradual\
7270 \x20migration\x20and\x20testing\n\x20new\x20passes\x20that\x20are\x20rep\
7271 lacing\x20existing\x20optimizations\x20in\x20Grappler.\n\n\x0f\n\x07\x04\
7272 \x06\x03\x01\x02\x0c\x05\x12\x04\xcc\x04\x04\x08\n\x0f\n\x07\x04\x06\x03\
7273 \x01\x02\x0c\x01\x12\x04\xcc\x04\t'\n\x0f\n\x07\x04\x06\x03\x01\x02\x0c\
7274 \x03\x12\x04\xcc\x04*,\n\xe8\x01\n\x06\x04\x06\x03\x01\x02\r\x12\x04\xd3\
7275 \x04\x04.\x1a\xd7\x01\x20If\x20true,\x20the\x20session\x20will\x20not\
7276 \x20store\x20an\x20additional\x20copy\x20of\x20the\x20graph\x20for\n\x20\
7277 each\x20subgraph.\n\n\x20If\x20this\x20option\x20is\x20set\x20to\x20true\
7278 \x20when\x20a\x20session\x20is\x20created,\x20the\n\x20`RunOptions.outpu\
7279 t_partition_graphs`\x20options\x20must\x20not\x20be\x20set.\n\n\x0f\n\
7280 \x07\x04\x06\x03\x01\x02\r\x05\x12\x04\xd3\x04\x04\x08\n\x0f\n\x07\x04\
7281 \x06\x03\x01\x02\r\x01\x12\x04\xd3\x04\t(\n\x0f\n\x07\x04\x06\x03\x01\
7282 \x02\r\x03\x12\x04\xd3\x04+-\n\x8d\x02\n\x06\x04\x06\x03\x01\x02\x0e\x12\
7283 \x04\xda\x04\x04+\x1a\xfc\x01\x20Minimum\x20number\x20of\x20batches\x20r\
7284 un\x20through\x20the\x20XLA\x20graph\x20before\x20XLA\x20fusion\n\x20aut\
7285 otuner\x20is\x20enabled.\x20Default\x20value\x20of\x20zero\x20disables\
7286 \x20the\x20autotuner.\n\n\x20The\x20XLA\x20fusion\x20autotuner\x20can\
7287 \x20improve\x20performance\x20by\x20executing\x20a\x20heuristic\n\x20sea\
7288 rch\x20on\x20the\x20compiler\x20parameters.\n\n\x0f\n\x07\x04\x06\x03\
7289 \x01\x02\x0e\x05\x12\x04\xda\x04\x04\t\n\x0f\n\x07\x04\x06\x03\x01\x02\
7290 \x0e\x01\x12\x04\xda\x04\n%\n\x0f\n\x07\x04\x06\x03\x01\x02\x0e\x03\x12\
7291 \x04\xda\x04(*\n\x0c\n\x04\x04\x06\x02\x10\x12\x04\xdd\x04\x02!\n\r\n\
7292 \x05\x04\x06\x02\x10\x06\x12\x04\xdd\x04\x02\x0e\n\r\n\x05\x04\x06\x02\
7293 \x10\x01\x12\x04\xdd\x04\x0f\x1b\n\r\n\x05\x04\x06\x02\x10\x03\x12\x04\
7294 \xdd\x04\x1e\x20\n0\n\x02\x04\x07\x12\x06\xe3\x04\0\xa1\x05\x01\x1a\"\
7295 \x20Options\x20for\x20a\x20single\x20Run()\x20call.\n\n\x0b\n\x03\x04\
7296 \x07\x01\x12\x04\xe3\x04\x08\x12\n\x84\x01\n\x04\x04\x07\x04\0\x12\x06\
7297 \xe6\x04\x02\xeb\x04\x03\x1at\x20TODO(pbar)\x20Turn\x20this\x20into\x20a\
7298 \x20TraceOptions\x20proto\x20which\x20allows\n\x20tracing\x20to\x20be\
7299 \x20controlled\x20in\x20a\x20more\x20orthogonal\x20manner?\n\n\r\n\x05\
7300 \x04\x07\x04\0\x01\x12\x04\xe6\x04\x07\x11\n\x0e\n\x06\x04\x07\x04\0\x02\
7301 \0\x12\x04\xe7\x04\x04\x11\n\x0f\n\x07\x04\x07\x04\0\x02\0\x01\x12\x04\
7302 \xe7\x04\x04\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\0\x02\x12\x04\xe7\x04\x0f\
7303 \x10\n\x0e\n\x06\x04\x07\x04\0\x02\x01\x12\x04\xe8\x04\x04\x17\n\x0f\n\
7304 \x07\x04\x07\x04\0\x02\x01\x01\x12\x04\xe8\x04\x04\x12\n\x0f\n\x07\x04\
7305 \x07\x04\0\x02\x01\x02\x12\x04\xe8\x04\x15\x16\n\x0e\n\x06\x04\x07\x04\0\
7306 \x02\x02\x12\x04\xe9\x04\x04\x17\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x01\
7307 \x12\x04\xe9\x04\x04\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x02\x12\x04\
7308 \xe9\x04\x15\x16\n\x0e\n\x06\x04\x07\x04\0\x02\x03\x12\x04\xea\x04\x04\
7309 \x13\n\x0f\n\x07\x04\x07\x04\0\x02\x03\x01\x12\x04\xea\x04\x04\x0e\n\x0f\
7310 \n\x07\x04\x07\x04\0\x02\x03\x02\x12\x04\xea\x04\x11\x12\n\x0c\n\x04\x04\
7311 \x07\x02\0\x12\x04\xec\x04\x02\x1d\n\r\n\x05\x04\x07\x02\0\x06\x12\x04\
7312 \xec\x04\x02\x0c\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\xec\x04\r\x18\n\r\n\
7313 \x05\x04\x07\x02\0\x03\x12\x04\xec\x04\x1b\x1c\nG\n\x04\x04\x07\x02\x01\
7314 \x12\x04\xef\x04\x02\x1a\x1a9\x20Time\x20to\x20wait\x20for\x20operation\
7315 \x20to\x20complete\x20in\x20milliseconds.\n\n\r\n\x05\x04\x07\x02\x01\
7316 \x05\x12\x04\xef\x04\x02\x07\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\xef\
7317 \x04\x08\x15\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\xef\x04\x18\x19\n\x9d\
7318 \x03\n\x04\x04\x07\x02\x02\x12\x04\xf7\x04\x02!\x1a\x8e\x03\x20The\x20th\
7319 read\x20pool\x20to\x20use,\x20if\x20session_inter_op_thread_pool\x20is\
7320 \x20configured.\n\x20To\x20use\x20the\x20caller\x20thread\x20set\x20this\
7321 \x20to\x20-1\x20-\x20this\x20uses\x20the\x20caller\x20thread\n\x20to\x20\
7322 execute\x20Session::Run()\x20and\x20thus\x20avoids\x20a\x20context\x20sw\
7323 itch.\x20Using\x20the\n\x20caller\x20thread\x20to\x20execute\x20Session:\
7324 :Run()\x20should\x20be\x20done\x20ONLY\x20for\x20simple\n\x20graphs,\x20\
7325 where\x20the\x20overhead\x20of\x20an\x20additional\x20context\x20switch\
7326 \x20is\n\x20comparable\x20with\x20the\x20overhead\x20of\x20Session::Run(\
7327 ).\n\n\r\n\x05\x04\x07\x02\x02\x05\x12\x04\xf7\x04\x02\x07\n\r\n\x05\x04\
7328 \x07\x02\x02\x01\x12\x04\xf7\x04\x08\x1c\n\r\n\x05\x04\x07\x02\x02\x03\
7329 \x12\x04\xf7\x04\x1f\x20\np\n\x04\x04\x07\x02\x03\x12\x04\xfb\x04\x02#\
7330 \x1ab\x20Whether\x20the\x20partition\x20graph(s)\x20executed\x20by\x20th\
7331 e\x20executor(s)\x20should\x20be\n\x20outputted\x20via\x20RunMetadata.\n\
7332 \n\r\n\x05\x04\x07\x02\x03\x05\x12\x04\xfb\x04\x02\x06\n\r\n\x05\x04\x07\
7333 \x02\x03\x01\x12\x04\xfb\x04\x07\x1e\n\r\n\x05\x04\x07\x02\x03\x03\x12\
7334 \x04\xfb\x04!\"\nT\n\x04\x04\x07\x02\x04\x12\x04\xfe\x04\x02!\x1aF\x20EX\
7335 PERIMENTAL.\x20\x20Options\x20used\x20to\x20initialize\x20DebuggerState,\
7336 \x20if\x20enabled.\n\n\r\n\x05\x04\x07\x02\x04\x06\x12\x04\xfe\x04\x02\
7337 \x0e\n\r\n\x05\x04\x07\x02\x04\x01\x12\x04\xfe\x04\x0f\x1c\n\r\n\x05\x04\
7338 \x07\x02\x04\x03\x12\x04\xfe\x04\x1f\x20\n\xe7\x01\n\x04\x04\x07\x02\x05\
7339 \x12\x04\x85\x05\x02.\x1a\xd8\x01\x20When\x20enabled,\x20causes\x20tenso\
7340 r\x20allocation\x20information\x20to\x20be\x20included\x20in\n\x20the\
7341 \x20error\x20message\x20when\x20the\x20Run()\x20call\x20fails\x20because\
7342 \x20the\x20allocator\x20ran\n\x20out\x20of\x20memory\x20(OOM).\n\n\x20En\
7343 abling\x20this\x20option\x20can\x20slow\x20down\x20the\x20Run()\x20call.\
7344 \n\n\r\n\x05\x04\x07\x02\x05\x05\x12\x04\x85\x05\x02\x06\n\r\n\x05\x04\
7345 \x07\x02\x05\x01\x12\x04\x85\x05\x07)\n\r\n\x05\x04\x07\x02\x05\x03\x12\
7346 \x04\x85\x05,-\n\xab\x01\n\x04\x04\x07\x03\0\x12\x06\x8a\x05\x02\x9c\x05\
7347 \x03\x1a\x9a\x01\x20Everything\x20inside\x20Experimental\x20is\x20subjec\
7348 t\x20to\x20change\x20and\x20is\x20not\x20subject\n\x20to\x20API\x20stabi\
7349 lity\x20guarantees\x20in\n\x20https://www.tensorflow.org/guide/version_c\
7350 ompat.\n\n\r\n\x05\x04\x07\x03\0\x01\x12\x04\x8a\x05\n\x16\n\xec\x01\n\
7351 \x06\x04\x07\x03\0\x02\0\x12\x04\x8f\x05\x04#\x1a\xdb\x01\x20If\x20non-z\
7352 ero,\x20declares\x20that\x20this\x20graph\x20is\x20going\x20to\x20use\
7353 \x20collective\n\x20ops\x20and\x20must\x20synchronize\x20step_ids\x20wit\
7354 h\x20any\x20other\x20graph\x20with\x20this\n\x20same\x20group_key\x20val\
7355 ue\x20(in\x20a\x20distributed\x20computation\x20where\x20tasks\n\x20run\
7356 \x20disjoint\x20graphs).\n\n\x0f\n\x07\x04\x07\x03\0\x02\0\x05\x12\x04\
7357 \x8f\x05\x04\t\n\x0f\n\x07\x04\x07\x03\0\x02\0\x01\x12\x04\x8f\x05\n\x1e\
7358 \n\x0f\n\x07\x04\x07\x03\0\x02\0\x03\x12\x04\x8f\x05!\"\n\xf2\x01\n\x06\
7359 \x04\x07\x03\0\x02\x01\x12\x04\x94\x05\x04\"\x1a\xe1\x01\x20If\x20true,\
7360 \x20then\x20operations\x20(using\x20the\x20inter-op\x20pool)\x20across\
7361 \x20all\n\x20session::run()\x20calls\x20will\x20be\x20centrally\x20sched\
7362 uled,\x20optimizing\x20for\x20(median\n\x20and\x20tail)\x20latency.\n\
7363 \x20Consider\x20using\x20this\x20option\x20for\x20CPU-bound\x20workloads\
7364 \x20like\x20inference.\n\n\x0f\n\x07\x04\x07\x03\0\x02\x01\x05\x12\x04\
7365 \x94\x05\x04\x08\n\x0f\n\x07\x04\x07\x03\0\x02\x01\x01\x12\x04\x94\x05\t\
7366 \x1d\n\x0f\n\x07\x04\x07\x03\0\x02\x01\x03\x12\x04\x94\x05\x20!\n8\n\x06\
7367 \x04\x07\x03\0\x03\0\x12\x06\x96\x05\x04\x9a\x05\x05\x1a&\x20Options\x20\
7368 for\x20run\x20handler\x20thread\x20pool.\n\n\x0f\n\x07\x04\x07\x03\0\x03\
7369 \0\x01\x12\x04\x96\x05\x0c!\n\xa3\x01\n\x08\x04\x07\x03\0\x03\0\x02\0\
7370 \x12\x04\x99\x05\x06\x19\x1a\x90\x01\x20Priority\x20of\x20the\x20request\
7371 .\x20The\x20run\x20handler\x20thread\x20pool\x20will\x20schedule\x20ops\
7372 \n\x20based\x20on\x20the\x20priority\x20number.\x20The\x20larger\x20numb\
7373 er\x20means\x20higher\x20priority.\n\n\x11\n\t\x04\x07\x03\0\x03\0\x02\0\
7374 \x05\x12\x04\x99\x05\x06\x0b\n\x11\n\t\x04\x07\x03\0\x03\0\x02\0\x01\x12\
7375 \x04\x99\x05\x0c\x14\n\x11\n\t\x04\x07\x03\0\x03\0\x02\0\x03\x12\x04\x99\
7376 \x05\x17\x18\n\x0e\n\x06\x04\x07\x03\0\x02\x02\x12\x04\x9b\x05\x047\n\
7377 \x0f\n\x07\x04\x07\x03\0\x02\x02\x06\x12\x04\x9b\x05\x04\x19\n\x0f\n\x07\
7378 \x04\x07\x03\0\x02\x02\x01\x12\x04\x9b\x05\x1a2\n\x0f\n\x07\x04\x07\x03\
7379 \0\x02\x02\x03\x12\x04\x9b\x0556\n\x0c\n\x04\x04\x07\x02\x06\x12\x04\x9e\
7380 \x05\x02\x20\n\r\n\x05\x04\x07\x02\x06\x06\x12\x04\x9e\x05\x02\x0e\n\r\n\
7381 \x05\x04\x07\x02\x06\x01\x12\x04\x9e\x05\x0f\x1b\n\r\n\x05\x04\x07\x02\
7382 \x06\x03\x12\x04\x9e\x05\x1e\x1f\n\x0b\n\x03\x04\x07\t\x12\x04\xa0\x05\
7383 \x02\r\n\x0c\n\x04\x04\x07\t\0\x12\x04\xa0\x05\x0b\x0c\n\r\n\x05\x04\x07\
7384 \t\0\x01\x12\x04\xa0\x05\x0b\x0c\n\r\n\x05\x04\x07\t\0\x02\x12\x04\xa0\
7385 \x05\x0b\x0c\nK\n\x02\x04\x08\x12\x06\xa4\x05\0\xc2\x05\x01\x1a=\x20Meta\
7386 data\x20output\x20(i.e.,\x20non-Tensor)\x20for\x20a\x20single\x20Run()\
7387 \x20call.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\xa4\x05\x08\x13\n\xbb\x01\n\
7388 \x04\x04\x08\x02\0\x12\x04\xa8\x05\x02\x1b\x1a\xac\x01\x20Statistics\x20\
7389 traced\x20for\x20this\x20step.\x20Populated\x20if\x20tracing\x20is\x20tu\
7390 rned\x20on\x20via\x20the\n\x20\"RunOptions\"\x20proto.\n\x20EXPERIMENTAL\
7391 :\x20The\x20format\x20and\x20set\x20of\x20events\x20may\x20change\x20in\
7392 \x20future\x20versions.\n\n\r\n\x05\x04\x08\x02\0\x06\x12\x04\xa8\x05\
7393 \x02\x0b\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xa8\x05\x0c\x16\n\r\n\x05\
7394 \x04\x08\x02\0\x03\x12\x04\xa8\x05\x19\x1a\nK\n\x04\x04\x08\x02\x01\x12\
7395 \x04\xab\x05\x02\x1e\x1a=\x20The\x20cost\x20graph\x20for\x20the\x20compu\
7396 tation\x20defined\x20by\x20the\x20run\x20call.\n\n\r\n\x05\x04\x08\x02\
7397 \x01\x06\x12\x04\xab\x05\x02\x0e\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\
7398 \xab\x05\x0f\x19\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xab\x05\x1c\x1d\n\
7399 ?\n\x04\x04\x08\x02\x02\x12\x04\xae\x05\x02)\x1a1\x20Graphs\x20of\x20the\
7400 \x20partitions\x20executed\x20by\x20executors.\n\n\r\n\x05\x04\x08\x02\
7401 \x02\x04\x12\x04\xae\x05\x02\n\n\r\n\x05\x04\x08\x02\x02\x06\x12\x04\xae\
7402 \x05\x0b\x13\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\xae\x05\x14$\n\r\n\
7403 \x05\x04\x08\x02\x02\x03\x12\x04\xae\x05'(\n\x0e\n\x04\x04\x08\x03\0\x12\
7404 \x06\xb0\x05\x02\xb6\x05\x03\n\r\n\x05\x04\x08\x03\0\x01\x12\x04\xb0\x05\
7405 \n\x18\nW\n\x06\x04\x08\x03\0\x02\0\x12\x04\xb2\x05\x04+\x1aG\x20TODO(na\
7406 reshmodi):\x20Include\x20some\x20sort\x20of\x20function/cache-key\x20ide\
7407 ntifier?\n\n\x0f\n\x07\x04\x08\x03\0\x02\0\x04\x12\x04\xb2\x05\x04\x0c\n\
7408 \x0f\n\x07\x04\x08\x03\0\x02\0\x06\x12\x04\xb2\x05\r\x15\n\x0f\n\x07\x04\
7409 \x08\x03\0\x02\0\x01\x12\x04\xb2\x05\x16&\n\x0f\n\x07\x04\x08\x03\0\x02\
7410 \0\x03\x12\x04\xb2\x05)*\n\x0e\n\x06\x04\x08\x03\0\x02\x01\x12\x04\xb4\
7411 \x05\x04(\n\x0f\n\x07\x04\x08\x03\0\x02\x01\x06\x12\x04\xb4\x05\x04\x0c\
7412 \n\x0f\n\x07\x04\x08\x03\0\x02\x01\x01\x12\x04\xb4\x05\r#\n\x0f\n\x07\
7413 \x04\x08\x03\0\x02\x01\x03\x12\x04\xb4\x05&'\n\x0e\n\x06\x04\x08\x03\0\
7414 \x02\x02\x12\x04\xb5\x05\x04)\n\x0f\n\x07\x04\x08\x03\0\x02\x02\x06\x12\
7415 \x04\xb5\x05\x04\x0c\n\x0f\n\x07\x04\x08\x03\0\x02\x02\x01\x12\x04\xb5\
7416 \x05\r$\n\x0f\n\x07\x04\x08\x03\0\x02\x02\x03\x12\x04\xb5\x05'(\n\xb8\
7417 \x05\n\x04\x04\x08\x02\x03\x12\x04\xc1\x05\x02.\x1a\xa9\x05\x20This\x20i\
7418 s\x20only\x20populated\x20for\x20graphs\x20that\x20are\x20run\x20as\x20f\
7419 unctions\x20in\x20TensorFlow\n\x20V2.\x20There\x20will\x20be\x20an\x20en\
7420 try\x20below\x20for\x20each\x20function\x20that\x20is\x20traced.\n\x20Th\
7421 e\x20main\x20use\x20cases\x20of\x20the\x20post_optimization_graph\x20and\
7422 \x20the\x20partition_graphs\n\x20is\x20to\x20give\x20the\x20caller\x20in\
7423 sight\x20into\x20the\x20graphs\x20that\x20were\x20actually\x20run\x20by\
7424 \x20the\n\x20runtime.\x20Additional\x20information\x20(such\x20as\x20tho\
7425 se\x20in\x20step_stats)\x20will\x20match\n\x20these\x20graphs.\n\x20We\
7426 \x20also\x20include\x20the\x20pre_optimization_graph\x20since\x20it\x20i\
7427 s\x20usually\x20easier\x20to\n\x20read,\x20and\x20is\x20helpful\x20in\
7428 \x20situations\x20where\x20the\x20caller\x20wants\x20to\x20get\x20a\x20h\
7429 igh\n\x20level\x20idea\x20of\x20what\x20the\x20built\x20graph\x20looks\
7430 \x20like\x20(since\x20the\x20various\x20graph\n\x20optimization\x20passe\
7431 s\x20might\x20change\x20the\x20structure\x20of\x20the\x20graph\x20signif\
7432 icantly).\n\n\r\n\x05\x04\x08\x02\x03\x04\x12\x04\xc1\x05\x02\n\n\r\n\
7433 \x05\x04\x08\x02\x03\x06\x12\x04\xc1\x05\x0b\x19\n\r\n\x05\x04\x08\x02\
7434 \x03\x01\x12\x04\xc1\x05\x1a)\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\xc1\
7435 \x05,-\nI\n\x02\x04\t\x12\x06\xc5\x05\0\xcd\x05\x01\x1a;\x20Defines\x20a\
7436 \x20connection\x20between\x20two\x20tensors\x20in\x20a\x20`GraphDef`.\n\
7437 \n\x0b\n\x03\x04\t\x01\x12\x04\xc5\x05\x08\x18\nq\n\x04\x04\t\x02\0\x12\
7438 \x04\xc8\x05\x02\x19\x1ac\x20A\x20tensor\x20name.\x20The\x20value\x20of\
7439 \x20this\x20tensor\x20will\x20be\x20substituted\x20for\n\x20the\x20tenso\
7440 r\x20named\x20in\x20`to_tensor`.\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\xc8\
7441 \x05\x02\x08\n\r\n\x05\x04\t\x02\0\x01\x12\x04\xc8\x05\t\x14\n\r\n\x05\
7442 \x04\t\x02\0\x03\x12\x04\xc8\x05\x17\x18\ny\n\x04\x04\t\x02\x01\x12\x04\
7443 \xcc\x05\x02\x17\x1ak\x20A\x20tensor\x20name.\x20The\x20value\x20of\x20t\
7444 his\x20tensor\x20will\x20be\x20bound\x20to\x20the\n\x20value\x20of\x20th\
7445 e\x20tensor\x20named\x20in\x20`from_tensor`.\n\n\r\n\x05\x04\t\x02\x01\
7446 \x05\x12\x04\xcc\x05\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xcc\x05\
7447 \t\x12\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\xcc\x05\x15\x16\n\xa9\x01\n\
7448 \x02\x04\n\x12\x06\xd3\x05\0\xa7\x06\x01\x1a\x9a\x01\x20Defines\x20a\x20\
7449 subgraph\x20in\x20another\x20`GraphDef`\x20as\x20a\x20set\x20of\x20feed\
7450 \x20points\x20and\x20nodes\n\x20to\x20be\x20fetched\x20or\x20executed.\n\
7451 \n\x20Compare\x20with\x20the\x20arguments\x20to\x20`Session::Run()`.\n\n\
7452 \x0b\n\x03\x04\n\x01\x12\x04\xd3\x05\x08\x17\nU\n\x04\x04\n\x02\0\x12\
7453 \x04\xd5\x05\x02\x1b\x1aG\x20Tensors\x20to\x20be\x20fed\x20in\x20the\x20\
7454 callable.\x20Each\x20feed\x20is\x20the\x20name\x20of\x20a\x20tensor.\n\n\
7455 \r\n\x05\x04\n\x02\0\x04\x12\x04\xd5\x05\x02\n\n\r\n\x05\x04\n\x02\0\x05\
7456 \x12\x04\xd5\x05\x0b\x11\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xd5\x05\x12\
7457 \x16\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xd5\x05\x19\x1a\n\xe2\x01\n\x04\
7458 \x04\n\x02\x01\x12\x04\xda\x05\x02\x1c\x1a\xd3\x01\x20Fetches.\x20A\x20l\
7459 ist\x20of\x20tensor\x20names.\x20The\x20caller\x20of\x20the\x20callable\
7460 \x20expects\x20a\n\x20tensor\x20to\x20be\x20returned\x20for\x20each\x20f\
7461 etch[i]\x20(see\x20RunStepResponse.tensor).\x20The\n\x20order\x20of\x20s\
7462 pecified\x20fetches\x20does\x20not\x20change\x20the\x20execution\x20orde\
7463 r.\n\n\r\n\x05\x04\n\x02\x01\x04\x12\x04\xda\x05\x02\n\n\r\n\x05\x04\n\
7464 \x02\x01\x05\x12\x04\xda\x05\x0b\x11\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\
7465 \xda\x05\x12\x17\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xda\x05\x1a\x1b\n\
7466 \x88\x01\n\x04\x04\n\x02\x02\x12\x04\xde\x05\x02\x1d\x1az\x20Target\x20N\
7467 odes.\x20A\x20list\x20of\x20node\x20names.\x20The\x20named\x20nodes\x20w\
7468 ill\x20be\x20run\x20by\x20the\n\x20callable\x20but\x20their\x20outputs\
7469 \x20will\x20not\x20be\x20returned.\n\n\r\n\x05\x04\n\x02\x02\x04\x12\x04\
7470 \xde\x05\x02\n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xde\x05\x0b\x11\n\r\n\
7471 \x05\x04\n\x02\x02\x01\x12\x04\xde\x05\x12\x18\n\r\n\x05\x04\n\x02\x02\
7472 \x03\x12\x04\xde\x05\x1b\x1c\n9\n\x04\x04\n\x02\x03\x12\x04\xe1\x05\x02\
7473 \x1d\x1a+\x20Options\x20that\x20will\x20be\x20applied\x20to\x20each\x20r\
7474 un.\n\n\r\n\x05\x04\n\x02\x03\x06\x12\x04\xe1\x05\x02\x0c\n\r\n\x05\x04\
7475 \n\x02\x03\x01\x12\x04\xe1\x05\r\x18\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\
7476 \xe1\x05\x1b\x1c\n\xb0\x01\n\x04\x04\n\x02\x04\x12\x04\xe6\x05\x022\x1a\
7477 \xa1\x01\x20Tensors\x20to\x20be\x20connected\x20in\x20the\x20callable.\
7478 \x20Each\x20TensorConnection\x20denotes\n\x20a\x20pair\x20of\x20tensors\
7479 \x20in\x20the\x20graph,\x20between\x20which\x20an\x20edge\x20will\x20be\
7480 \x20created\n\x20in\x20the\x20callable.\n\n\r\n\x05\x04\n\x02\x04\x04\
7481 \x12\x04\xe6\x05\x02\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\xe6\x05\x0b\
7482 \x1b\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xe6\x05\x1c-\n\r\n\x05\x04\n\
7483 \x02\x04\x03\x12\x04\xe6\x0501\n\xb7\r\n\x04\x04\n\x02\x05\x12\x04\x97\
7484 \x06\x02'\x1a\xa8\r\x20The\x20Tensor\x20objects\x20fed\x20in\x20the\x20c\
7485 allable\x20and\x20fetched\x20from\x20the\x20callable\n\x20are\x20expecte\
7486 d\x20to\x20be\x20backed\x20by\x20host\x20(CPU)\x20memory\x20by\x20defaul\
7487 t.\n\n\x20The\x20options\x20below\x20allow\x20changing\x20that\x20-\x20f\
7488 eeding\x20tensors\x20backed\x20by\n\x20device\x20memory,\x20or\x20return\
7489 ing\x20tensors\x20that\x20are\x20backed\x20by\x20device\x20memory.\n\n\
7490 \x20The\x20maps\x20below\x20map\x20the\x20name\x20of\x20a\x20feed/fetch\
7491 \x20tensor\x20(which\x20appears\x20in\n\x20'feed'\x20or\x20'fetch'\x20fi\
7492 elds\x20above),\x20to\x20the\x20fully\x20qualified\x20name\x20of\x20the\
7493 \x20device\n\x20owning\x20the\x20memory\x20backing\x20the\x20contents\
7494 \x20of\x20the\x20tensor.\n\n\x20For\x20example,\x20creating\x20a\x20call\
7495 able\x20with\x20the\x20following\x20options:\n\n\x20CallableOptions\x20{\
7496 \n\x20\x20\x20feed:\x20\"a:0\"\n\x20\x20\x20feed:\x20\"b:0\"\n\n\x20\x20\
7497 \x20fetch:\x20\"x:0\"\n\x20\x20\x20fetch:\x20\"y:0\"\n\n\x20\x20\x20feed\
7498 _devices:\x20{\n\x20\x20\x20\x20\x20\"a:0\":\x20\"/job:localhost/replica\
7499 :0/task:0/device:GPU:0\"\n\x20\x20\x20}\n\n\x20\x20\x20fetch_devices:\
7500 \x20{\n\x20\x20\x20\x20\x20\"y:0\":\x20\"/job:localhost/replica:0/task:0\
7501 /device:GPU:0\"\n\x20\x20}\n\x20}\n\n\x20means\x20that\x20the\x20Callabl\
7502 e\x20expects:\n\x20-\x20The\x20first\x20argument\x20(\"a:0\")\x20is\x20a\
7503 \x20Tensor\x20backed\x20by\x20GPU\x20memory.\n\x20-\x20The\x20second\x20\
7504 argument\x20(\"b:0\")\x20is\x20a\x20Tensor\x20backed\x20by\x20host\x20me\
7505 mory.\n\x20and\x20of\x20its\x20return\x20values:\n\x20-\x20The\x20first\
7506 \x20output\x20(\"x:0\")\x20will\x20be\x20backed\x20by\x20host\x20memory.\
7507 \n\x20-\x20The\x20second\x20output\x20(\"y:0\")\x20will\x20be\x20backed\
7508 \x20by\x20GPU\x20memory.\n\n\x20FEEDS:\n\x20It\x20is\x20the\x20responsib\
7509 ility\x20of\x20the\x20caller\x20to\x20ensure\x20that\x20the\x20memory\
7510 \x20of\x20the\x20fed\n\x20tensors\x20will\x20be\x20correctly\x20initiali\
7511 zed\x20and\x20synchronized\x20before\x20it\x20is\n\x20accessed\x20by\x20\
7512 operations\x20executed\x20during\x20the\x20call\x20to\x20Session::RunCal\
7513 lable().\n\n\x20This\x20is\x20typically\x20ensured\x20by\x20using\x20the\
7514 \x20TensorFlow\x20memory\x20allocators\n\x20(Device::GetAllocator())\x20\
7515 to\x20create\x20the\x20Tensor\x20to\x20be\x20fed.\n\n\x20Alternatively,\
7516 \x20for\x20CUDA-enabled\x20GPU\x20devices,\x20this\x20typically\x20means\
7517 \x20that\x20the\n\x20operation\x20that\x20produced\x20the\x20contents\
7518 \x20of\x20the\x20tensor\x20has\x20completed,\x20i.e.,\x20the\n\x20CUDA\
7519 \x20stream\x20has\x20been\x20synchronized\x20(e.g.,\x20via\x20cuCtxSynch\
7520 ronize()\x20or\n\x20cuStreamSynchronize()).\n\n\r\n\x05\x04\n\x02\x05\
7521 \x06\x12\x04\x97\x06\x02\x15\n\r\n\x05\x04\n\x02\x05\x01\x12\x04\x97\x06\
7522 \x16\"\n\r\n\x05\x04\n\x02\x05\x03\x12\x04\x97\x06%&\n\x0c\n\x04\x04\n\
7523 \x02\x06\x12\x04\x98\x06\x02(\n\r\n\x05\x04\n\x02\x06\x06\x12\x04\x98\
7524 \x06\x02\x15\n\r\n\x05\x04\n\x02\x06\x01\x12\x04\x98\x06\x16#\n\r\n\x05\
7525 \x04\n\x02\x06\x03\x12\x04\x98\x06&'\n\xf5\x04\n\x04\x04\n\x02\x07\x12\
7526 \x04\xa4\x06\x02\x1b\x1a\xe6\x04\x20By\x20default,\x20RunCallable()\x20w\
7527 ill\x20synchronize\x20the\x20GPU\x20stream\x20before\x20returning\n\x20f\
7528 etched\x20tensors\x20on\x20a\x20GPU\x20device,\x20to\x20ensure\x20that\
7529 \x20the\x20values\x20in\x20those\x20tensors\n\x20have\x20been\x20produce\
7530 d.\x20This\x20simplifies\x20interacting\x20with\x20the\x20tensors,\x20bu\
7531 t\n\x20potentially\x20incurs\x20a\x20performance\x20hit.\n\n\x20If\x20th\
7532 is\x20options\x20is\x20set\x20to\x20true,\x20the\x20caller\x20is\x20resp\
7533 onsible\x20for\x20ensuring\n\x20that\x20the\x20values\x20in\x20the\x20fe\
7534 tched\x20tensors\x20have\x20been\x20produced\x20before\x20they\x20are\n\
7535 \x20used.\x20The\x20caller\x20can\x20do\x20this\x20by\x20invoking\x20`De\
7536 vice::Sync()`\x20on\x20the\x20underlying\n\x20device(s),\x20or\x20by\x20\
7537 feeding\x20the\x20tensors\x20back\x20to\x20the\x20same\x20Session\x20usi\
7538 ng\n\x20`feed_devices`\x20with\x20the\x20same\x20corresponding\x20device\
7539 \x20name.\n\n\r\n\x05\x04\n\x02\x07\x05\x12\x04\xa4\x06\x02\x06\n\r\n\
7540 \x05\x04\n\x02\x07\x01\x12\x04\xa4\x06\x07\x16\n\r\n\x05\x04\n\x02\x07\
7541 \x03\x12\x04\xa4\x06\x19\x1ab\x06proto3\
7542";
7543
7544static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy::INIT;
7545
7546fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
7547 ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
7548}
7549
7550pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
7551 unsafe {
7552 file_descriptor_proto_lazy.get(|| {
7553 parse_descriptor_proto()
7554 })
7555 }
7556}