Skip to content

TCE 字段字典 (A)

本页中的所有字段编号、名称、类型、偏移和地址均适用于 libtpu-0.0.40-cp314 wheel 中的 libtpu.so(build-id 89edbbe81c5b328a958fe628a9f2207dlibtpu_lts_20260413_b_RC00)。其他版本会重新编号并重新分配字段偏移。

摘要

TpuCompilationEnvironment (TCE) 是 TPU 私有的主编译配置 protobuf:一个 editions-proto 消息,包含 1121 个存活字段,其中每一个同时也是已注册的 absl::Flag(完美的 1:1 映射,是 GPU/CPU 共享的 xla.DebugOptions 的结构反面)。本页是该 proto 下半部分字段编号 → 名称 → proto 类型字典:字段编号 1 到 560。对应的上半部分 — 字段 561 到 1218(最大字段编号 1218,带 97 个删除空洞)— 位于 TCE 字段字典 (B)。分割点是精确的,并在下文说明。

该字典由从二进制中 protodesc_cold VA 0xbfa6060(大小 137,692 B)处切出的 TpuCompilationEnvironment FileDescriptorProto 重建,并与生成的快速解析表 TpuCompilationEnvironment::_table_ @ 0x21cfa9e0 交叉校验;其 1121 项 FieldEntry 数组按字段编号升序排序。本页每一行给出字段编号、逐字字段名(本页每个名称都已确认以字节形式存在于二进制的 .rodata 字符串池中)、proto 基础类型,以及 — 对 423 个包装字段而言 — 包装消息/枚举类型。这里刻意重复 C++ 结构体偏移和每字段字面默认值;它们是 TCE 字段偏移与 Flag 默认值 的主题,而结构总览(解析表头、类型直方图、HOT 标签分类、AutoProto switch)见 TpuCompilationEnvironment

对于重新实现者,本页满足的契约狭窄且精确:

  • 字段编号 → 名称。 序列化 TCE proto 在线路上使用的规范编号,也是 GetTpuCompEnvWithDefaultValues 将每个字段解析到其 absl::Flag 时遍历的编号。
  • 名称 → proto 基础类型。 bool / int32 / int64 / uint32 / uint64 / float / double / string / enum / message — 决定值如何解析和存储的线路类型。
  • 包装类型(如果存在)。 非标量字段携带哪个枚举(TristateProto.ValueMemorySchedulerProto.Value,…)或哪个消息(AutoProtoRangeSpecProto、类型化辅助消息)。
