Automatic scheduling for different latency-offsets
This example showcases how one can generate a schedule where the
operations have different latency offsets for the different inputs/outputs.
from b_asic.list_schedulers import HybridScheduler
from b_asic.schedule import Schedule
from b_asic.scheduler import ALAPScheduler, ASAPScheduler
from b_asic.sfg_generators import ldlt_matrix_inverse
sfg = ldlt_matrix_inverse(N=3, name="matrix-inv", pe="mads")
sfg.set_latency_offsets_of_type_name("mads", {"in0": 3, "in1": 0, "in2": 0, "out0": 4})
sfg.set_execution_time_of_type_name("mads", 1)
sfg.set_latency_of_type_name("rec", 10)
sfg.set_execution_time_of_type_name("rec", 1)
The SFG is
Create an ASAP schedule for reference.
Create an ALAP schedule for reference.
Create a resource restricted schedule.
Create another schedule with shorter scheduling time by enabling cyclic.
schedule4 = Schedule(
sfg,
scheduler=HybridScheduler(),
schedule_time=49,
cyclic=True,
)
schedule4
Push the schedule time to the rate limit for one MADS operator.
schedule5 = Schedule(
sfg,
scheduler=HybridScheduler(),
schedule_time=15,
cyclic=True,
)
schedule5
Total running time of the script: (0 minutes 1.545 seconds)
Gallery generated by Sphinx-Gallery