Note
Go to the end to download the full example code.
Automatic scheduling with custom IO times¶
It is possible to specify the IO times and provide those to the scheduling.
from b_asic.core_operations import Butterfly, ConstantMultiplication
from b_asic.list_schedulers import HybridScheduler
from b_asic.logger import getLogger
from b_asic.schedule import Schedule
from b_asic.scheduler import ALAPScheduler, ASAPScheduler
from b_asic.sfg_generators import radix_2_dif_fft
# Activate the scheduler logger
getLogger("DEBUG")
points = 8
sfg = radix_2_dif_fft(points=points)
The SFG is:
sfg
Set latencies and execution times.
sfg.set_latency_of_type(Butterfly, 1)
sfg.set_latency_of_type(ConstantMultiplication, 3)
sfg.set_execution_time_of_type(Butterfly, 1)
sfg.set_execution_time_of_type(ConstantMultiplication, 1)
Generate an ASAP schedule for reference with custom IO times.
input_times = {f"in{i}": i for i in range(points)}
output_delta_times = {f"out{i}": i for i in range(points)}
schedule1 = Schedule(sfg, scheduler=ASAPScheduler(input_times, output_delta_times))
schedule1.show()

[2920] 16:30:52 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:52 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:52 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:52 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:52 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:52 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:52 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:52 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:52 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:52 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:52 scheduler.py:251 apply_scheduling() DEBUG : ASAP scheduling starting
[2920] 16:30:52 scheduler.py:303 apply_scheduling() DEBUG : ASAP scheduling completed
[2920] 16:30:52 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:52 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 16
[2920] 16:30:52 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 17
[2920] 16:30:52 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 18
[2920] 16:30:52 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 19
[2920] 16:30:52 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 20
[2920] 16:30:52 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 21
[2920] 16:30:52 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 22
[2920] 16:30:52 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 23
[2920] 16:30:52 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:52 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:52 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 3 time steps backwards to new time 13
[2920] 16:30:52 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 3 time steps backwards to new time 14
[2920] 16:30:52 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 3 time steps backwards to new time 15
[2920] 16:30:52 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 3 time steps backwards to new time 16
[2920] 16:30:52 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 3 time steps backwards to new time 17
[2920] 16:30:52 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 3 time steps backwards to new time 18
[2920] 16:30:52 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 3 time steps backwards to new time 19
[2920] 16:30:52 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 3 time steps backwards to new time 20
[2920] 16:30:52 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
Generate an ALAP schedule for reference with custom IO times..
schedule_t = Schedule(sfg, scheduler=ALAPScheduler(input_times, output_delta_times))
schedule_t.show()

[2920] 16:30:53 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:53 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:53 scheduler.py:251 apply_scheduling() DEBUG : ASAP scheduling starting
[2920] 16:30:53 scheduler.py:303 apply_scheduling() DEBUG : ASAP scheduling completed
[2920] 16:30:53 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 16
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 17
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 18
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 19
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 20
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 21
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 22
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 23
[2920] 16:30:53 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:53 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 3 time steps backwards to new time 13
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 3 time steps backwards to new time 14
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 3 time steps backwards to new time 15
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 3 time steps backwards to new time 16
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 3 time steps backwards to new time 17
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 3 time steps backwards to new time 18
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 3 time steps backwards to new time 19
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 3 time steps backwards to new time 20
[2920] 16:30:53 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:53 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 0
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 1
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 2
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 3
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 4
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 5
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 6
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 7
[2920] 16:30:53 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:53 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 7 time steps backwards to new time 13
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 7 time steps backwards to new time 14
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 7 time steps backwards to new time 15
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 7 time steps backwards to new time 16
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 7 time steps backwards to new time 17
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 7 time steps backwards to new time 18
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 7 time steps backwards to new time 19
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 7 time steps backwards to new time 20
[2920] 16:30:53 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:53 scheduler.py:353 apply_scheduling() DEBUG : ALAP scheduling starting
[2920] 16:30:53 scheduler.py:375 apply_scheduling() DEBUG : ALAP scheduling completed
Generate a non-cyclic Schedule from HybridScheduler with custom IO times, one input and output per time unit and one butterfly/multiplication per time unit.
resources = {Butterfly.type_name(): 1, ConstantMultiplication.type_name(): 1}
schedule2 = Schedule(
sfg,
scheduler=HybridScheduler(
resources,
input_times=input_times,
output_delta_times=output_delta_times,
),
)
schedule2.show()

