KinetoStepTracker
-
class torch.autograd.profiler.KinetoStepTracker[исходный код] -
Предоставляет абстракцию для глобального увеличения счётчика шагов.
Ранее в программе было только одно место, где можно было отметить выполнение шага через pytorch profiler step(). Теперь мы добавим хуки шага в класс Optimizer pytorch/pytorch#88446
- Это может привести к тому, что программы, в которых profiler.step() вызывается на каждой итерации, будут дважды увеличивать счётчик шагов.
- Если модель использует несколько оптимизаторов, счётчик шагов также может увеличиваться дважды или более раз.
Мы решаем эту проблему, добавляя уровень абстракции перед вызовом step() в библиотеку kineto. Идея состоит в том, чтобы хранить количество шагов для каждого инициатора в словаре:
{ "ProfilerStep": 100, # triggered by profiler step() call "Optimizer1Step": 100, # Optimizer 1 or 2 are just examples, could be SGD, Adam etc "Optimizer2Step": 100, }Чтобы узнать глобальное количество шагов, достаточно взять максимальное значение в словаре (100).
Если один из счётчиков увеличится, максимум возрастёт.
{ "ProfilerStep": 100, "Optimizer1Step": 101, # Optimizer1 got incremented first say "Optimizer2Step": 100, }Тогда глобальное количество шагов станет равным 101. Мы вызываем функцию шага kineto step() только при увеличении глобального счётчика.
ПРИМЕЧАНИЕ: Пока не используйте KinetoStepTracker в модулях, отличных от Optimizer. Это может привести к некорректному увеличению счётчика шагов.
-
classmethod current_step()[исходный код] -
Получить последний шаг для любого инициатора
- Тип возвращаемого значения:
-
classmethod erase_step_count(requester)[исходный код] -
Удалить указанного инициатора.
- Тип возвращаемого значения:
-
classmethod increment_step(requester)[исходный код] -
Увеличить счётчик шагов для инициатора.
Кроме того, если максимум всех счётчиков шагов увеличился, вызвать _kineto_step(); возвращает глобальное количество шагов
- Тип возвращаемого значения:
-
classmethod init_step_count(requester)[исходный код] -
Инициализировать для указанного инициатора.
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.autograd.profiler.KinetoStepTracker.html