[SYSTEMML-1903] Fix codegen row candidate exploration w/ row indexing For Autoencoder w/ batch=512, the codegen fuse-all heuristic was failing on cplan construction due to unknown row type. The root cause was an invalid partial fusion plan of type row that covered the row batching from the overall dataset although row template only support column range indexing (which applies to all rows).
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/3a7f38e5 Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/3a7f38e5 Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/3a7f38e5 Branch: refs/heads/master Commit: 3a7f38e58586cee2044c611ef5b3222fcf9561e5 Parents: 5adb330 Author: Matthias Boehm <mboe...@gmail.com> Authored: Mon Oct 16 21:45:54 2017 -0700 Committer: Matthias Boehm <mboe...@gmail.com> Committed: Mon Oct 16 22:16:36 2017 -0700 ---------------------------------------------------------------------- .../org/apache/sysml/hops/codegen/template/CPlanMemoTable.java | 2 +- src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/3a7f38e5/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java b/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java index 882cde2..99ffc8d 100644 --- a/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java +++ b/src/main/java/org/apache/sysml/hops/codegen/template/CPlanMemoTable.java @@ -439,7 +439,7 @@ public class CPlanMemoTable sb.append(input(i)); } if( !isValid() ) - sb.append(", x"); + sb.append("|x"); sb.append(")"); return sb.toString(); } http://git-wip-us.apache.org/repos/asf/systemml/blob/3a7f38e5/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java b/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java index b0f46b7..7bbfa52 100644 --- a/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java +++ b/src/main/java/org/apache/sysml/hops/rewrite/HopRewriteUtils.java @@ -988,7 +988,7 @@ public class HopRewriteUtils public static boolean isColumnRangeIndexing(IndexingOp hop) { return ((isLiteralOfValue(hop.getInput().get(1), 1) - && isLiteralOfValue(hop.getInput().get(2), hop.getDim1())) + && isLiteralOfValue(hop.getInput().get(2), hop.getInput().get(0).getDim1())) || hop.getDim1() == hop.getInput().get(0).getDim1()) && isLiteralOfValue(hop.getInput().get(3), 1) && hop.getInput().get(4) instanceof LiteralOp;