评价此页
fullgraph=False">

使用 fullgraph=False#

创建日期:2025年7月28日 | 最后更新日期:2025年9月3日

虽然 fullgraph=Falsetorch.compile 的默认设置,但遇到图中断时恢复编译的语义更加复杂。您可以在子节中找到关于 fullgraph=False 语义的详细信息。

使用 torch.compile(fullgraph=False) 的策略如下:

  1. 确定放置 torch.compile 的理想位置。通常,它是不会导致过多图中断的最高级别函数。执行大量预处理或 I/O 操作的函数是导致许多图中断且从 torch.compile 中获益不大的函数的示例。a. 您可以通过先编译单个函数/模块,然后再编译整个模型来隔离问题。

  2. torch.compiler.disable 应用于编译区域中导致大量图中断且不受益于编译的函数。在这种情况下,一个图中断比潜在的数十或数百个图中断要好。

  3. 使用 TORCH_LOGS="graph_breaks" 或 tlparse 来调查剩余的图中断。使用与在 fullgraph=True 编程模型下处理图中断相同的方法来解决这些图中断。并非所有图中断都需要移除 - 有些可能比其他图中断对性能的影响更大。一般的规则是关注在模型计算期间发生的图中断。a. 我们建议在调试图中断时使用 torch.compile(backend='eager'),以加快调试迭代速度。