Пользовательские операторы
Создано: 28 июля 2025 г. | Последнее обновление: 3 декабря 2025 г.
Краткое описание:
- Используйте пользовательские операторы, чтобы
torch.compileрассматривал функцию как непрозрачную.torch.compileникогда не будет трассировать выполнение внутри функции, а Inductor (бэкенд) выполнит функцию как есть.
Вам может понадобиться использовать пользовательский оператор в следующих случаях:
- Ваш код вызывает код на C/C++/CUDA. Dynamo — это интерпретатор байт-кода Python, и обычно он не знает, как обрабатывать вызовы функций на C/C++/CUDA, связанных с Python.
- Dynamo и трассировка в нестрогом режиме испытывают трудности с трассировкой функции, и вы хотите, чтобы
torch.compileигнорировал её.
Подробнее о том, как обернуть функцию Python в пользовательский оператор, понятный torch.compile, см. в руководстве по пользовательским операторам Python.
Для более сложных случаев использования можно обратиться к нашему API пользовательских операторов C++; дополнительную информацию см. здесь.
© 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.custom_ops.html