org.apache.sysds.hops.codegen.opt

## Class PlanSelectionFuseNoRedundancy

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

-     public class PlanSelectionFuseNoRedundancy
      extends PlanSelection

  This plan selection heuristic aims for fusion without any redundant computation, which, however, potentially leads to more materialized intermediates than the fuse all heuristic.

  NOTE: This heuristic is essentially the same as FuseAll, except that any plans that refer to a hop with multiple consumers are removed in a pre-processing step.

- - ### Nested Class Summary

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

      `PlanSelection.VisitMarkCost`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PlanSelectionFuseNoRedundancy()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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

    - #### PlanSelectionFuseNoRedundancy

          public PlanSelectionFuseNoRedundancy()

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

Copyright © 2021 The Apache Software Foundation. All rights reserved.