alkaid.trace.passes package

Submodules

alkaid.trace.passes.canon module

alkaid.trace.passes.canon.canonicalize(comb: CombLogic) CombLogic
alkaid.trace.passes.canon.canonicalize_outputs(comb: CombLogic) CombLogic
alkaid.trace.passes.canon.const_propagation(comb: CombLogic) CombLogic

alkaid.trace.passes.cse module

alkaid.trace.passes.cse.common_subexpr_elimin(comb: CombLogic) CombLogic
alkaid.trace.passes.cse.is_used_in(comb: CombLogic) dict[int, set[int]]
alkaid.trace.passes.cse.redirect_all(used_in, new_ops, new_out_idxs, i_from, i_to)
alkaid.trace.passes.cse.to_key(op: Op)

alkaid.trace.passes.dce module

alkaid.trace.passes.dce.dead_code_elimin(comb: CombLogic, keep_dead_inputs=False) CombLogic

dead code elimination

alkaid.trace.passes.dce.remap_table_idxs(ops: list[Op], tables: tuple[LookupTable, ...] | None)

alkaid.trace.passes.null_op module

alkaid.trace.passes.null_op.null_quant_elimin(comb: CombLogic) CombLogic

alkaid.trace.passes.order module

alkaid.trace.passes.order.canon_sort_map(comb: CombLogic) dict[int, int]

old_idx -> new_idx

alkaid.trace.passes.order.canonical_sort(comb: CombLogic) CombLogic

Order ops by topo order/latency

alkaid.trace.passes.order.topo_bandwidth_sort(comb: CombLogic) CombLogic

order ops by for topo bandwidth minimization

alkaid.trace.passes.retrace module

alkaid.trace.passes.surrogate module

alkaid.trace.passes.surrogate.add_surrogate(comb: CombLogic) CombLogic

Add surrogate cost and latency

alkaid.trace.passes.surrogate.cost_lat_add(qint0: QInterval, qint1: QInterval, shift1: int, n_add: int, n_accum: int)
alkaid.trace.passes.surrogate.cost_lat_bin_bitops(qint0: QInterval, qint1: QInterval, shift1: int, LUT_X: int, LUT_Y: int)
alkaid.trace.passes.surrogate.cost_lat_lut(qint_in: QInterval, table: LookupTable, LUT_X: int, LUT_Y: int, skip_cost: bool = False)
alkaid.trace.passes.surrogate.cost_lat_mul(qint0: QInterval, qint1: QInterval, n_add: int, n_accum: int)
alkaid.trace.passes.surrogate.cost_lat_mux(qint0: QInterval, qint1: QInterval, shift1: int, LUT_X: int, LUT_Y: int)
alkaid.trace.passes.surrogate.cost_lat_op(idx: int, ops: list[Op], hwconf: HWConfig, lut: tuple[LookupTable, ...] | None, used_in: dict[int, set[int]]) tuple[float, float]
alkaid.trace.passes.surrogate.cost_relu(qint: QInterval, LUT_X: int = 6, LUT_Y: int = 5)

Module contents

alkaid.trace.passes.optimize(comb: CombLogic, keep_dead_inputs: bool = False, surrogate=True, retrace=True) CombLogic