torch.jit.set_fusion_strategy
-
torch.jit.set_fusion_strategy(strategy)[source] -
Устанавливает тип и количество специализаций, которые могут произойти во время слияния.
Использование: предоставьте список пар (тип, глубина), где тип — один из «STATIC» или «DYNAMIC», а глубина — целое число.
- Поведение - статическое против динамического:
-
При статическом слиянии слиянные операции компилируются с фиксированными форматами входных данных. Формат определяется на основе некоторых начальных профилирующих запусков. При динамическом слиянии слиянные операции компилируются с переменными форматами входных данных, так что возможны несколько форматов.
В обоих случаях мы также перекомпилируем при изменении поведения строчностей, устройстве или типе данных.
- Поведение - функции обратного вызова и глубина:
-
Когда вход не соответствует формату, требуемому специализированной скомпилированной операцией, будет выполнена функция обратного вызова. Функции обратного вызова рекурсивно компилируются и специализируются на основе наблюдаемых форм тензоров. Поскольку компиляция может быть медленной, параметр «глубина» используется для ограничения количества специализаций, которые могут быть скомпилированы, прежде чем отказываться от перекомпиляции и переходить к полностью несчитанной, неспециализированной реализации.
Список пар (тип, глубина) управляет типом специализаций и количеством специализаций. Например: [(«STATIC», 2), («DYNAMIC», 2)] указывает, что первые две специализации будут использовать статическое слияние, следующие две специализации будут использовать динамическое слияние, а любые входы, которые не удовлетворяют ни одному из 4 вариантов, будут выполнять неслиянную реализацию.
ПРИМЕЧАНИЕ: в будущем, если будет добавлено больше бэкэндов слияния, могут появиться более подробные API для определенных слияний.
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.jit.set_fusion_strategy.html