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

# Class PlanSelectionFuseAll

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

public class PlanSelectionFuseAll extends PlanSelection
This plan selection heuristic aims for maximal fusion, which potentially leads to overlapping fused operators and thus, redundant computation but with a minimal number of materialized intermediate results.

## Nested Class Summary

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

`PlanSelection.VisitMarkCost`

## Constructor Summary

Constructors
Constructor
Description
`PlanSelectionFuseAll()`

## Method Summary

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 Details

### PlanSelectionFuseAll

public PlanSelectionFuseAll()

## Method Details

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