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

## Class PlanSelection

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

Direct Known Subclasses:
  `PlanSelectionFuseAll`, `PlanSelectionFuseCostBased`, `PlanSelectionFuseCostBasedV2`, `PlanSelectionFuseNoRedundancy`

    public abstract class PlanSelection
    extends Object

### Nested Class Summary

Nested Classes
`static class` `PlanSelection.VisitMarkCost`

### Constructor Summary

Constructors
`PlanSelection()`

### Method Summary

All Methods Instance Methods Abstract Methods
`abstract 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

#### PlanSelection

    public PlanSelection()

### Method Detail

#### selectPlans

    public abstract 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. Z \vDash p, where Z is a set of constraints such as memory budgets and block size restrictions per fused operator.

Parameters:
  `memo` - partial fusion plans P
  `roots` - entry points of HOP DAG G