make_scheduler¶
- paddle.profiler. make_scheduler ( *, closed: int, ready: int, record: int, repeat: int = 0, skip_first: int = 0 ) Callable [source]
-
Return a scheduler function, which scheduler the ProfilerState according to the setting. The state transform confirms to:
(CLOSED) (CLOSED) (CLOSED) (READY) (RECORD,last RETURN) (CLOSED) START -> skip_first -> closed -> ready -> record -> END | | | | (if has_repeated < repeat) - - - - - - - - - - - - Note that repeat <= 0 means the cycle will continue until the profiler exits.
- Parameters
-
closed (int) – The number of steps in state ProfilerState.CLOSED.
ready (int) – The number of steps in state ProfilerState.READY.
record (int) – The number of steps in state ProfilerState.RECORD, and the state in last step will be set as ProfilerState.RECORD_AND_RETURN.
repeat (int, optional) – The number of cycles to repeat above state transform. Default value is 0, which means it will repeat this cycle until profiler exits.
skip_first (int, optional) – The number of first steps to drop, not participate in the state transform, and at ProfilerState.CLOSED state. Default value is 0.
- Returns
-
A scheduler function, conforms to above state transform setting. The function will takes one parameter step_num, and returns corresponding ProfilerState.
Examples
profiling range [2, 5].
Assume batch 0: closed, batch 1: ready, batch [2, 5] record.
>>> import paddle.profiler as profiler >>> profiler.make_scheduler(closed=1, ready=1, record=4, repeat=1)
profiling range [3,6], [9,12], [15,18].
Assume batch 0: skipped, batch 1: closed, batch 2: ready, batch [3,6]: record, repeat.
>>> import paddle.profiler as profiler >>> profiler.make_scheduler(closed=1, ready=1, record=4, skip_first=1)