评价此页

torch.compiler.config#

创建于:2024年11月01日 | 最后更新于:2025年06月11日

这是编译器顶层配置模块,包含影响编译器堆栈所有部分的跨领域配置选项。

您可能还对特定组件的配置模块感兴趣,这些模块包含仅影响编译器特定部分的配置选项。

  • torch._dynamo.config

  • torch._inductor.config

  • torch._functorch.config

  • torch.fx.experimental.config

torch.compiler.config.job_id: Optional[str] = None#

语义上,这应该是一个唯一标识例如训练作业的标识符。您可能有同一个作业的多个尝试,例如,如果作业被中断或需要重新启动,但每次尝试都应该运行基本相同的工件和相同的分布式拓扑。您可以通过环境变量 TORCH_COMPILE_JOB_ID 设置此值。

操作上,这控制着由性能导向优化相关的持久化状态。PGO状态会影响我们跨多个PyTorch调用执行编译的方式,例如,第一次运行程序时可能会编译两次以发现哪些输入是动态的,然后PGO会保存此状态,以便后续调用只需编译一次,因为它们会记住它是动态的。但是,此性能信息对您运行的工件非常敏感,因此我们需要您告诉我们两个作业是*相关*的(即是相同的工件),然后我们才愿意重用此信息。值得注意的是,即使明确启用了PGO,如果没有有效的job_id,PGO也不会执行任何操作。在某些情况下,PyTorch可以配置为根据其运行的环境自动计算job_id

配置文件总是按秩进行收集,因此不同秩可能会有不同的配置文件。如果您知道您的工件是真正的SPMD,您可以运行torch._dynamo.config.enable_compiler_collectives以确保节点在所有秩之间获得一致的配置文件。