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
Modifier and Type
Class
Description
`static class`
`PlanSelection.VisitMarkCost`

## Constructor Summary

Constructors
Constructor
Description
`PlanSelection()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### PlanSelection

public PlanSelection()

## Method Details

### 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