Repository: systemml Updated Branches: refs/heads/master b9f720256 -> 4f1223a9a
[MINOR] Improved recompilation of size expressions and checkpoints This patch improves the recompilation of size expressions with floor/ceil functions as well as the recompilation of checkpoints in parfor body programs. For example, for the nn testsuite, this reduced the number of (unnecessarily) executed spark instructions from 62 to 0. Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/4f1223a9 Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/4f1223a9 Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/4f1223a9 Branch: refs/heads/master Commit: 4f1223a9a4193a036de1a9d0e7891d0aa5eb11cc Parents: b9f7202 Author: Matthias Boehm <[email protected]> Authored: Sun Jan 14 15:59:05 2018 -0800 Committer: Matthias Boehm <[email protected]> Committed: Sun Jan 14 15:59:05 2018 -0800 ---------------------------------------------------------------------- src/main/java/org/apache/sysml/hops/Hop.java | 4 +++- src/main/java/org/apache/sysml/hops/OptimizerUtils.java | 8 ++++++-- .../test/integration/functions/codegenalg/ZPackageSuite.java | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/4f1223a9/src/main/java/org/apache/sysml/hops/Hop.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/Hop.java b/src/main/java/org/apache/sysml/hops/Hop.java index 0f11175..a23008e 100644 --- a/src/main/java/org/apache/sysml/hops/Hop.java +++ b/src/main/java/org/apache/sysml/hops/Hop.java @@ -956,8 +956,10 @@ public abstract class Hop implements ParseInfo //reset recompile flag if( (et == null || getExecType() == et || getExecType() == null) - && (reset==ResetType.RESET || (reset==ResetType.RESET_KNOWN_DIMS && dimsKnown())) ) + && (reset==ResetType.RESET || (reset==ResetType.RESET_KNOWN_DIMS && dimsKnown())) + && !(_requiresCheckpoint && getLops() instanceof Checkpoint && !dimsKnown(true)) ) { _requiresRecompile = false; + } setVisited(); } http://git-wip-us.apache.org/repos/asf/systemml/blob/4f1223a9/src/main/java/org/apache/sysml/hops/OptimizerUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java index d978500..eba4dd7 100644 --- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java +++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java @@ -1294,8 +1294,10 @@ public class OptimizerUtils { switch( uroot.getOp() ) { - case SQRT: ret = Math.sqrt(lval); break; + case SQRT: ret = Math.sqrt(lval); break; case ROUND: ret = Math.round(lval); break; + case CEIL: ret = Math.ceil(lval); break; + case FLOOR: ret = Math.floor(lval); break; case CAST_AS_BOOLEAN: ret = (lval!=0)? 1 : 0; break; case CAST_AS_INT: ret = UtilFunctions.toLong(lval); break; case CAST_AS_DOUBLE: ret = lval; break; @@ -1331,8 +1333,10 @@ public class OptimizerUtils { switch( uroot.getOp() ) { - case SQRT: ret = Math.sqrt(lval); break; + case SQRT: ret = Math.sqrt(lval); break; case ROUND: ret = Math.round(lval); break; + case CEIL: ret = Math.ceil(lval); break; + case FLOOR: ret = Math.floor(lval); break; case CAST_AS_BOOLEAN: ret = (lval!=0)? 1 : 0; break; case CAST_AS_INT: ret = UtilFunctions.toLong(lval); break; case CAST_AS_DOUBLE: ret = lval; break; http://git-wip-us.apache.org/repos/asf/systemml/blob/4f1223a9/src/test_suites/java/org/apache/sysml/test/integration/functions/codegenalg/ZPackageSuite.java ---------------------------------------------------------------------- diff --git a/src/test_suites/java/org/apache/sysml/test/integration/functions/codegenalg/ZPackageSuite.java b/src/test_suites/java/org/apache/sysml/test/integration/functions/codegenalg/ZPackageSuite.java index c07472a..3159928 100644 --- a/src/test_suites/java/org/apache/sysml/test/integration/functions/codegenalg/ZPackageSuite.java +++ b/src/test_suites/java/org/apache/sysml/test/integration/functions/codegenalg/ZPackageSuite.java @@ -36,6 +36,7 @@ import org.junit.runners.Suite; AlgorithmMLogreg.class, AlgorithmMSVM.class, AlgorithmPNMF.class, + AlgorithmStepwiseRegression.class, })
