旗帜目录(完整)
此页面上的所有计数、符号和偏移量适用于
libtpu-0.0.40-cp314轮中的libtpu.so(构建libtpu_lts_20260413_b_RC00,构建 id md589edbbe81c5b328a958fe628a9f2207d,781,691,048 字节,ELF x86-64 DYN,未剥离)。其他版本有所不同。
摘要
本附录是 libtpu 标志表面的 详尽的前缀索引:每个 XLA_FLAGS / LIBTPU_INIT_ARGS / xla.DebugOptions 名称字符串二进制寄存器,按前缀分组,每组计数,代表性枚举子集,推断类型以及字节证明的默认值(其中一个存活)。它是 xla-flag-atlas.md 中分组叙述的机器式伴侣:图集解释了高信号旋钮的作用;此页面是读者 greps 的完整参考表。如果两者在计数上存在分歧,则该页面获胜 - 它的数字直接来自二进制文件。
权威名称 census 是损坏的辅助符号集。每个 absl::Flag<T> FLAGS_<name> 全局都会发出一个 _ZN<len>AbslFlagHelpGenFor<name>8NonConstEv 辅助符号,因此该符号集是注册标志的 1:1 枚举;长度前缀解析准确地恢复每个 <name>。该二进制文件携带2048这样不同的符号——注册标志计数。另一组名称仅出现在 .rodata 中(已弃用的别名,仅错误消息引用),不受实时 AbslFlagHelpGenFor 符号支持;将这些折叠起来产生2107不同的标志名称。这两个数字回答了两个不同的问题:2048 是“可以设置多少个标志”,2107 是“二进制文件中以字符串形式存在多少个标志名称”。两者都在下面使用,每行都明确标记。
每个标志都可以通过一个漏斗设置:LIBTPU_INIT_ARGS(env string @ file 0x918c880)由GetLibTpuInitArguments @ 0x20ccca20读取,分割argv样式,并传递给RealInitGoogle @ 0x210ae860内的absl::ParseCommandLine。因为解析是通用的,所以可以通过该变量访问整个 2048 标志集 - 没有 init-args-private 子集。 xla_*(非TPU)标志还通过MakeDebugOptionsFlags @ 0x1e66ce80绑定到xla::DebugOptions字段; TPU-private 系列(xla_tpu_*、xla_jf_*、代号、megascale_*、barna_core_*)是独立的全局变量,通过 OverrideTpuCompEnvByCmdLineFlags @ 0x1d73e640 登陆 TpuCompilationEnvironment,而不是在 DebugOptions 中。哪个名字登陆的原型归flag-families.md所有;该页面拥有分组名称索引。
本附录是一个纯参考目录:它本身没有重新实现合约(注册机制是从xla-flag-atlas.md和注册表介导的flags.md重新实现的)。它提供:
- 每个前缀计数表 — 每个 ~14 个前缀命名空间的注册计数和rodata-name 计数,具有范围和置信度。
- 每个前缀部分 — 对于每个前缀、子系统拆分(如果适用)以及具有推断类型的名称的大量枚举子集、完整拼写的最高值 TPU 特定标志。
- 确定性边界 — 错误字符串
=value补救子句保留的 13 个标志(这些标志表示非默认方向,而不是默认方向),以及其余类型列上的约定推理警告。
注册标志(AbslFlagHelpGenFor 符号) | 2048 |
| 不同的rodata标志名称(注册+仅rodata) | 2107 |
| 枚举符号 | _ZN<len>AbslFlagHelpGenFor<name>8NonConstEv(每个注册标志 1 个) |
| 调试选项注册器 | MakeDebugOptionsFlags @ 0x1e66ce80(绑定通用 xla_* 字段) |
| TCE标志→场桥 | OverrideTpuCompEnvByCmdLineFlags @ 0x1d73e640(TPU 系列) |
| 漏斗 | LIBTPU_INIT_ARGS(str@文件0x918c880)→GetLibTpuInitArguments @ 0x20ccca20→absl::ParseCommandLine(RealInitGoogle @ 0x210ae860) |
| 类型拆分(所有 2107 名称) | 布尔型 1431 (68%) · 整数 434 (21%) · 字符串 93 · 浮点型 79 · 枚举/字符串 70 |
错误字符串 =value 补救条款 | 13(每个拼非默认方向,不是默认);实际默认值位于 .text 初始值设定项中 |
xla_gpu_* / xla_cpu_* 注册标志 | 0(从此 TPU 版本中剥离 GPU/CPU 标志接线) |
注意 — 两个不同的
xla_tpu_*计数衡量两个不同的事物。二进制文件的AbslFlagHelpGenFor符号集包含 909 注册xla_tpu_*标志 - 可设置的表面。.rodata中有 968 不同的xla_tpu_*名称字符串(909 个注册 + 59 个仅 RODATA 引用),这不是可设置标志的计数。此页面根据前缀拆分两列,因此区别很明确:使用 909 表示“您可以传递多少个--xla_tpu_*=...”,使用 968 表示“存在多少个xla_tpu_*字符串”。
每个前缀索引(概览)
目录中的每个前缀命名空间,以及注册标志计数(二进制 AbslFlagHelpGenFor 普查)和rodata-name 计数(注册+仅rodata)。 “rodata 名称”列与之前的 2107 联合计数相匹配; “已注册”列是实际可设置的。对于直接从符号普查 HIGH 得出的计数,置信度为 CERTAIN,其中 rodata-name 增量带有串联噪声。
| 前缀 | 已注册 | 罗数据名称 | 适用范围 | 所有者原型 |
|---|---|---|---|---|
xla_tpu_ | 909 | 968 | TPU专用编译器+运行时旋钮 | TCE |
megascale_ | 150 | 150 | 超大规模 DCN 集体运行时 | 独立 |
xla_jf_ | 148 | 148 | Jellyfish TPU XLA 后端(所有世代) | TCE |
xla_(普通) | 121 | 138 | 通用 XLA(调度程序/MSA/集体/转储) | 调试选项 |
xla_sc_ | 92 | 92 | SparseCore编译器(SCS/SCC LLVM后端) | TCE |
tpu_ | 69 | 69 | TPU运行时/编译缓存/驱动程序 | 独立 |
barna_core_ | 61 | 61 | BarnaCore 嵌入引擎运行时 | 独立 |
xla_msa_ | 22 | 22 | 内存空间分配(专用命名空间) | TCE |
tf_ | 20 | 20 | TensorFlow-TPU桥(tf_jf_*等) | 独立 |
xla_vf_ | 16 | 16 | 世代专用 VMEM/MSA 覆盖镜像(vf 代号) | TCE |
xla_gf_ | 14 | 14 | 世代专用 VMEM/MSA 覆盖镜像(gf 代号) | TCE |
xla_mosaic_ | 8 | 8 | Mosaic MLIR 自定义内核方言 | TCE |
xla_ior_ | 4 | 4 | “IOR”快速内存往返 MSA 变体 | TCE |
xla_pf_ | 1 | 1 | 世代专用 ND-allreduce 覆盖(pf 代号) | TCE |
xla_llo_ | 1 | 1 | LLO注释生命周期 | TCE |
xla_gpu_ | 0 | — | GPU后端(仅原型,无标志) | 调试选项 |
xla_cpu_ | 0 | — | CPU后端(仅原型,无标志) | 调试选项 |
(other / no XLA prefix) | 412 | 395 | Abseil / grpc / protobuf / OR-tools 库标志 | 独立 |
| 总计 | 2048 | 2107 | — | — |
注意 — “注册总数 2048”和“rodata 名称 2107”都是字节派生的:注册总数是不同
AbslFlagHelpGenFor<name>8NonConstEv符号的计数(2048,由rg在名称 sidecar 上确认); 2107 是与仅rodata 引用联合的集合(不推荐使用的别名、错误字符串提及)。 “其他/无 XLA 前缀”注册计数是残差(2048 − 1636 个 XLA/TPU 前缀注册标志 = 412);这些是编译器不感兴趣的静态链接库标志(alsologtostderr、alarm_on_failure、OR 工具cp_model_*、grpc 内部)。
xla_tpu_ — TPU 编译器 + 运行时旋钮(909 个注册/968 个名称)
主要系列 - TPU 专用编译器和运行时旋钮表面,注册为独立的 absl::Flag 全局变量,位于 TpuCompilationEnvironment,而不位于 DebugOptions。 (连接到 DebugOptions 的唯一两个例外是 xla_tpu_detect_nan 和 xla_tpu_detect_inf — 请参阅 xla_ 部分。)按关键字分类对所有 968 个 xla_tpu_* 名称字符串(总和为 968,而不是 909 个注册子集)进行子系统拆分:
| 子系统 | 计数 | 关键字签名 |
|---|---|---|
| 杂项 / 未分类 | 288 | (无主导关键字) |
| ICI/集体 | 174 | ici、all_reduce、all_gather、reduce_scatter、all_to_all、collective、sflag、dcn、 barrier |
| 融合 | 101 | fusion、fuse、rwb、dot_dot、nested_dot、multi_output、horizontal |
| 调试/转储/日志/跟踪 | 77 | dump、debug、log、trace、verify、nan、recorder、assert |
| MSA /预取/作用域内存 | 55 | msa、memory_space、prefetch、scoped_(v|c)mem、async_copy、cmem、telamalloc |
| SparseCore(TC端) | 50 | sparse_core、sparsecore、_sc_、embedding、minibatch、offload |
| 调度器 | 47 | schedul、latency_hiding、lhs、ilp、brkga、critical_path |
| 自动分片/SPMD | 40 | sharding、spmd、partition、shardonnay、propagat |
| 布局 | 29 | layout、minor_dim、2nd_minor、transpose、relayout、_x16/_x8/_x4 |
| 内存/分配 | 27 | allocat、hbm、vmem、spill、oom、defragment |
| 点/转换 | 24 | dot、conv、matmul、mxu、gemm、einsum |
| 自动调谐/autofdo | 24 | autotun、autofdo、flagnet |
| 数字/精度 | 21 | accurate_、_exp、_log、precision、bf16、fp8、stochastic |
| 成本模型 | 8 | cost_model、cycle、learned_cost、roofline |
| 运行时 | 3 | runtime,init |
Scheduler — 五个发动机门
调度程序系列宣传了五个不同的引擎,每个引擎都有自己的大门。除非有证据,否则无法从字符串中恢复默认值。
| 标志 | 型 | 默认 | 用途 |
|---|---|---|---|
xla_tpu_enable_latency_hiding_scheduler | 布尔值 | — | 主左门 |
xla_tpu_enable_ilp_latency_hiding_scheduler | 布尔值 | — | 基于ILP的LHS引擎 |
xla_tpu_enable_brkga_latency_hiding_scheduler | 布尔值 | — | 遗传(BRKGA)调度器引擎 |
xla_tpu_brkga_latency_hiding_scheduler_generation_limit | int | — | BRKGA代帽 |
xla_tpu_brkga_latency_hiding_scheduler_num_chromosomes | int | — | BRKGA 人口规模 |
xla_tpu_brkga_latency_hiding_scheduler_num_top_heap_computations | int | — | BRKGA精英套装尺寸 |
xla_tpu_brgka_latency_hiding_scheduler_no_progress_limit | int | — | BRKGA 失速截止(注意 brgka 错字) |
xla_tpu_enable_dozer_latency_hiding_scheduler | 布尔值 | — | “推土机”调度程序变体 |
xla_tpu_enable_lem_scheduler | 布尔值 | — | LEM 调度程序变体 |
xla_tpu_consider_lp_llo_scheduler | 布尔值 | — | 基于LP的LLO调度器 |
xla_tpu_enable_depth_memory_pressure_reduction | 布尔值 | — | 基于深度的内存减压 |
xla_tpu_enable_cp_send_done_scheduling | 布尔值 | — | 集体排列发送/完成计划 |
xla_tpu_aggressive_flexible_annotation_scheduling | 布尔值 | — | 调度-注释攻击性 |
xla_tpu_scheduling_annotation_deannotate_unsupported_groups | 布尔值 | false(errstr补救措施=true) | deannotate注释间隙 |
xla_tpu_enable_all_experimental_scheduler_features | 布尔值 | — | 启用所有实验性计划功能 |
QUIRK —
xla_tpu_brgka_latency_hiding_scheduler_no_progress_limit这个名字带有一个字母换位错误(brgka与它的三个兄弟姐妹使用的brkga)。它是一个独特的注册标志字符串,而不是别名 - 重新实现者必须逐字注册拼写错误的名称,否则无法访问此旋钮。
ICI / Collectives — 最大的子系统 (174)
| 标志 | 型 | 默认 | 用途 |
|---|---|---|---|
xla_tpu_debug_sflag_wait_timeout_ms | int | — | TC sflag-wait 看门狗 |
xla_tpu_debug_sc_sflag_wait_timeout_ms | int | — | SparseCore sflag-wait 看门狗 |
xla_tpu_use_resilient_collective_emitter | 布尔值 | — | 故障感知路由表 |
xla_tpu_collect_sflag_wait_hang_core | 布尔值 | — | 挂起归因遥测 |
xla_tpu_collect_sflag_wait_hang_rate | 浮子 | — | 挂机率统计 |
xla_tpu_force_startup_barrier_in_binomial_all_reduce | 布尔值 | — | 启动势垒注入 |
xla_tpu_binomial_all_reduce_use_physical_core_ids | 布尔值 | — | 物理核心 ID 二项式 AR |
xla_tpu_all_gather_collective_matmul_mode | 枚举/字符串 | — | 集合-matmul AG模式 |
xla_tpu_all_gather_step_count | int | — | AG环步数 |
xla_tpu_all_reduce_vmem_contingency_kib | int | — | AR VMEM 预留 |
xla_tpu_all_to_all_max_rdma_size_kib | int | — | A2A RDMA 块上限 |
xla_tpu_async_ragged_all_to_all_max_rdma_size_kib | int | — | 破烂的 A2A RDMA 帽 |
xla_tpu_add_barriers_around_aggregated_collectives | 布尔值 | — | 阻隔包装 |
xla_tpu_aggressive_opt_barrier_removal | 布尔值 | — | opt-barrier去除 |
xla_tpu_checksum_all_reduce_transfers | 布尔值 | — | 校验和 AR 传输 |
xla_tpu_1d_uni_direction_ring_min_input_size_chunks | int | — | 一维环阈值 |
ICI-SDC 测试工具提供了一个 10 标志子系列:xla_tpu_ici_sdc_test_{iterations, packet_size_chunks, buffer_size_chunks, delay_mask, pipeline_depth, max_distance}(全部为整数)、xla_tpu_ici_sdc_test_{emit_compact_code, run_on_program_start, inject_mismatch_for_testing_only}(布尔值)、xla_tpu_ici_sdc_test_sflag_wait_timeout_ms(整数)。
融合 (101)
| 标志 | 型 | 默认 | 用途 |
|---|---|---|---|
xla_tpu_rwb_fusion | 布尔值 | true(errstr补救措施=false) | 读写缓冲区融合 |
xla_tpu_dot_dot_fusion | 布尔值 | true(errstr补救措施=false) | 点→点融合 |
xla_tpu_nested_dot_fusion | 布尔值 | false(errstr补救措施=true) | 嵌套点(PartialReduce)融合 |
xla_tpu_accumulate_into_mrb | 布尔值 | true(errstr补救措施=false) | MRB累积融合 |
xla_tpu_allow_deeply_nested_fusion_numerical_diff | 布尔值 | — | 容忍深度融合数字 |
xla_tpu_allow_input_fusion_in_certain_reduce_ops | 布尔值 | — | 减少运算输入融合 |
xla_tpu_allow_conv_input_fusion_with_downcast_convert | 布尔值 | — | 转换输入融合/向下转换 |
xla_tpu_async_collective_fusion_fuse_multiple_collectives | 布尔值 | — | 多集体异步融合 |
xla_tpu_enable_async_collective_fusion_fuse_all_gather | 布尔值 | — | AG异步集体熔断器 |
xla_tpu_enable_async_collective_fusion_fuse_all_reduce | 布尔值 | — | AR异步集体熔断器 |
xla_tpu_copy_fusion_minimum_copy_size_in_bytes | int | — | 复制融合尺寸地板 |
xla_tpu_enable_experimental_fusion_cost_model | 布尔值 | — | 实验融合成本模型 |
xla_tpu_fusion_debugger_instrument_inputs | 布尔值 | — | 融合调试器输入仪器 |
MSA/作用域内存 (55)
| 标志 | 型 | 默认 | 用途 |
|---|---|---|---|
xla_tpu_alternate_memory_benefit_scaling_factor_for_large_buffers | 浮子 | — | MSA 效益扩展 |
xla_tpu_async_copy_bandwidth_scaling_factor | 浮子 | — | 异步复制BW模型 |
xla_tpu_allocate_scoped_vmem_at_same_offset | int | — | 范围 VMEM 偏移重用 |
xla_tpu_allocate_scoped_cmem_at_same_offset | int | — | 范围 CMEM 偏移重用 |
xla_tpu_allow_in_cmem_copy | 布尔值 | — | 许可证副本存入 CMEM |
xla_tpu_scoped_cmem_for_all_reduce | 布尔值 | — | AR 结果在范围 CMEM 中 |
xla_tpu_cmem_max_outstanding_prefetches | int | — | CMEM 预取上限 |
xla_tpu_cmem_max_overlap_to_mem_size_async_copy_ratio | 浮子 | — | CMEM重叠率 |
xla_tpu_vmem_use_telamalloc | 布尔值 | — | telamalloc VMEM分配器 |
xla_tpu_scoped_vmem_limit_kib | int | — | 范围 VMEM 字节限制 (KiB) |
xla_tpu_autotune_memory_space_assignment | 布尔值 | — | MSA自动调谐 |
SparseCore TC端 (50)
| 标志 | 型 | 默认 | 用途 |
|---|---|---|---|
xla_tpu_enable_offloading_gather_to_sparsecore | 布尔值 | — | 收集卸载到SC |
xla_tpu_enable_offloading_scatter_to_sparsecore | 布尔值 | — | 分散卸载到 SC |
xla_tpu_enable_offloading_copy_to_sparsecore | 布尔值 | — | 复制卸载到 SC |
xla_tpu_enable_offloading_reduce_to_sparsecore | 布尔值 | — | 减少向 SC 的卸载 |
xla_tpu_enable_sparse_core_reduce_scatter_v2 | 布尔值 | false(errstr补救措施=true) | SC ND 减少散射 v2 |
xla_tpu_enable_sc_log_recorder | 布尔值 | false(errstr补救措施=true) | SC日志记录仪 |
xla_tpu_enable_async_sc_call | 布尔值 | — | 异步SC调用 |
xla_tpu_embedding_table_oblongness_threshold | int | —(errstr 补救措施 =1) | 嵌入台椭圆度截止 |
xla_tpu_aggregate_data_dependent_sc_ops | 布尔值 | — | 数据相关的 SC 聚合 |
其他高信号 xla_tpu_ 旋钮
- 数字:
xla_tpu_accurate_{exp, exp2, expm1, log1p, log2, logistic, sigshift}(布尔)、xla_tpu_bf16_emission_mode(枚举)、xla_tpu_auto_reduce_precision(布尔)、xla_tpu_experimental_enable_dynamic_int8_quantization(布尔)。 - 点/转换:
xla_tpu_enable_dot_strength_reduction、xla_tpu_enable_ragged_dot_kernel、xla_tpu_choose_faster_windowed_einsum_over_mem(均为布尔值)、xla_tpu_impure_contract_ragged_conv_with(字符串)。 - 布局:
xla_tpu_allow_layout_negotiation(布尔)、xla_tpu_enable_large_2nd_minor_layout、xla_tpu_allow_large_2nd_minor_layout_for_{x16, x8, x4}(整数)。 - 自动分片:
xla_tpu_auto_spmd_partitioning_memory_budget_gb(int)、xla_tpu_auto_spmd_partitioning_memory_budget_ratio(float)、xla_tpu_auto_spmd_partitioning_solver_timeout_seconds(int)、xla_tpu_auto_spmd_keep_all_user_shardings(bool)。 - 成本模型:
xla_tpu_emitter_learned_cost_model_options(字符串/原型)、xla_tpu_enable_instruction_cycle_checking(布尔)、xla_tpu_hbm_initial_cycle_penalty(整数)、xla_tpu_impure_cost_model_logging_options(字符串)。 - 调试/内存:
xla_tpu_enable_tile_log_recorder(bool;errstr 补救措施=true,因此默认为 false)、xla_tpu_impure_oom_fast_exit_threshold(int;errstr 补救措施=-1用于详细日志记录)、xla_tpu_always_spill_to_default_memory(bool)。
xla_jf_ — Jellyfish XLA 后端 (148)
jf 代号是 TPU XLA 后端命名空间(跨代共享)。登陆TCE。子系统拆分:misc 63、调试/转储 24、内存/分配 15、融合 10、MSA 9、ICI 8、dot/conv 7、分片 4、调度程序 3、SparseCore 2、成本模型 2、数字 1。
| 标志 | 型 | 默认 | 用途 |
|---|---|---|---|
xla_jf_debug_level | int | —(堆栈跟踪的 errstr 补救措施 =2) | JF 后端调试详细信息 |
xla_jf_run_verifier | 布尔值 | — | 运行JF HLO验证器 |
xla_jf_vliw_scheduler | 布尔值 | — | JF VLIW调度引擎 |
xla_jf_critical_path_scheduler | 布尔值 | — | 关键路径调度器 |
xla_jf_conv_{input,output,reshape}_fusion | 布尔值 | — | 卷积融合变体 |
xla_jf_enable_multi_output_fusion | 布尔值 | — | 多输出融合 |
xla_jf_fusion_max_vmem_mib | int | — | 融合VMEM天花板(MiB) |
xla_jf_conv_{full_precision,increased_precision} | 布尔值 | — | 转换精密控制 |
xla_jf_auto_assign_mxu | 布尔值 | — | 自动 MXU 分配 |
xla_jf_use_cost_based_memory_coloring | 布尔值 | — | 基于成本的内存着色 |
xla_jf_dump_{hlo_text,debug_info,llo_html} | 布尔值 | — | JF 转储变体 |
xla_jf_dump_isa_program_proto | 字符串 | — | ISA-程序原型转储路径 |
xla_jf_experimental_{cmem,vmem}_for_hlo_outputs | 布尔值 | — | 实验输出放置 |
xla_jf_spmd_threshold_for_windowed_einsum_mib | 浮子 | — | 窗口 einsum SPMD 阈值 |
xla_(普通)- 通用 XLA / DebugOptions-Backed(121 个注册/138 个名称)
非代号 xla_* 标志。与 TPU 系列不同,它们通过 MakeDebugOptionsFlags @ 0x1e66ce80 绑定到 xla::DebugOptions 字段。子系统分为所有 138 个 xla_*(普通)名称字符串(总和为 138,不是 121 个注册子集):misc 32、ICI 23、调度程序 21、SparseCore 17、内存 15、MSA 14、调试 10、其他 6。
| 标志 | 型 | 默认 | 用途 |
|---|---|---|---|
xla_enable_megacore_hbm_spill | 布尔值 | false(errstr补救措施=true,未经测试) | 启用 megacore HBM 溢出 |
xla_enable_cross_program_prefetch | 布尔值 | — | 跨程序预取门 |
xla_default_cross_program_prefetch_heuristic | 布尔值 | — | CPP 启发式默认值 |
xla_enable_async_{all_gather,all_reduce,collective_permute} | 布尔值 | — | 异步集体门 |
xla_enable_async_reduce_scatter_fusion | 布尔值 | — | 异步RS融合 |
xla_{all_gather,all_reduce,all_to_all}_latency_bound_threshold_in_bytes | 浮子 | — | 延迟限制阈值 |
xla_all_gather_combiner_threshold_count | 浮子 | — | AG 组合器阈值 |
xla_enable_all_gather_{2d,3d}_emitter | 布尔值 | — | 三维AG发射器 |
xla_hlo_scheduling_brkga_{computation_limit,generation_limit} | int | — | HLO BRKGA 调度程序调优 |
xla_latency_hiding_scheduler_rerun | int | — | LHS 重新运行计数 |
xla_hbm_logging_buffer_size_bytes | int | — | HBM 日志记录缓冲区大小 |
xla_enable_post_msa_sync_slice_fusion | 布尔值 | — | MSA后同步片融合 |
xla_hlo_parse_memory_schedule_from_file | 字符串 | — | 外部存储器调度路径 |
GOTCHA — 经典 XLA 转储/HLO 旋钮(
xla_dump_to、xla_hlo_profile、xla_dump_hlo_as_proto、xla_step_marker_location、xla_disable_hlo_passes)显示为xla.DebugOptions字段 和.rodata字符串,但在此版本中它们未注册absl::Flag全局变量。将所有 290 个 DebugOptions 字段名称与注册标志集进行直接交叉匹配,准确地找到两个重叠:xla_tpu_detect_nan(DebugOptions 字段 135)和xla_tpu_detect_inf(字段 136)。每个其他转储/HLO 旋钮只能通过 PJRTCompileOptions.debug_options原型路径设置,而不能通过LIBTPU_INIT_ARGS设置。将--xla_dump_to=公开为 libtpu 命令行标志的重新实现者对于此构建是错误的。
SparseCore 和嵌入 — xla_sc_ (92)、barna_core_ (61)
xla_sc_* 是 SparseCore 编译器 LLVM 后端旋钮(位于 TCE 中); barna_core_* 是 BarnaCore 嵌入引擎运行时旋钮(独立)。
xla_sc_ 代表子集
| 标志 | 型 | 用途 |
|---|---|---|
xla_sc_enable_instruction_fusion | 布尔值 | SC指令融合 |
xla_sc_enable_latency_hiding_scheduler | 布尔值 | SC LHS |
xla_sc_enable_scheduler_memory_pressure_tracking | 布尔值 | SC内存压力跟踪 |
xla_sc_enable_tile_overlays / _scs_overlays | 布尔值 | SC 瓷砖/SCS 覆盖层 |
xla_sc_enable_stack_eliding | 布尔值 | SC堆叠消音 |
xla_sc_enable_hbm_optimization_mode | 布尔值 | SC HBM优化模式 |
xla_sc_detect_nan | 布尔值 | SC NaN检测 |
xla_sc_assert_level | 枚举 | SC 断言电平 |
xla_sc_compiler_backtrace_depth | int | SC回溯深度 |
xla_sc_elementwise_shape_scaling_factor | 浮子 | SC 元素缩放 |
xla_sc_async_wrapper_fusion_type | 枚举 | SC异步包装融合型 |
xla_sc_dump_{llvm_ir_to,mlir_to,bundles_to} | 字符串 | SC IR/MLIR/捆绑转储路径 |
xla_sc_use_legacy_embeddings_loop_configs | 布尔值 | 传统嵌入循环配置 |
barna_core_ 代表子集
| 标志 | 型 | 用途 |
|---|---|---|
barna_core_max_hbm_fraction_for_embeddings | int | 用于嵌入的 HBM 分数上限 |
barna_core_hbm_savings_threshold_for_optimized_hbm_packing | 浮子 | 优化包装节省阈值 |
barna_core_fraction_batches_to_process_locally | 布尔值 | 本地批处理分数 |
barna_core_master_partitioner_thread_count | int | 分区器线程计数 |
barna_core_hot_id_profiler_top_n_multiple | 浮子 | hot-id 分析器 top-N 多个 |
barna_core_enable_software_deduplication | 布尔值 | 软件重复数据删除 |
barna_core_enable_software_row_sharding | 布尔值 | 软件行分片 |
barna_core_file_operation_timeout | int | 文件操作超时 |
barna_core_embedding_common_config_proto_path | 字符串 | 嵌入配置原型路径 |
barna_core_partitioner_optimization_objective | 枚举 | 分区器目标 |
MSA 命名空间 — xla_msa_ (22)、xla_vf_ (16)、xla_gf_ (14)、xla_ior_ (4)、xla_pf_ (1)、xla_llo_ (1)
专用内存空间分配命名空间。 xla_msa_* 是通用 MSA 选项集; xla_vf_* 和 xla_gf_* 是特定于世代的 VMEM/MSA 覆盖集(vf / gf 代号前缀),携带适用于该世代的相同旋钮名称; xla_ior_* 是 IOR 快速内存往返变体; xla_pf_* 是单个 ND-allreduce 覆盖; xla_llo_* 是单个 LLO 生命周期标志。
xla_msa_ — 完整枚举 (22)
| 标志 | 型 | 用途 |
|---|---|---|
xla_msa_enable | 布尔值 | MSA主门 |
xla_msa_max_cross_program_prefetches | int | CPP预取上限 |
xla_msa_max_outstanding_evictions | int | 驱逐上限 |
xla_msa_max_outstanding_prefetches | int | 预取上限 |
xla_msa_max_repacks | int | 重新包装盖 |
xla_msa_max_retries | int | 重试帽 |
xla_msa_{min,preferred}_overlap_to_async_copy_ratio | 浮子 | 重叠与异步复制比率 |
xla_msa_max_overlap_to_mem_size_async_copy_ratio | 浮子 | 重叠与内存大小比率 |
xla_msa_enable_cross_program_prefetch_freeing | 布尔值 | CPP释放 |
xla_msa_enable_sync_copy_replacement | 布尔值 | 同步复制替换 |
xla_msa_enable_sync_slice_replacement | 布尔值 | 同步片替换 |
xla_msa_enable_while_redundant_eviction_elimination | 布尔值 | 冗余驱逐消除 |
xla_msa_enable_window_prefetch | 布尔值 | 窗口预取 |
xla_msa_cross_program_prefetch_permissive_mode | 布尔值 | 宽容 CPP 模式 |
xla_msa_default_cross_program_prefetch_heuristic | 布尔值 | CPP 启发式默认值 |
xla_msa_expanded_scoped_alternate_memory_mode | 枚举 | 扩展范围-AM模式 |
xla_msa_use_bundle_aware_cost_model | 布尔值 | 捆绑感知成本模型 |
xla_msa_cost_model_options | 字符串 | 成本模型配置 |
xla_msa_experimental_ior_algorithm | 枚举 | 实验IOR算法 |
xla_msa_experimental_use_telamalloc | 布尔值 | 实验telamalloc |
xla_msa_allocate_scoped_memory_at_same_offset | 布尔值 | 作用域内存偏移重用 |
xla_vf_ (16)、xla_gf_ (14)、xla_ior_ (4)、xla_pf_ (1)
xla_gf_vmem_{max_outstanding_evictions, max_repacks, max_retries} (int)、xla_gf_vmem_use_ior_algorithm (enum)、xla_gf_vmem_enable_while_redundant_eviction_elimination (bool) — xla_msa_* 集的特定于世代的 VMEM 镜像; xla_vf_* 带有相同的 vmem_* 旋钮组(16 个名称,包括 xla_vf_allow_replicated_vmem_writes 和 xla_vf_allow_split_vmem)。 xla_ior_{fast_mem_round_trip_production_msa, fast_mem_run_production_msa, stored_solution_path, use_stored_solution} (4) 带有 IOR fast-mem 往返变体。 xla_pf_enable_nd_allreduce (1, bool) 是单独的 xla_pf_* 标志; xla_llo_annotation_lifecycle_strict_mode (1, enum) 是单独的 xla_llo_* 标志。
运行时/驱动程序 — tpu_ (69)、megascale_ (150)、tf_ (20)、xla_mosaic_ (8)
tpu_ — 运行时/编译缓存/驱动程序 (69)
独立运行时标志(不是编译器旋钮)。代表子集:
| 标志 | 型 | 默认 | 用途 |
|---|---|---|---|
tpu_use_tfrt | 布尔值 | —(errstr 弃用 =false) | 使用 TFRT 运行时路径 |
tpu_compilation_cache_disable_coordination_service | 布尔值 | — | 禁用缓存协调 |
tpu_persistent_compilation_cache_location | 字符串 | — | 持久化缓存路径 |
tpu_persistent_compilation_cache_ttl_secs | int | — | 缓存TTL |
tpu_local_compilation_cache_size_bytes | int | — | 本地缓存大小 |
tpu_program_cache_eviction_policy | 枚举 | — | 缓存驱逐策略 |
tpu_program_proto_compression | 布尔值 | — | 原始压缩 |
tpu_link_up_check_timeout | int | — | 链路检查超时 |
tpu_driver_callback_watchdog_timeout | int | — | 驱动回调看门狗 |
tpu_core_dump_directory | 字符串 | — | 核心转储目录 |
tpu_hbm_report_enable | 布尔值 | — | HBM 报告切换 |
tpu_log_allocations_on_oom | 布尔值 | — | OOM 上的日志分配 |
tpu_hlo_breakpoint_debugger_server_port | int | — | HLO断点调试器端口 |
DANGEROUS_tpu_runtime_abi_verification_disabled | 布尔值 | — | 禁用ABI验证(危险) |
注意 — 小写
libtpu_*标识符(libtpu_init_utils、libtpu_lockfile、libtpu_sdk_*、libtpu_telemetry_*、libtpu_version、libtpu_lts_20260413_b_构建标记)不是标志 — 它们是.rodata中的翻译单元/模块名称字符串。它们被排除在 2107 目录之外。
megascale_ (150) — DCN 集体运行时
顶部旋钮:megascale_num_slices(整数)、megascale_slice_id(整数)、megascale_coordinator_address(字符串)、megascale_transport_type(枚举)、megascale_enable_tpu_premapping(布尔)、megascale_enable_watchdog(布尔)、 megascale_graph_hang_threshold(整数)、megascale_heartbeat_{interval,timeout}_ms(整数)、megascale_error_reporter_abort_on_{error,hang}(布尔)、megascale_use_heartbeat(布尔)、megascale_grpc_num_channels(整数)、megascale_use_mtls_for_grpc(布尔)、megascale_verify_checksums(布尔)、 megascale_use_numa_aware_threadpool(bool;errstr补救=false,所以默认true)。
tf_ (20) 和 xla_mosaic_ (8)
tf_* 是 TensorFlow-TPU 桥标志(tf_jf_* 等)。 xla_mosaic_* 是 Mosaic MLIR 自定义内核方言标志,包括旧版 xla_mosaic_deprecated_allow_implicit_single_buffering。
默认值 — 确定性边界
proto3 不包含描述符级默认值,每个标志的默认值位于 xla::DefaultDebugOptions() 和 FLAGS_<name> 静态初始化程序中 - 两者都位于 .text 中,无法从字符串恢复。幸存下来的是一组拼写 --flag=value 子句的帮助/错误字符串。至关重要的是,每个这样的幸存子句都是一个“补救措施”——消息告诉用户在出现问题时设置的值(“同时使用 --flag=false”、“将 =true 设置为启用”)——因此拼写值是“非默认值”,而隐含的实际默认值与其相反。 13标志带有这样的=value补救条款;其余标志的默认值根本不留下任何字符串。
| 标志 | 型 | 补救措施 =value (errstr) | 隐含默认值 |
|---|---|---|---|
xla_tpu_accumulate_into_mrb | 布尔值 | =false(“同时”) | 正确 |
xla_tpu_rwb_fusion | 布尔值 | =false(回退时恢复) | 正确 |
xla_tpu_dot_dot_fusion | 布尔值 | =false(如果故障仍然存在) | 正确 |
xla_tpu_nested_dot_fusion | 布尔值 | =true(“你是不是忘记设置了”) | 假 |
xla_tpu_scheduling_annotation_deannotate_unsupported_groups | 布尔值 | =true(消除间隙) | 假 |
xla_tpu_enable_tile_log_recorder | 布尔值 | =true(启用日志记录) | 假 |
xla_tpu_enable_sc_log_recorder | 布尔值 | =true(启用日志记录) | 假 |
xla_tpu_enable_sparse_core_reduce_scatter_v2 | 布尔值 | =true(SC ND RS需要) | 假 |
xla_tpu_impure_oom_fast_exit_threshold | int | =-1(更详细的日志记录) | 不可字符串恢复 |
xla_tpu_embedding_table_oblongness_threshold | int | =1(避免平铺布局) | 不可字符串恢复 |
xla_enable_megacore_hbm_spill | 布尔值 | =true(激活,未经测试) | 假 |
xla_jf_debug_level | int | =2(启用堆栈跟踪) | 不可字符串恢复 |
megascale_use_numa_aware_threadpool | 布尔值 | =false(禁用) | 正确 |
明白了 — 这些都不是字节确认的默认值。每个
=value都是消息告诉用户设置的值(补救措施),也就是非默认; “隐含默认值”列是布尔值的相反推断,并且对于 int 值旋钮来说确实无法恢复(其中补救措施是特定的调整值,而不是哨兵与默认值翻转)。不要将补救值视为默认值 - 事实恰恰相反。每个标志的权威默认值都需要反汇编.text中的DefaultDebugOptions()和FLAGS_*向量。有时用字节默认值引用的另外四个标志(xla_tpu_allow_deeply_nested_fusion_numerical_diff、xla_tpu_enable_offloading_{gather,scatter}_to_sparsecore、xla_tpu_fusion_debugger_instrument_inputs)根本不带有不=value字符串,并且没有可派生的字符串默认值。
对于类型列:以上13种类型均由=value证据进行字节证实;其余的都是从标志名称后缀约定推断(enable_/use_/allow_ ⇒ bool;_ms/_kib/_count/_size/_n ⇒ int;_ratio/_factor/_fraction ⇒ float;_file/_path/_dir/_proto ⇒ 字符串;_mode/_type/_level ⇒ enum)。这是 XLA 自己的注册约定,因此它是可靠的,但不是按标志字节确认的。 _threshold 后缀可以是 int 或 float; _mode/_level 可能是整数枚举或字符串——它们是 HIGH,而不是 CERTAIN。
交叉引用
- xla_* 旗帜图集 - 精心策划的兄弟:分组叙述+每个子系统深入研究〜100个最高信号旋钮(点此处了解标志的作用)
- 标志系列 — 前缀 → 所有者路由:每个前缀落在哪个原型(DebugOptions、TCE、独立)中,每个系列的实时与惰性判决
- 调试选项原型 —
xla.DebugOptions消息(290 个字段,17 个嵌套枚举),2 字段标志接线重叠 (xla_tpu_detect_nan/inf) - 默认调试选项 — 每个标志默认处于活动状态(
DefaultDebugOptions()+FLAGS_*静态初始化器在.text中) - 注册表介导的标志 —
AbslFlagHelpGenFor注册机制和MakeDebugOptionsFlags/OverrideTpuCompEnvByCmdLineFlags绑定位点 - 标志前缀调度 — 代号系列的
TpuVersion感知前缀剥离/选择机制 - 环境变量 —
LIBTPU_INIT_ARGS、LIBTPU_ON_GCE、TPU_LOAD_LIBRARY,解析漏斗进入absl::ParseCommandLine