[2920] 16:30:53 scheduler.py:497 apply_scheduling() DEBUG : Scheduler initializing
[2920] 16:30:53 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:53 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:53 scheduler.py:251 apply_scheduling() DEBUG : ASAP scheduling starting
[2920] 16:30:53 scheduler.py:303 apply_scheduling() DEBUG : ASAP scheduling completed
[2920] 16:30:53 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 16
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 17
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 18
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 19
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 20
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 21
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 22
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 23
[2920] 16:30:53 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:53 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 3 time steps backwards to new time 13
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 3 time steps backwards to new time 14
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 3 time steps backwards to new time 15
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 3 time steps backwards to new time 16
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 3 time steps backwards to new time 17
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 3 time steps backwards to new time 18
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 3 time steps backwards to new time 19
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 3 time steps backwards to new time 20
[2920] 16:30:53 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:53 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 0
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 1
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 2
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 3
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 4
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 5
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 6
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 7
[2920] 16:30:53 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:53 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 7 time steps backwards to new time 13
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 7 time steps backwards to new time 14
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 7 time steps backwards to new time 15
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 7 time steps backwards to new time 16
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 7 time steps backwards to new time 17
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 7 time steps backwards to new time 18
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 7 time steps backwards to new time 19
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 7 time steps backwards to new time 20
[2920] 16:30:53 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:53 scheduler.py:353 apply_scheduling() DEBUG : ALAP scheduling starting
[2920] 16:30:53 scheduler.py:375 apply_scheduling() DEBUG : ALAP scheduling completed
[2920] 16:30:53 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:53 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:53 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:53 scheduler.py:866 _schedule_nonrecursive_ops() DEBUG : Non-recursive operation scheduling starting
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly0 at time: 4
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly8 at time: 5
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly11 at time: 6
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul2 at time: 6
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly6 at time: 7
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul0 at time: 7
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul3 at time: 8
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly7 at time: 8
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly1 at time: 9
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul4 at time: 9
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly2 at time: 10
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly5 at time: 11
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly9 at time: 12
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul1 at time: 12
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly3 at time: 13
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly10 at time: 14
[2920] 16:30:53 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly4 at time: 15
[2920] 16:30:53 scheduler.py:915 _schedule_nonrecursive_ops() DEBUG : Non-recursive operation scheduling completed
[2920] 16:30:53 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 16
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 17
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 18
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 19
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 20
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 21
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 22
[2920] 16:30:53 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 23
[2920] 16:30:53 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:53 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 3 time steps backwards to new time 13
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 3 time steps backwards to new time 14
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 3 time steps backwards to new time 15
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 3 time steps backwards to new time 16
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 3 time steps backwards to new time 17
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 3 time steps backwards to new time 18
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 3 time steps backwards to new time 19
[2920] 16:30:53 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 3 time steps backwards to new time 20
[2920] 16:30:53 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:53 scheduler.py:519 apply_scheduling() DEBUG : Scheduling completed
Generate a new Schedule with cyclic scheduling enabled.
schedule3 = Schedule(
sfg,
scheduler=HybridScheduler(
resources,
input_times=input_times,
output_delta_times=output_delta_times,
),
schedule_time=14,
cyclic=True,
)
schedule3.show()

