Spec-Zone.ru › PyTorch 2.14
fullgraph=False">

Где применять torch.compile?

Создано: 28 июля 2025 г. | Последнее обновление: 27 июля 2026 г.

Рекомендуем применять torch.compile к функции самого высокого уровня, которая не вызывает чрезмерных проблем. Обычно это:

  • шаг train или eval с оптимизатором, но без цикла,
  • ваш nn.Module верхнего уровня
  • или некоторые под-nn.Module.

torch.compile не очень хорошо справляется с модулями-обёртками для распределённых вычислений, такими как DDP или FSDP, поэтому рассмотрите возможность применения torch.compile к внутреннему модулю, передаваемому обёртке.

# inference
model = ...
model.compile()

for _ in range(N_ITERS):
    inp = ...
    out = model(inp)
# training
model = ...
opt = torch.optim.Adam(model.parameters())

@torch.compile
def train(mod, data):
    opt.zero_grad(True)
    pred = mod(data[0])
    loss = torch.nn.CrossEntropyLoss()(pred, data[1])
    loss.backward()
    opt.step()

for _ in range(N_ITERS):
    inp = ...
    train(model, inp)
# DistributedDataParallel
model = ...
model.compile()
model_ddp = DistributedDataParallel(model, ...)

for _ in range(N_ITERS):
    inp = ...
    out = model_ddp(inp)

compile(model) и model.compile()

Учитывая особенности взаимодействия torch.compile с экземплярами nn.Module, мы рекомендуем использовать метод .compile() экземпляров nn.Module, если вы хотите компилировать их как функции верхнего уровня. Вложенные вызовы модулей будут корректно отслеживаться — в этом случае вызывать .compile() не нужно.

# DO NOT DO THIS
model = MyModel()
model = torch.compile(model)
model(inp)

# DO THIS
model = MyModel()
model.compile()
model(inp)

# this is also acceptable
@torch.compile
def fn(model, inp):
    return model(inp)
model = MyModel()
fn(model, inp)

Применение torch.compile к меньшей повторяющейся области (например, к одному блоку трансформера), а не ко всей модели, также может значительно сократить время компиляции. См. разделы о региональной и иерархической компиляции в руководстве Сокращение времени компиляции.

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/user_guide/torch_compiler/compile/programming_model.where_to_apply_compile.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API