Package org.apache.sysds.hops.codegen.opt

## Class PlanSelectionFuseCostBased

- java.lang.Object
- - org.apache.sysds.hops.codegen.opt.PlanSelection
  - - org.apache.sysds.hops.codegen.opt.PlanSelectionFuseCostBased

-     public class PlanSelectionFuseCostBased
      extends PlanSelection

  This cost-based plan selection algorithm chooses fused operators based on the DAG structure and resulting overall costs. This primarily includes decisions on materialization points, but also heuristics for template types, and composed multi output templates.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.sysds.hops.codegen.opt.PlanSelection

      `PlanSelection.VisitMarkCost`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `PlanSelectionFuseCostBased()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `selectPlans​(CPlanMemoTable memo, ArrayList<Hop> roots)` | Given a HOP DAG G, and a set of partial fusions plans P, find the set of optimal, non-conflicting fusion plans P' that applied to G minimizes costs C with P' = \argmin_{p \subseteq P} C(G, p) s.t.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PlanSelectionFuseCostBased

          public PlanSelectionFuseCostBased()

  - ### Method Detail

    - #### selectPlans

          public void selectPlans​(CPlanMemoTable memo,
                                  ArrayList<Hop> roots)

      Description copied from class: `PlanSelection`
      Given a HOP DAG G, and a set of partial fusions plans P, find the set of optimal, non-conflicting fusion plans P' that applied to G minimizes costs C with P' = \argmin_{p \subseteq P} C(G, p) s.t. Z \vDash p, where Z is a set of constraints such as memory budgets and block size restrictions per fused operator.
      Specified by:
        `selectPlans` in class `PlanSelection`
      Parameters:
        `memo` - partial fusion plans P
        `roots` - entry points of HOP DAG G