Package org.apache.sysds.hops.rewrite
Class RewriteMatrixMultChainWithTransOptimization
java.lang.Object
org.apache.sysds.hops.rewrite.HopRewriteRule
org.apache.sysds.hops.rewrite.RewriteMatrixMultChainWithTransOptimization
Advanced Matrix Multiplication Chain Optimizer using Dynamic Programming.
This rewrite optimizes matrix multiplication chains by simultaneously exploring standard parenthesization and the transpose property: (A %*% B)^T = B^T %*% A^T. It uses a DP algorithm to find the execution plan with the minimal computational cost (FLOPs), inserting physical transposes only when mathematically cheaper. In comparison to RewriteMatrixMultChainOptimization.java this builds complete new HOP DAG and returns it
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionrewriteHopDAG(Hop root, ProgramRewriteStatus state) Handle a predicate hop DAG with exactly one root.rewriteHopDAGs(ArrayList<Hop> roots, ProgramRewriteStatus state) Handle a generic (last-level) hop DAG with multiple roots.
-
Constructor Details
-
RewriteMatrixMultChainWithTransOptimization
public RewriteMatrixMultChainWithTransOptimization()
-
-
Method Details
-
rewriteHopDAGs
Description copied from class:HopRewriteRuleHandle a generic (last-level) hop DAG with multiple roots.- Specified by:
rewriteHopDAGsin classHopRewriteRule- Parameters:
roots- high-level operator rootsstate- program rewrite status- Returns:
- list of high-level operators
-
rewriteHopDAG
Description copied from class:HopRewriteRuleHandle a predicate hop DAG with exactly one root.- Specified by:
rewriteHopDAGin classHopRewriteRule- Parameters:
root- high-level operator rootstate- program rewrite status- Returns:
- high-level operator
-