[2920] 16:30:54 scheduler.py:497 apply_scheduling() DEBUG : Scheduler initializing
[2920] 16:30:54 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:54 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:54 scheduler.py:251 apply_scheduling() DEBUG : ASAP scheduling starting
[2920] 16:30:54 scheduler.py:303 apply_scheduling() DEBUG : ASAP scheduling completed
[2920] 16:30:54 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 16
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 17
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 18
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 19
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 20
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 21
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 22
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 23
[2920] 16:30:54 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:54 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 3 time steps backwards to new time 13
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 3 time steps backwards to new time 14
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 3 time steps backwards to new time 15
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 3 time steps backwards to new time 16
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 3 time steps backwards to new time 17
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 3 time steps backwards to new time 18
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 3 time steps backwards to new time 19
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 3 time steps backwards to new time 20
[2920] 16:30:54 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:54 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 0
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 1
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 2
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 3
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 4
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 5
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 6
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 7
[2920] 16:30:54 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:54 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 7 time steps backwards to new time 13
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 7 time steps backwards to new time 14
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 7 time steps backwards to new time 15
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 7 time steps backwards to new time 16
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 7 time steps backwards to new time 17
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 7 time steps backwards to new time 18
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 7 time steps backwards to new time 19
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 7 time steps backwards to new time 20
[2920] 16:30:54 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:54 scheduler.py:353 apply_scheduling() DEBUG : ALAP scheduling starting
[2920] 16:30:54 scheduler.py:375 apply_scheduling() DEBUG : ALAP scheduling completed
[2920] 16:30:54 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:54 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:54 scheduler.py:866 _schedule_nonrecursive_ops() DEBUG : Non-recursive operation scheduling starting
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly0 at time: 4
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly8 at time: 5
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly11 at time: 6
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul2 at time: 6
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly6 at time: 7
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul0 at time: 7
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul3 at time: 8
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly7 at time: 8
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly1 at time: 9
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul4 at time: 9
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly2 at time: 10
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly5 at time: 11
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly9 at time: 12
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul1 at time: 12
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly3 at time: 13
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly10 at time: 14
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly4 at time: 15
[2920] 16:30:54 scheduler.py:915 _schedule_nonrecursive_ops() DEBUG : Non-recursive operation scheduling completed
[2920] 16:30:54 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 0
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 1
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 2
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 3
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 4
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 5
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 6
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 7
[2920] 16:30:54 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:54 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 1 time steps backwards to new time 13
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 1 time steps backwards to new time 14
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 1 time steps backwards to new time 1
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 1 time steps backwards to new time 2
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 1 time steps backwards to new time 3
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 1 time steps backwards to new time 4
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 1 time steps backwards to new time 5
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 1 time steps backwards to new time 6
[2920] 16:30:54 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:54 scheduler.py:519 apply_scheduling() DEBUG : Scheduling completed
Generate a new Schedule with even less scheduling time.
schedule4 = Schedule(
sfg,
scheduler=HybridScheduler(
resources,
input_times=input_times,
output_delta_times=output_delta_times,
),
schedule_time=13,
cyclic=True,
)
schedule4.show()

[2920] 16:30:54 scheduler.py:497 apply_scheduling() DEBUG : Scheduler initializing
[2920] 16:30:54 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:54 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:54 scheduler.py:251 apply_scheduling() DEBUG : ASAP scheduling starting
[2920] 16:30:54 scheduler.py:303 apply_scheduling() DEBUG : ASAP scheduling completed
[2920] 16:30:54 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 16
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 17
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 18
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 19
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 20
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 21
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 22
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 23
[2920] 16:30:54 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:54 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 3 time steps backwards to new time 13
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 3 time steps backwards to new time 14
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 3 time steps backwards to new time 15
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 3 time steps backwards to new time 16
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 3 time steps backwards to new time 17
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 3 time steps backwards to new time 18
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 3 time steps backwards to new time 19
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 3 time steps backwards to new time 20
[2920] 16:30:54 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:54 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 0
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 1
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 2
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 3
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 4
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 5
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 6
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 7
[2920] 16:30:54 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:54 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 7 time steps backwards to new time 13
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 7 time steps backwards to new time 14
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 7 time steps backwards to new time 15
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 7 time steps backwards to new time 16
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 7 time steps backwards to new time 17
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 7 time steps backwards to new time 18
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 7 time steps backwards to new time 19
[2920] 16:30:54 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 7 time steps backwards to new time 20
[2920] 16:30:54 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:54 scheduler.py:353 apply_scheduling() DEBUG : ALAP scheduling starting
[2920] 16:30:54 scheduler.py:375 apply_scheduling() DEBUG : ALAP scheduling completed
[2920] 16:30:54 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:54 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:54 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:54 scheduler.py:866 _schedule_nonrecursive_ops() DEBUG : Non-recursive operation scheduling starting
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly0 at time: 4
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly8 at time: 5
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly11 at time: 6
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul2 at time: 6
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly6 at time: 7
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul0 at time: 7
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul3 at time: 8
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly7 at time: 8
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly1 at time: 9
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul4 at time: 9
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly2 at time: 10
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly5 at time: 11
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly9 at time: 12
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul1 at time: 12
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly3 at time: 13
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly10 at time: 14
[2920] 16:30:54 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly4 at time: 15
[2920] 16:30:54 scheduler.py:915 _schedule_nonrecursive_ops() DEBUG : Non-recursive operation scheduling completed
[2920] 16:30:54 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 0
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 1
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 2
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 3
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 4
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 5
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 6
[2920] 16:30:54 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 7
[2920] 16:30:54 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:54 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:54 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:54 scheduler.py:519 apply_scheduling() DEBUG : Scheduling completed
Try scheduling for 12 cycles, which gives full butterfly usage.
schedule5 = Schedule(
sfg,
scheduler=HybridScheduler(
resources,
input_times=input_times,
output_delta_times=output_delta_times,
),
schedule_time=12,
cyclic=True,
)
schedule5.show()