ProtoTpuCompilationEnvironment(editions proto,所有字段均为 optional
描述符来源FileDescriptorProto @ 0xbfa6060(137,692 B)
解析表TpuCompilationEnvironment::_table_ @ 0x21cfa9e0(1121 个 FieldEntry,字段编号升序)
本页覆盖字段 #1 – #560(下半部分)
页面 B 覆盖字段 #561 – #1218字典 B
分割边界#560 xla_tpu_ici_sdc_test_run_on_program_start 在此结束;#561 xla_tpu_debug_sflag_wait_timeout_ms 开启页面 B
名称已验证.rodata 字符串中逐字抽查 22 个;0 个未命中

如何阅读这些表

每一行都是一个存活字段,按字段编号升序排列。所有分组的列都一致:

  • # — proto 字段编号(线路 tag)。编号并不连续:TCE 在 1..1218 中有 97 个删除空洞(没有 reserved_range;已删除字段直接从描述符中消失)。本页范围内的空洞列在 §字段编号空洞
  • 字段名 — 逐字 proto 字段名,与注册的 absl::Flag 名称相同。大多数带有 xla_tpu_ / xla_jf_ / xla_ 前缀;少数是裸名(config_criterionloop_invertrematerialization_algorithm)。
  • 类型 — proto 基础类型。对于 enummessage包装 / 消息类型列给出具体类型。

注意 — 423 个非标量字段分为 74 个 enum 类型(其中 67 个是 TristateProto.Value = AUTO/DISABLED/ENABLED,另有 7 个直接辅助枚举)和 349 个 message 类型(330 个是 30 分支 AutoProto switch 包装器;其余 19 个是类型化辅助消息,如 RangeSpecProtoRepeatedStringsmsa.* 选项消息)。包装枚举的逐值表和 AutoProto 分支列表位于 TpuCompilationEnvironment;本页只为每个字段命名包装器。

陷阱 — 字段在本页的位置是它的字段编号,而不是结构体偏移。两者无关:解析表按字段编号对 FieldEntry 排序,但 C++ _impl_ 布局按类型/对齐交错排列它们(字段 #2 位于结构体偏移 +0xBC,字段 #1 位于 +0xB8,字段 #3 位于 +0xA8)。不要从字段编号推断偏移;请使用 TCE 字段偏移与 Flag 默认值


#1 – #30 — 集合通信、跨程序预取、CMEM、嵌入

最低的字段编号是最早 jellyfish 时代的旋钮:all-gather 发射器、net-router 环限制、(现在大多已弃用的)cross-program-prefetch / scoped-CMEM 集群,以及第一个 embedding 可调项。字段 #21 是空洞。

#字段名类型包装 / 消息类型
1xla_enable_async_collective_permuteenumTristateProto.Value
2xla_tpu_sdc_checker_instrument_megacore_fusionbool
3xla_tpu_scoped_vmem_limit_sweep_profile_pathstring
4xla_tpu_allocate_scoped_vmem_at_same_offsetbool
5xla_enable_all_gather_2d_emitterbool
6xla_always_enable_all_gather_2d_asymmetricbool
7xla_enable_all_gather_3d_emitterbool
8xla_always_enable_all_gather_3d_asymmetricbool
9xla_tpu_enable_minor_all_gatherbool
10xla_tpu_use_routing_table_indices_in_all_gatherbool
11xla_tpu_enable_net_router_in_all_gatherbool
12xla_tpu_cross_module_net_router_ring_limitint64
13xla_tpu_cross_replica_net_router_ring_limitint64
14xla_tpu_max_cmem_used_by_memory_space_assignmentint64
15xla_enable_cross_program_prefetchbool
16xla_tpu_enable_cross_program_prefetch_freeingbool
17xla_tpu_cmem_enable_while_redundant_eviction_eliminationbool
18xla_tpu_cmem_max_outstanding_prefetchesint64
19xla_tpu_cmem_max_outstanding_evictionsint64
20xla_tpu_allocate_scoped_cmem_at_same_offsetbool
22xla_default_cross_program_prefetch_heuristicbool
23xla_tpu_ior_cmemstring
24megascale_use_one_to_all_for_gatherbool
25xla_tpu_enable_async_pincer_emitterbool
26xla_tpu_write_cmem_output_via_stores_on_megacorebool
27megascale_use_dcn_all_to_all_in_collectives_maskint64
28xla_hlo_scheduling_brkga_compute_runtime_estimatesbool
29xla_tpu_wait_n_cycles_before_program_terminationint64
30xla_tpu_embedding_table_oblongness_thresholdfloat(is_used_at_runtime)

注意 — 字段 #30 是整个 proto 中仅有的四个带 is_used_at_runtime=true 的字段之一;其他字段(#354、#432 和 xla_tpu_num_embedding_devices)在后文。本位位于 TpuCompEnvFieldOptions 扩展(#535801365)中,而不在解析表中。字段 #4、#14、#15、#16、#17、#18、#19、#20、#22、#23 属于 101 个 deprecated=true 字段,已被按家族划分的 xla_{jf,vf,gf,cmem}_vmem_* 旋钮取代。


#31 – #95 — 调度器、追踪、BRKGA、LLO/LSRA、SDC 检查器

此块以 memory-scheduler 选择器(#31)开头,随后是一串 trace/profile 开关、BRKGA HLO 调度参数、早期 LLO/LSRA 寄存器分配旋钮、combiner 阈值,以及第一个大型 SDC-checker 集群。字段 #21、#44、#45、#54、#59、#70 是此范围内的空洞。

#字段名类型包装 / 消息类型
31xla_memory_schedulerenumMemorySchedulerProto.Value
32xla_enable_profilerbool
33xla_enable_hlo_tracebool
34xla_trace_only_stalling_hlobool
35xla_enable_module_tracebool
36xla_enable_mxu_tracebool
37xla_enable_transpose_tracebool
38xla_jf_trivial_tracesbool
39xla_jf_module_tracemarksbool
40xla_hbm_logging_buffer_size_bytesint64
41xla_hlo_scheduling_brkga_generation_limitint64
42xla_hlo_scheduling_brkga_computation_limitint64
43xla_hlo_scheduling_brkga_enable_as_fallbackbool
46xla_enable_megacore_hbm_spillbool
47xla_enable_lru_free_reg_assignmentbool
48xla_jf_emit_annotationsbool
49xla_jf_llo_levelint32
50xla_jf_naive_bundle_packermessageRangeSpecProto
51xla_jf_track_bundle_dependency_indicesbool
52xla_jf_pack_latchesbool
53xla_jf_bf16_propagationbool
55xla_tpu_arf_combiner_threshold_in_bytesint64
56xla_tpu_ars_combiner_threshold_in_bytesint64
57xla_tpu_agf_combiner_threshold_in_bytesint64
58xla_jf_crs_combiner_threshold_countint64
60xla_jf_bounds_check_annotate_onlymessageRangeSpecProto
61xla_jf_reconstruct_hlo_from_protobool
62xla_jf_slot_tracker_hoist_limitint64
63xla_jf_enable_multi_output_fusionbool
64xla_jf_emit_global_barrier_at_startbool
65xla_jf_lsra_v2_alloc_onlymessageRangeSpecProto
66xla_jf_lsra_v2_reserved_smemint64
67xla_jf_lsra_v2_annotatebool
68xla_jf_llo_rematerialization_parameter_thresholdint64
69xla_ra_splitmessageRangeSpecProto
71xla_jf_rematerialization_percent_shared_memory_limitint64
72xla_tpu_rematerialization_max_block_sizeint64
73xla_tpu_block_rematerialization_factorint64
74xla_tpu_rematerialization_min_size_in_bytesint64
75xla_jf_order_barna_core_feed_serializebool
76xla_jf_order_barna_core_feed_overlapbool
77xla_jf_conditional_code_motionbool
78xla_jf_auto_cross_replica_shardingbool
79xla_jf_use_vdelaybool
80xla_tpu_autotune_windows_servicestring
81xla_tpu_autotune_windowsbool
82xla_tpu_autotune_phase_orderingbool
83xla_tpu_log_post_opt_fingerprintsbool
84xla_tpu_enable_sdc_checkerbool
85xla_tpu_sdc_check_fail_ratio_debug_onlyint64
86xla_tpu_sdc_check_repeat_countint64
87xla_tpu_sdc_check_inputsbool
88xla_tpu_sdc_replicate_llobool
89tpu_sdc_checker_filter_loop_iteration_depthint32
90tpu_sdc_checker_filter_loop_iteration_checkint32
91tpu_sdc_checker_filter_loop_iteration_skipint32
92xla_tpu_sdc_check_halt_on_detectionbool
93xla_tpu_sdc_check_log_full_hlobool
94xla_tpu_sdc_extra_llo_replica_countint64
95xla_tpu_sdc_duplicate_mxu_instructionsbool

#96 – #159 — VLIW 调度、卷积精度、边界检查、IOR/LLVM 后端

一个调度与代码生成块:VLIW 调度器及其 fuel、卷积精度数值项、边界检查 RangeSpec 家族、LLVM 后端开关,以及第一对 loop_invert。空洞:#121、#124–#127、#156。

#字段名类型包装 / 消息类型
96xla_enable_async_all_gatherenumTristateProto.Value
97xla_tpu_enable_log_recorderbool
98xla_jf_all_to_all_shard_kibint64
99xla_tpu_all_to_all_with_different_output_addressesbool
100xla_jf_xlu_optimizerbool
101xla_jf_auto_assign_xlubool
102xla_jf_critical_path_schedulerbool
103xla_jf_load_cse_and_s2l_forwardingbool
104xla_tpu_load_store_optimizationsbool
105xla_jf_accumulation_reassociationbool
106xla_jf_vliw_schedulerbool
107xla_jf_vliw_fuelint64
108xla_tpu_force_send_recv_host_on_same_resourceenumTristateProto.Value
109xla_jf_allow_cross_replica_sharding_on_certain_reducebool
110xla_jf_cross_replica_sharding_also_try_reducing_min_span_by_factorfloat
111xla_tpu_allow_input_fusion_in_certain_reduce_opsbool
112xla_tpu_allow_sharding_on_minor_dimbool
113xla_jf_enable_buffer_aliasbool
114xla_jf_verify_sync_flagsbool
115xla_tpu_verify_matmulbool
116xla_jf_use_rng_bit_generator_emitterbool
117xla_tpu_expand_rng_bit_generatorbool
118xla_jf_module_group_simplifierbool
119xla_tpu_ior_rematbool
120xla_enable_scalar_multiply_reductionbool
122xla_optimize_llo_for_llvmbool
123xla_tpu_run_space_to_batch_on_new_platformsbool
128xla_tpu_min_elements_for_while_loop_concat_code_motionint64
129xla_tpu_sharding_metadatabool
130xla_tpu_reverse_layout_computation_orderbool
131xla_tpu_spmd_threshold_for_allgather_cseint64
132xla_tpu_verify_or_assign_tiling_before_loweringenumVerifyOrAssignTilingFlagsProto.Value
133xla_tpu_spmd_decompose_sharded_concatsbool
134xla_tpu_enable_graph_splittingbool
135xla_jf_always_use_windowed_reducebool
136xla_tpu_max_kept_sublanes_for_reduceint64
137xla_tpu_check_nan_on_reducebool
138xla_tpu_use_tree_reducebool
139xla_tpu_uni_direction_ring_max_size_2d_planeint64
140xla_tpu_1d_uni_direction_ring_min_input_size_chunksint64
141xla_tpu_nd_short_transfer_max_chunksint64
142xla_tpu_enable_pincer_short_emitterbool
143xla_tpu_permute_size4_cross_module_ringsbool
144xla_tpu_enable_2d_cross_module_reduce_scatterbool
145xla_tpu_use_strided_strategy_ndbool
146xla_tpu_checksum_all_reduce_transfersbool
147xla_tpu_enforce_two_phase_sharding_topologybool
148xla_tpu_use_routing_table_indices_in_all_reducebool
149xla_max_concurrent_send_recvint32
150xla_tpu_enable_latency_hiding_schedulerbool
151xla_tpu_licm_analysis_allowanceint64
152xla_tpu_scheduler_percent_shared_memory_limitint64
153xla_tpu_spmd_auto_partitioningbool
154xla_tpu_perform_spmd_cse_preventionbool
155xla_tpu_verify_device_assignment_in_runtimebool
157xla_jf_experimental_vmem_for_hlo_outputsint64
158xla_jf_use_cost_based_memory_coloringbool
159xla_jf_always_overlaybool

怪异点 — 字段 #132 xla_tpu_verify_or_assign_tiling_before_loweringVerifyOrAssignTilingFlagsProto.Value 枚举(NONE=0 / VERIFY=1 / ASSIGN=2),不是 bool。若重新实现者把每个 xla_tpu_*verify* 旋钮都当作布尔开关,就会误解析这个字段 — 它控制结构体偏移 +0xDFC 处消费的 tile-mode 选择器。


#160 – #219 — 循环反转、ISA 发射器、IOR/MSA、LLVM、插桩

loop_invert / ISA-emitter RangeSpec 集群、IOR fast-mem 和 stored-solution MSA 旋钮、LLVM 后端组、HLO-dedup 对,以及 bf16-coalescing / rematerialization-algorithm 旋钮。两个裸名字符串 config_criterion(#209)和 rematerialization_algorithm(#212)出现在这里。空洞:#214、#218。

#字段名类型包装 / 消息类型
160loop_invertmessageRangeSpecProto
161loop_invert_modulesmessageRangeSpecProto
162xla_llvm_isa_emitterbool
163xla_llvm_isa_emitter_bundlesmessageRangeSpecProto
164xla_llvm_isa_emitter_forcebool
165xla_run_scoped_memory_assignmentbool
166xla_jf_loop_trip_countint32
167xla_jf_internal_prefetch_overlaysbool
168xla_tpu_last_overlay_prefetches_firstbool
169xla_tpu_put_trap_at_hlo_marker_indexint64
170xla_tpu_single_overlay_modebool
171internal_embedding_emitter_fraction_vmem_availabledouble
172xla_allow_hoisting_across_branchbool
173xla_jf_avoid_cross_slot_vmem_bank_conflictsbool
174xla_jf_shard_f32_weight_across_loop_iterationsbool
175xla_jf_allow_cross_replica_sharding_on_batch_matmulbool
176xla_jf_fusion_max_vmem_mibdouble
177xla_tpu_pack_vloadsbool
178xla_tpu_pack_cloadsbool
179xla_tpu_sublane_shift_scratchpad_sizeint64
180xla_tpu_small_operand_count_for_loop_fusionint64
181xla_jf_fusion_max_instruction_count_for_window_configint64
182xla_tpu_copy_fusion_allow_splitbool
183xla_tpu_allow_in_cmem_copybool
184xla_jf_crs_combiner_threshold_in_bytesint64
185xla_jf_enable_hlo_pipelinebool
186xla_ior_fast_mem_run_production_msabool
187xla_ior_fast_mem_round_trip_production_msabool
188xla_ior_use_stored_solutionbool
189xla_ior_stored_solution_pathstring
190xla_use_llvm_backendbool
191xla_llvm_generate_xla_compatible_dwgbool
192xla_jf_llvm_use_fast_optbool
193xla_jf_llo2llvm_timing_infobool
194xla_jf_llvm_use_bitcode_dumpbool
195xla_jf_llvm_flagsmessageRepeatedStrings
196xla_jf_tanh_increased_precisionbool
197xla_jf_poison_vmem_allocationsbool
198xla_jf_hlo_deduplicate_onlystring
199xla_jf_hlo_deduplicationbool
200xla_tpu_instrument_hlo_operationsbool
201xla_tpu_instrumentation_configstring
202xla_tpu_merge_small_overlays_into_big_neighborsbool
203xla_tpu_net_router_trace_me_instrumentationbool
204xla_tpu_use_custom_tree_barrierbool
205xla_tpu_use_routing_table_indices_in_net_routerbool
206xla_tpu_use_routing_table_indices_in_tree_barrierbool
207bf16_coalescing_dump_killed_candidate_pairsbool
208bf16_coalescing_ignore_distance_for_pairingbool
209config_criterionstring
210jf_xla_partial_reduce_hbm_bw_ratiodouble
211jf_xla_partial_reduce_use_roofline_cost_fnbool
212rematerialization_algorithmstring
213rematerialize_even_if_memory_limit_not_reachedbool
215tpu_use_continuationsbool
216treewidth_rematerialization_minimize_memorybool
217use_op_tuner_configbool
219xla_enable_tracebool

#220 – #294 — AutoFDO 起点、卷积融合、流水线化、覆盖压缩、JF VMEM 家族

第一个 AutoFDO 开关、conv-fusion / conv-precision 数值块、JF 流水线化旋钮、overlay-compression 和 single-phase-ring 传输参数,以及按家族划分的 JF VMEM MSA 集群(#275–#286)的起点。空洞:#244–#247、#250–#254、#268、#292、#294。

#字段名类型包装 / 消息类型
220xla_tpu_autofdobool
221xla_jf_auto_assign_mxubool
222xla_jf_auto_latch_lmrbool
223xla_jf_bf16_inside_cross_replica_sumbool
224xla_jf_bounds_checkmessageRangeSpecProto
225xla_jf_bounds_check_stridebool
226xla_jf_bounds_check_verbosebool
227xla_jf_collect_llo_stack_tracebool
228xla_jf_conv_base_dilation_adversarybool
229xla_jf_conv_full_precisionbool(NUMERICS)
230xla_jf_conv_increased_precisionbool(NUMERICS)
231xla_jf_conv_input_fusionbool
232xla_jf_conv_min_limit_vmem_mibdouble
233xla_jf_conv_output_fusionbool
234xla_jf_conv_prefers_padding_input_featurebool
235xla_jf_conv_reshape_fusionbool
236xla_jf_convolution_performance_targetdouble
237xla_jf_cp_pass_enabledbool
238xla_tpu_crs_bounds_check_threshold_chips_countint64
239xla_jf_debug_levelint64
240xla_jf_enable_final_priority_fusionbool
241xla_jf_enable_pipeliningbool
242xla_jf_enable_producer_consumer_multi_output_fusionbool
243xla_jf_experimental_cmem_for_hlo_outputsint64
248xla_jf_log_hlo_outputbool
249xla_jf_line_info_in_symbol_tablebool
255xla_jf_overlay_compression_thresholdint64
256xla_jf_poison_operands_before_emitterbool
257xla_jf_profile_cheap_opsbool
258xla_jf_program_hbm_alignment_in_kibint64
259xla_jf_random_latencybool
260xla_vf_vmem_use_ior_algorithmstring
261xla_jf_simplifier_pass_enabledbool
262xla_jf_single_phase_ring_max_kibint64
263xla_jf_single_phase_ring_thresholdint64
264xla_jf_span_size_in_kibint64
265xla_jf_spmd_conv_halo_exchange_always_on_lhsbool
266xla_jf_spmd_report_instruction_countint64
267xla_jf_spmd_threshold_for_windowed_einsum_mibint64
269xla_jf_tune_large_vmembool
270xla_jf_use_hw_constantsbool
271xla_jf_use_multi_colors_in_all_reduce_if_supportedbool
272xla_jf_use_rotated_pincer_emitterbool
273xla_jf_use_rotated_pincer_ring_emitterbool
274xla_jf_use_single_phase_ring_emitterbool
275xla_jf_vmem_default_cross_program_prefetch_heuristicbool
276xla_jf_vmem_enable_cross_program_prefetchbool
277xla_jf_vmem_enable_while_redundant_eviction_eliminationbool
278xla_jf_vmem_max_outstanding_evictionsint64
279xla_jf_vmem_max_outstanding_prefetchesint64
280xla_jf_vmem_max_overlap_to_mem_size_async_copy_ratiofloat
281xla_jf_vmem_max_repacksint64
282xla_jf_vmem_max_retriesint64
283xla_jf_vmem_memory_space_assignmentbool
284xla_jf_vmem_min_overlap_to_async_copy_ratiofloat
285xla_jf_vmem_preferred_overlap_to_async_copy_ratiofloat
286xla_jf_vmem_use_ior_algorithmstring
287xla_tpu_vmem_use_telamallocbool
288xla_max_concurrent_async_all_gathersint32
289xla_max_concurrent_async_collective_permutesint32
290xla_max_concurrent_host_send_recvint32
291xla_max_decomposed_all_reducesint64
293xla_set_split_input_output_dmasbool

注意 — xla_jf_vmem_* 块(#275–#286)是按家族划分的 MSA overlap-ratio 家族中的 jellyfish 分支。它在本页后面的 xla_vf_vmem_*(#436–#447)、xla_tpu_cmem_*(#309–#315)和 xla_gf_vmem_*(#533–#547)分支中逐字段镜像。每个分支中的三个 float 比率(max / min / preferred overlap-to-async-copy)是 MSA 成本模型调优面;按版本的 overlay 会选择其中一个分支。


#295 – #354 — SparseCore 追踪、All-Reduce VMEM、CMEM MSA 家族、NaN 检测、Megacore 融合

第一个 AutoProto 类型字段(#295)、all-reduce VMEM contingency 旋钮、xla_tpu_cmem_* MSA 分支、copy-fusion 集群、NaN/Inf/special-FP 检测开关,以及 megacore-fusion 启用 Tristate(#344)。空洞:#303、#335。

#字段名类型包装 / 消息类型
295xla_sparse_core_enable_hardware_tracingmessageAutoProto (SPARSE_CORE)
296xla_tpu_add_llo_regions_to_symbol_tablebool
297xla_tpu_all_reduce_vmem_contingency_kibint64
298xla_tpu_assign_all_reduce_scatter_layoutbool
299xla_tpu_auto_reduce_precisionbool
300xla_tpu_auto_spmd_keep_all_user_shardingsbool
301xla_tpu_auto_spmd_partitioning_memory_budget_gbint64
302xla_tpu_autofdo_skip_hlo_fingerprintsmessageRepeatedStrings
304xla_tpu_autotune_databasestring
305xla_tpu_binomial_all_reduce_use_physical_core_idsbool
306xla_tpu_block_rematerialization_record_statsbool
307xla_tpu_check_llo_typesbool
308xla_tpu_choose_faster_windowed_einsum_over_membool
309xla_tpu_cmem_max_overlap_to_mem_size_async_copy_ratiofloat
310xla_tpu_cmem_max_repacksint64
311xla_tpu_cmem_max_retriesint64
312xla_tpu_cmem_memory_space_assignmentbool
313xla_tpu_cmem_min_overlap_to_async_copy_ratiofloat
314xla_tpu_cmem_preferred_overlap_to_async_copy_ratiofloat
315xla_tpu_cmem_use_telamallocbool
316xla_tpu_conditional_code_motion_configstring
317xla_tpu_copy_elision_analysis_allowanceint64
318xla_tpu_copy_fusion_minimum_copy_size_in_bytesint64
319xla_tpu_copy_fusion_pad_unpad_ratiodouble
320xla_tpu_copy_fusion_thresholdint64
321xla_tpu_copy_insertion_use_region_analysisbool
322xla_tpu_copy_insertion_use_region_analysis_limitint64
323xla_tpu_decompose_all_gather_fusionbool
324xla_tpu_decompose_all_reduce_bidirectional_communicationbool
325xla_tpu_decompose_reduce_scatter_fusionbool
326xla_tpu_deduplicated_hlo_min_bundle_countint64
327xla_tpu_detect_infbool
328xla_tpu_detect_llo_nanbool
329xla_tpu_detect_nanbool
330xla_tpu_detect_only_on_fusionbool
331xla_tpu_detect_special_fpbool
332xla_tpu_dot_dot_fusionbool
333xla_tpu_dot_dot_fusion_duplicatedbool
334xla_tpu_dot_dot_fusion_separable_convs_onlybool
336xla_tpu_enable_all_experimental_scheduler_featuresbool
337xla_tpu_enable_all_reduce_scatter_fusionbool
338xla_tpu_enable_asymmetric_max_colorsbool
339xla_tpu_enable_copy_fusionbool
340xla_tpu_enable_copy_permute_minor_fusionbool
341xla_tpu_enable_cross_module_binomial_all_reducebool
342xla_tpu_enable_deduplicated_callsenumTristateProto.Value
343xla_tpu_enable_experimental_fusion_cost_modelbool
344xla_tpu_enable_megacore_fusionenumTristateProto.Value
345xla_tpu_enable_megascale_barrierbool
346xla_tpu_enable_multi_level_input_dot_dot_fusionbool
347xla_tpu_enable_multi_level_nested_dot_fusionbool
348xla_tpu_enable_multi_level_nested_loop_fusionbool
349xla_tpu_enable_multi_level_output_dot_dot_fusionbool
350xla_tpu_enable_nd_wus_on_partial_active_dimsbool
351xla_tpu_enable_pincer_short_fusion_emitterbool
352xla_tpu_enable_scheduler_memory_pressure_trackingenumTristateProto.Value
353xla_tpu_enable_sparse_gradient_rewritebool
354xla_tpu_enable_untiled_layoutbool(is_used_at_runtime)

陷阱 — xla_tpu_detect_inf(#327)和 xla_tpu_detect_nan(#329)是 TCE proto 字段,不同于同名的 xla.DebugOptions 字段(#136/#135)。TCE 字段接入 flag,并由 absl 默认值物化;DebugOptions 字段则天生是 proto3 零值(FALSE),除非 flag override 层设置它们。重新实现 detect-NaN 路径时不要混淆这两个 proto。


#355 – #432 — Untiled 布局、实验性填充、Megacore-Fusion 调优、Poison-Padding、SPMD Windowed Einsum

untiled-VMEM-DMA 开关、实验性量化/padding 旋钮、megacore-fusion margin/scaling float、MSA while-execution 计数、nested-dot-fusion 集群、poison-padding 对、RWB-fusion bool,以及 SPMD windowed-einsum 分解块。空洞:#356–#359、#362、#379、#401、#419、#422。

#字段名类型包装 / 消息类型
355xla_tpu_enable_vmem_to_vmem_dmasbool
360xla_tpu_experimental_allow_fast_quantization_conversionsbool
361xla_tpu_experimental_cmem_fraction_for_hlo_outputsfloat
363xla_tpu_experimental_max_concat_padding_ratiodouble
364xla_tpu_experimental_max_padding_gibdouble
365xla_tpu_extra_hoisting_range_for_register_producersint64
366xla_tpu_force_startup_barrier_in_binomial_all_reducebool
367xla_tpu_force_vmem_dma_and_spansbool
368xla_tpu_fusion_config_collectionstring
369xla_tpu_handle_reduce_window_as_convolutionbool
370xla_tpu_hbm_bwdouble
371xla_tpu_hbm_initial_cycle_penaltyint64
372xla_tpu_input_conv_multi_usersbool
373xla_tpu_insert_dummy_fusions_on_conv_kernelsbool
374xla_tpu_licm_size_inflation_ratiofloat
375xla_tpu_llo_compilation_max_retriesint32
376xla_tpu_local_dma_pipe_dma_from_cmem_min_chunksint64
377xla_tpu_local_dma_pipe_dma_to_cmem_min_chunksint64
378xla_tpu_log_current_and_new_fusion_cost_modelsbool
380xla_tpu_max_clustered_loadsint64
381xla_tpu_max_vld_live_rangeint64
382xla_tpu_max_vmreg_live_rangeint64
383xla_tpu_megacore_fusion_allow_agsbool
384xla_tpu_megacore_fusion_disable_live_out_agsbool
385xla_tpu_megacore_fusion_good_overload_marginfloat
386xla_tpu_megacore_fusion_latency_bound_ar_fusion_sizeint64
387xla_tpu_megacore_fusion_orthogonal_agbool
388xla_tpu_megacore_fusion_orthogonal_arsbool
389xla_tpu_megacore_fusion_scaling_factorfloat
390xla_tpu_memory_space_assignment_while_execution_countint64
391xla_tpu_multioutput_fusion_max_operandsint64
392xla_tpu_nested_dot_fusionbool
393xla_tpu_nested_dot_fusion_supported_custom_opsstring
394xla_tpu_nested_dot_fusion_vmem_fractiondouble
395xla_tpu_op_tracemarksbool
396xla_tpu_optimize_bf16_mathbool(NUMERICS)
397xla_tpu_order_dot_after_layoutbool
398xla_tpu_override_rwb_tpu_limitationbool
399xla_tpu_poison_paddingbool
400xla_tpu_poison_padding_valueint32
402xla_tpu_prefer_async_allgather_to_allreducebool
403xla_tpu_prefer_binomial_single_phase_ring_emitterbool
404xla_tpu_prefer_dynamic_padbool
405xla_tpu_profile_traceme_levelint32
406xla_tpu_random_all_reduce_delay_maskuint32
407xla_tpu_reduce_window_reduction_dim_maxint64
408xla_tpu_remove_bf16_bitcast_converts_for_allbool
409xla_tpu_room_for_potential_register_dependencyint64
410xla_tpu_rotated_pincer_pack_allgather_fusionbool
411xla_tpu_run_all_reduce_simplifierbool
412xla_tpu_run_space_to_batchbool
413xla_tpu_rwb_fusionbool
414xla_tpu_schedule_send_recvsenumTristateProto.Value
415xla_tpu_scheduler_using_real_cost_modelenumTristateProto.Value
416xla_tpu_scoped_cmem_for_all_reduceint64
417xla_tpu_scoped_hbm_for_all_reduceint64
418xla_tpu_scoped_vmem_limit_kibint64
420xla_tpu_sg_sshfl_ignore_bitsint64
421xla_tpu_short_pincer_single_step_max_chunks_per_chipint64
423xla_tpu_spmd_bidirectional_windowed_einsumbool
424xla_tpu_spmd_f32_accum_for_bf16_arbool
425xla_tpu_spmd_rng_bit_generator_unsafebool
426xla_tpu_spmd_unroll_windowed_einsumbool
427xla_tpu_spmd_windowed_einsum_decompose_agbool
428xla_tpu_spmd_windowed_einsum_decompose_rsbool
429xla_tpu_store_to_load_forwarding_windowint64
430xla_tpu_threshold_for_long_live_range_in_flowdownint64
431xla_tpu_uni_direction_ring_max_sizeint64
432xla_tpu_untiled_layout_for_1D_onlybool(is_used_at_runtime)

注意 — xla_tpu_rwb_fusion(#413)是两个 absl 默认值为 TRUE 的字段之一(另一个是页面 B 上的 xla_tpu_accumulate_into_mrb,#597),尽管早先读取到的帮助字符串为 false。已注册的 flag 默认值以字节为权威;帮助文本描述的是行为,而不是默认值。见 TCE 字段偏移与 Flag 默认值


#433 – #497 — 激进调度、VF VMEM 家族、异步 Collective 融合、AutoFDO/Autotune

aggressive-scheduling Tristate、完整的 xla_vf_vmem_* MSA 分支(#436–#447)、send/recv aggregation 集群、async-collective-fusion 块(第一个 SparseDenseMatmulFdoConfig 消息位于 #462)、AutoFDO module flags,以及 autotune-by-pass 开关。空洞:#434、#448、#468、#470、#481、#484、#491。

#字段名类型包装 / 消息类型
433xla_tpu_use_aggressive_schedulingenumTristateProto.Value
435xla_tpu_use_resilient_collective_emitterbool
436xla_vf_vmem_default_cross_program_prefetch_heuristicbool
437xla_vf_vmem_enable_cross_program_prefetchbool
438xla_vf_vmem_enable_cross_program_prefetch_freeingbool
439xla_vf_vmem_enable_while_redundant_eviction_eliminationbool
440xla_vf_vmem_max_outstanding_evictionsint64
441xla_vf_vmem_max_outstanding_prefetchesint64
442xla_vf_vmem_max_overlap_to_mem_size_async_copy_ratiofloat
443xla_vf_vmem_max_repacksint64
444xla_vf_vmem_max_retriesint64
445xla_vf_vmem_memory_space_assignmentbool
446xla_vf_vmem_min_overlap_to_async_copy_ratiofloat
447xla_vf_vmem_preferred_overlap_to_async_copy_ratiofloat
449xla_tpu_enable_send_recv_aggregationbool
450xla_tpu_enable_data_parallel_all_reduce_optbool(PIPELINER)
451xla_tpu_vector_load_fusion_windowint64
452xla_tpu_fuse_only_phase0_in_2d_reduce_scatterbool
453xla_tpu_sdc_checker_log_inputs_on_sdc_eventbool
454xla_tpu_enable_expression_constant_splitterbool
455xla_jf_hlo_deduplication_all_uniquebool
456xla_tpu_pre_fusion_rematbool
457xla_tpu_sc_megachip_temporal_reusebool
458xla_tpu_enable_async_all_to_allbool
459xla_tpu_auto_spmd_partitioning_memory_budget_ratiofloat
460xla_sc_disable_megacore_partitioningbool
461xla_tpu_enable_async_collective_fusionbool
462xla_tpu_sparse_dense_matmul_fdo_configmessageSparseDenseMatmulFdoConfig
463xla_tpu_enable_async_collective_fusion_multiple_stepsbool
464xla_vf_max_vmem_used_by_memory_space_assignmentint64
465xla_tpu_enable_async_collective_fusion_fuse_all_gatherenumTristateProto.Value
466xla_tpu_enable_async_collective_fusion_fuse_all_reducebool
467xla_tpu_megacore_fusion_orthogonal_ars_marginfloat
469xla_tpu_autofdo_module_flagsbool
471xla_tpu_autofdo_module_layoutsbool
472xla_tpu_autofdo_skip_module_fingerprintsmessageRepeatedStrings
473xla_tpu_autotune_dotsbool
474xla_tpu_autotune_flagsbool
475xla_tpu_autotune_fusionsbool
476xla_tpu_autotune_layoutsbool
477xla_tpu_autotune_memory_space_assignmentbool
478xla_tpu_split_cluster_gapint64
479xla_tpu_split_cluster_sizeint64
480xla_tpu_autofdo_hlo_module_size_thresholdint32
482xla_tpu_custom_fusion_no_global_unfusiblebool
483xla_tpu_custom_fusion_traverse_edges_twicebool
485xla_tpu_overlap_compute_collective_tcbool
486xla_tpu_max_send_recv_aggregationint32
487xla_tpu_vmac_transform_strategyenumTpuVmacTransformStrategyProto.Value
488xla_tpu_vector_store_fusion_windowint64
489xla_tpu_async_copy_bandwidth_scaling_factorfloat
490xla_tpu_metrics_filename_prefixstring
492xla_tpu_enable_domain_passesbool
493xla_tpu_experimental_enable_dynamic_int8_quantizationbool
494xla_max_cross_program_prefetchesint64
495xla_tpu_enable_host_aware_passesbool
496xla_tpu_disallow_in_alt_memstring
497xla_tpu_allow_deeply_nested_fusion_numerical_diffbool

#498 – #560 — 预取 FIFO、ICI-SDC 测试、数据并行 DCN、GF VMEM 家族、AG 流水线化

本页的收尾块:prefetch-interval-picker override、数值项 accurate_log2、ICI-SDC 自测集群(#516–#521、#560)、数据并行 DCN 流水线化旋钮、完整的 xla_gf_vmem_* MSA 分支(#533–#547)、overlay-profiler 开关,以及 AG-backward-pipelining 组。空洞:#506、#509、#511、#515、#527、#530、#531、#546。

#字段名类型包装 / 消息类型
498xla_tpu_prefetch_interval_picker_size_overrideint64
499xla_tpu_force_1d_allreduce_at_chunk_countint64
500xla_tpu_enable_aggressive_loop_fusion_layout_optbool
501xla_tpu_use_repeated_instance_for_preferred_prefetch_timebool
502xla_tpu_enforce_prefetch_fifo_orderbool
503xla_tpu_reduce_loop_fusion_dup_with_unfusable_userbool
504xla_tpu_accurate_log2bool(NUMERICS)
505xla_tpu_dcn_max_overlap_estimationfloat
507xla_tpu_autofdo_op_windowsbool
508xla_tpu_dcn_overlap_limitint64
510xla_tpu_enable_log_recorder_partitioned_loggingbool
512xla_tpu_no_crash_on_oombool
513xla_lhs_enable_release_start_policybool
514xla_tpu_debug_sflag_wait_shalt_on_detectionuint32
516xla_tpu_ici_sdc_test_buffer_size_chunksint32
517xla_tpu_ici_sdc_test_packet_size_chunksint32
518xla_tpu_ici_sdc_test_iterationsint32
519xla_tpu_ici_sdc_test_max_distanceint32
520xla_tpu_ici_sdc_test_pipeline_depthint32
521xla_tpu_ici_sdc_test_inject_mismatch_for_testing_onlybool
522xla_tpu_mock_send_recv_hostbool
523xla_tpu_data_parallel_dcn_ar_dual_pipelininguint32(PIPELINER)
524xla_tpu_enable_aggressive_broadcast_priority_updatebool
525xla_tpu_data_parallel_opt_different_sized_opsuint32(PIPELINER)
526xla_tpu_ars_halo_exchange_countint64
528xla_tpu_dus_emitter_desired_update_window_chunk_countint64
529xla_tpu_spmd_f32_accum_for_bf16_ar_min_subgroup_sizeint64
532xla_tpu_show_overlay_waits_in_profilerbool
533xla_gf_vmem_use_ior_algorithmstring
534xla_gf_vmem_default_cross_program_prefetch_heuristicbool
535xla_gf_vmem_enable_cross_program_prefetchbool
536xla_gf_vmem_enable_cross_program_prefetch_freeingbool
537xla_gf_vmem_enable_while_redundant_eviction_eliminationbool
538xla_gf_vmem_max_outstanding_evictionsint64
539xla_gf_vmem_max_outstanding_prefetchesint64
540xla_gf_vmem_max_overlap_to_mem_size_async_copy_ratiofloat
541xla_gf_vmem_max_repacksint64
542xla_gf_vmem_max_retriesint64
543xla_gf_vmem_memory_space_assignmentbool
544xla_gf_vmem_min_overlap_to_async_copy_ratiofloat
545xla_gf_vmem_preferred_overlap_to_async_copy_ratiofloat
547xla_gf_max_vmem_used_by_memory_space_assignmentint64
548xla_tpu_allow_multi_dim_reduce_rwbbool
549xla_tpu_show_overlay_overhead_in_profilerbool
550xla_tpu_show_overlay_details_in_profilerbool
551xla_tpu_overlay_allocation_table_sizeint64
552xla_tpu_enable_ag_backward_pipeliningbool(PIPELINER)
553xla_tpu_prefuse_self_attentionbool
554xla_tpu_enable_indexing_optimizationsint64
555xla_tpu_allow_layout_negotiationbool
556xla_tpu_backward_propagate_reducebool
557xla_tpu_decompose_all_gather_einsumbool
558xla_tpu_decompose_einsum_reduce_scatterbool
559xla_tpu_keep_hlo_proto_literals_up_touint64
560xla_tpu_ici_sdc_test_run_on_program_startbool

注意 — 字段 #560 xla_tpu_ici_sdc_test_run_on_program_start 是本页最后一个字段。下一个字段 #561 xla_tpu_debug_sflag_wait_timeout_ms(uint32)开启 TCE 字段字典 (B)。边界是精确的:本页拥有 1 ≤ field# ≤ 560,页面 B 拥有 561 ≤ field# ≤ 1218


#1–#560 中的字段编号空洞 {#field-number-gaps-in-1560}

编号并不连续:TCE 不携带 reserved_rangereserved_name,因此已删除字段只会留下一个空洞。本页范围内的空洞 — 1..560 中每个不是上方存活字段的字段编号 — 如下:

text
21, 44, 45, 54, 59, 70, 121, 124, 125, 126, 127, 156, 214, 218,
244, 245, 246, 247, 250, 251, 252, 253, 254, 268, 292, 294, 303,
335, 356, 357, 358, 359, 362, 379, 401, 419, 422, 434, 448, 468,
470, 481, 484, 491, 506, 509, 511, 515, 527, 530, 531, 546
```text

> **陷阱 —** 这些空洞是删除项,不是声明保留的范围。切出描述符的重新实现者不能假设字段集是连续的 `1..N`;应遍历实际的 `FieldEntry` 数组(升序排序)并跳过缺失编号。跨 `1..1218` 的完整 97 空洞列表位于 [TpuCompilationEnvironment](tpu-compilation-environment.md);上面的切片是 #561 以下的部分。

---

## #1–#560 内的类型分布

作为参照,本页 508 个存活字段的 proto 基础类型混合如下(下半部分 bool 较多,与早期 jellyfish 开关时代一致):

| 基础类型 | 备注 |
|---|---|
| bool | 主导类型;大多数早期旋钮是简单功能开关 |
| int64 | 阈值、计数、字节限制、环大小 |
| int32 | 较小的整数集合(trip counts、retry caps、ICI-SDC 测试大小) |
| uint32 / uint64 | 少量:delay masks(#406)、`keep_hlo_proto_literals_up_to`(#559)、DCN-pipelining(#523/#525)、sflag-wait shalt(#514) |
| float / double | MSA overlap ratio 和 megacore-fusion / 成本模型缩放因子 |
| string | profile 路径、config selector、文件名前缀、`config_criterion` / `rematerialization_algorithm` |
| enum | 此范围内 13 个;以 `TristateProto.Value` 为主,另有 `MemorySchedulerProto.Value`(#31)、`VerifyOrAssignTilingFlagsProto.Value`(#132)、`TpuVmacTransformStrategyProto.Value`(#487) |
| message | `RangeSpecProto`(bounds/ISA-emitter 旋钮)、`RepeatedStrings`(LLVM flags、FDO skip lists)、第一个 `AutoProto`(#295),以及类型化辅助消息(`SparseDenseMatmulFdoConfig` #462) |

全 proto 直方图(418 bool / 148 int64 / 349 message / 74 enum / 37 string / 34 float / 32 int32 / 14 double / 11 uint32 / 4 uint64)以及从解析表推导出的 `type_card` 证明见 [TpuCompilationEnvironment](tpu-compilation-environment.md)。

---

## 置信度

本页上的每个字段编号、名称和类型都是 **CERTAIN**:名称来自从二进制中切出的 `TpuCompilationEnvironment` `FileDescriptorProto`,并与 `TpuCompilationEnvironment::_table_` @ `0x21cfa9e0` 的 1121 项 `FieldEntry` 数组交叉校验,其条目顺序按字段编号排序。跨完整 #1–#560 范围的 22 个名称还额外确认以字节形式、逐字存在于二进制的 `.rodata` 字符串池中(0 个未命中),包括包装类型字符串 `TristateProto`、`VerifyOrAssignTilingFlags`、`AutoProto` 和 `RangeSpecProto`。少数字段以斜体显示的 HOT 子系统标签(NUMERICS、PIPELINER、SPARSE_CORE)和四个 `is_used_at_runtime` 标记来自 `TpuCompEnvFieldOptions` 字段选项扩展(#535801365),置信度为 **HIGH** — 它们从描述符恢复,而不是来自解析表;并非每个带标签字段都在此标注(完整 HOT 拆分见 [TpuCompilationEnvironment](tpu-compilation-environment.md))。本页没有 LOW 置信度字段。

---

## 交叉引用

- [TCE 字段字典 (B)](tce-field-dictionary-b.md) — 上半部分:字段 #561 – #1218,相同的 field#→name→type 语法
- [TpuCompilationEnvironment](tpu-compilation-environment.md) — 结构总览:解析表头、类型直方图、HOT 标签分类、包装枚举值表、30 分支 AutoProto switch
- [TCE 字段偏移与 Flag 默认值](tce-field-offsets-defaults.md) — 每个字段的 C++ 结构体偏移和字面默认值;kGenFunc-vs-inline FlagImpl 机制
- [配置与编译旋钮 — 总览](overview.md) — TCE proto 如何与 DebugOptions 和 flag 注册表一起位于 PJRT 编译路径中
- [第 XVI 部分 — 配置与编译旋钮](../index.md) — 索引条目