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 and Description
`PlanSelectionFuseAll()`

### Method Summary

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

#### PlanSelectionFuseAll

    public PlanSelectionFuseAll()

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