[2920] 16:30:55 scheduler.py:497 apply_scheduling() DEBUG : Scheduler initializing
[2920] 16:30:55 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:55 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:55 scheduler.py:251 apply_scheduling() DEBUG : ASAP scheduling starting
[2920] 16:30:55 scheduler.py:303 apply_scheduling() DEBUG : ASAP scheduling completed
[2920] 16:30:55 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 16
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 17
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 18
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 19
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 20
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 21
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 22
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 23
[2920] 16:30:55 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:55 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 3 time steps backwards to new time 13
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 3 time steps backwards to new time 14
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 3 time steps backwards to new time 15
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 3 time steps backwards to new time 16
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 3 time steps backwards to new time 17
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 3 time steps backwards to new time 18
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 3 time steps backwards to new time 19
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 3 time steps backwards to new time 20
[2920] 16:30:55 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:55 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 0
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 1
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 2
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 3
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 4
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 5
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 6
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 7
[2920] 16:30:55 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:55 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved 7 time steps backwards to new time 13
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved 7 time steps backwards to new time 14
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved 7 time steps backwards to new time 15
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved 7 time steps backwards to new time 16
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved 7 time steps backwards to new time 17
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved 7 time steps backwards to new time 18
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved 7 time steps backwards to new time 19
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved 7 time steps backwards to new time 20
[2920] 16:30:55 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:55 scheduler.py:353 apply_scheduling() DEBUG : ALAP scheduling starting
[2920] 16:30:55 scheduler.py:375 apply_scheduling() DEBUG : ALAP scheduling completed
[2920] 16:30:55 scheduler.py:105 _place_inputs_on_given_times() DEBUG : Input placement starting
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in0 at time: 0
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in1 at time: 1
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in2 at time: 2
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in3 at time: 3
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in4 at time: 4
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in5 at time: 5
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in6 at time: 6
[2920] 16:30:55 scheduler.py:109 _place_inputs_on_given_times() DEBUG : Input in7 at time: 7
[2920] 16:30:55 scheduler.py:112 _place_inputs_on_given_times() DEBUG : Input placement completed
[2920] 16:30:55 scheduler.py:866 _schedule_nonrecursive_ops() DEBUG : Non-recursive operation scheduling starting
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly0 at time: 4
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly8 at time: 5
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly11 at time: 6
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul2 at time: 6
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly6 at time: 7
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul0 at time: 7
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul3 at time: 8
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly7 at time: 8
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly1 at time: 9
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul4 at time: 9
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly2 at time: 10
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly5 at time: 11
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly9 at time: 12
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: cmul1 at time: 12
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly3 at time: 13
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly10 at time: 14
[2920] 16:30:55 scheduler.py:905 _schedule_nonrecursive_ops() DEBUG : Schedule operation: bfly4 at time: 15
[2920] 16:30:55 scheduler.py:915 _schedule_nonrecursive_ops() DEBUG : Non-recursive operation scheduling completed
[2920] 16:30:55 scheduler.py:136 _place_outputs_on_given_times() DEBUG : Output placement starting
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out0 at time: 0
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out1 at time: 1
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out2 at time: 2
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out3 at time: 3
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out4 at time: 4
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out5 at time: 5
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out6 at time: 6
[2920] 16:30:55 scheduler.py:169 _place_outputs_on_given_times() DEBUG : Output out7 at time: 7
[2920] 16:30:55 scheduler.py:170 _place_outputs_on_given_times() DEBUG : Output placement completed
[2920] 16:30:55 scheduler.py:172 _place_outputs_on_given_times() DEBUG : Output placement optimization starting
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out0 moved -1 time steps backwards to new time 1
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out1 moved -1 time steps backwards to new time 2
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out2 moved -1 time steps backwards to new time 3
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out3 moved -1 time steps backwards to new time 4
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out4 moved -1 time steps backwards to new time 5
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out5 moved -1 time steps backwards to new time 6
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out6 moved -1 time steps backwards to new time 7
[2920] 16:30:55 scheduler.py:196 _place_outputs_on_given_times() DEBUG : Output out7 moved -1 time steps backwards to new time 8
[2920] 16:30:55 scheduler.py:202 _place_outputs_on_given_times() DEBUG : Output placement optimization completed
[2920] 16:30:55 scheduler.py:519 apply_scheduling() DEBUG : Scheduling completed
Total running time of the script: (0 minutes 2.689 seconds)