| Package | Description | 
|---|---|
| org.apache.sysds.hops.rewrite | 
| Modifier and Type | Class and Description | 
|---|---|
| class  | RewriteAlgebraicSimplificationDynamicRule: Algebraic Simplifications. | 
| class  | RewriteAlgebraicSimplificationStaticRule: Algebraic Simplifications. | 
| class  | RewriteBlockSizeAndReblockRule: BlockSizeAndReblock. | 
| class  | RewriteCommonSubexpressionEliminationRule: CommonSubexpressionElimination. | 
| class  | RewriteConstantFoldingRule: Constant Folding. | 
| class  | RewriteElementwiseMultChainOptimizationPrerequisite: RewriteCommonSubexpressionElimination must run before this rule. | 
| class  | RewriteGPUSpecificOps | 
| class  | RewriteIndexingVectorizationRule: Indexing vectorization. | 
| class  | RewriteInjectSparkPReadCheckpointingRule: BlockSizeAndReblock. | 
| class  | RewriteMatrixMultChainOptimizationRule: Determine the optimal order of execution for a chain of
 matrix multiplications 
 
 Solution: Classic Dynamic Programming
 Approach: Currently, the approach based only on matrix dimensions
 Goal: To reduce the number of computations in the run-time
 (map-reduce) layer | 
| class  | RewriteMatrixMultChainOptimizationSparseRule: Determine the optimal order of execution for a chain of
 matrix multiplications 
 
 Solution: Classic Dynamic Programming
 Approach: Currently, the approach based only on matrix dimensions
 and sparsity estimates using the MNC sketch
 Goal: To reduce the number of computations in the run-time
 (map-reduce) layer | 
| class  | RewriteRemoveDanglingParentReferencesThis rewrite is a general-purpose cleanup pass that removes any
 dangling parent references in one pass through the hop DAG. | 
| class  | RewriteRemovePersistentReadWriteThis rewrite is a custom rewrite for JMLC in order to replace all persistent reads
 and writes with transient reads and writes from the symbol table. | 
| class  | RewriteRemoveReadAfterWriteRule: RemoveReadAfterWrite. | 
| class  | RewriteRemoveUnnecessaryCastsRule: RemoveUnnecessaryCasts. | 
| class  | RewriteTransientWriteParentHandlingRule: Eliminate for Transient Write DataHops to have no parents
 Solution: Move parent edges of Transient Write Hop to parent of
 its child 
 Reason: Transient Write not being a root messes up
 analysis for Lop's to Instruction translation (according to Amol) | 
| Modifier and Type | Method and Description | 
|---|---|
| static void | HopDagValidator. validateHopDag(ArrayList<Hop> roots,
              HopRewriteRule rule) | 
| static void | HopDagValidator. validateHopDag(Hop root,
              HopRewriteRule rule) | 
| Modifier and Type | Method and Description | 
|---|---|
| void | ProgramRewriter. removeHopRewrite(Class<? extends HopRewriteRule> clazz) | 
| Constructor and Description | 
|---|
| ProgramRewriter(HopRewriteRule... rewrites)Construct a program rewriter for a given rewrite which is passed from outside. | 
| Constructor and Description | 
|---|
| ProgramRewriter(ArrayList<HopRewriteRule> hRewrites,
               ArrayList<StatementBlockRewriteRule> sbRewrites)Construct a program rewriter for the given rewrite sets which are passed from outside. | 
Copyright © 2020 The Apache Software Foundation. All rights reserved.