Repository: incubator-systemml Updated Branches: refs/heads/master 30b156f03 -> 9607a376a
[SYSTEMML-567] Fix hop compilation w/ frames (known dims, recompile) Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/4c058fa3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/4c058fa3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/4c058fa3 Branch: refs/heads/master Commit: 4c058fa3e12a7567dabbf54ee38bcbf3ebcbe861 Parents: 30b156f Author: Matthias Boehm <[email protected]> Authored: Tue May 31 22:59:37 2016 -0700 Committer: Matthias Boehm <[email protected]> Committed: Wed Jun 1 09:48:41 2016 -0700 ---------------------------------------------------------------------- src/main/java/org/apache/sysml/hops/DataOp.java | 4 ++-- src/main/java/org/apache/sysml/hops/Hop.java | 16 +++++++++++----- .../org/apache/sysml/hops/recompile/Recompiler.java | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/4c058fa3/src/main/java/org/apache/sysml/hops/DataOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/DataOp.java b/src/main/java/org/apache/sysml/hops/DataOp.java index a9cb8b9..d83659c 100644 --- a/src/main/java/org/apache/sysml/hops/DataOp.java +++ b/src/main/java/org/apache/sysml/hops/DataOp.java @@ -374,13 +374,13 @@ public class DataOp extends Hop ret = 0; } } - else //MATRIX + else //MATRIX / FRAME { if( _dataop == DataOpTypes.PERSISTENTREAD || _dataop == DataOpTypes.TRANSIENTREAD ) { double sparsity = OptimizerUtils.getSparsity(dim1, dim2, nnz); - ret = OptimizerUtils.estimateSizeExactSparsity(dim1, dim2, sparsity); + ret = OptimizerUtils.estimateSizeExactSparsity(dim1, dim2, sparsity); } // output memory estimate is not required for "write" nodes (just input) } http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/4c058fa3/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 43193a9..088ddb4 100644 --- a/src/main/java/org/apache/sysml/hops/Hop.java +++ b/src/main/java/org/apache/sysml/hops/Hop.java @@ -617,6 +617,7 @@ public abstract class Hop _outputMemEstimate = computeOutputMemEstimate( _dim1, _dim2, _nnz ); break; } + case FRAME: case MATRIX: { //1a) mem estimate based on exactly known dimensions and sparsity @@ -663,8 +664,7 @@ public abstract class Hop break; } case OBJECT: - case UNKNOWN: - case FRAME: + case UNKNOWN: { //memory estimate always unknown _outputMemEstimate = OptimizerUtils.DEFAULT_SIZE; @@ -866,15 +866,21 @@ public abstract class Hop } public boolean dimsKnown() { - return ( _dataType == DataType.SCALAR || (_dataType==DataType.MATRIX && _dim1 > 0 && _dim2 > 0) ); + return ( _dataType == DataType.SCALAR + || ((_dataType==DataType.MATRIX || _dataType==DataType.FRAME) + && _dim1 > 0 && _dim2 > 0) ); } public boolean dimsKnown(boolean includeNnz) { - return ( _dataType == DataType.SCALAR || (_dataType==DataType.MATRIX && _dim1 > 0 && _dim2 > 0 && ((includeNnz)? _nnz>=0 : true)) ); + return ( _dataType == DataType.SCALAR + || ((_dataType==DataType.MATRIX || _dataType==DataType.FRAME) + && _dim1 > 0 && _dim2 > 0 && ((includeNnz)? _nnz>=0 : true))); } public boolean dimsKnownAny() { - return ( _dataType == DataType.SCALAR || (_dataType==DataType.MATRIX && (_dim1 > 0 || _dim2 > 0)) ); + return ( _dataType == DataType.SCALAR + || ((_dataType==DataType.MATRIX || _dataType==DataType.FRAME) + && (_dim1 > 0 || _dim2 > 0)) ); } public static void resetVisitStatus( ArrayList<Hop> hops ) http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/4c058fa3/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java index c21c3a7..d5a6c5f 100644 --- a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java +++ b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java @@ -2099,8 +2099,8 @@ public class Recompiler DataType dt = DataType.valueOf(String.valueOf(mtd.get(DataExpression.DATATYPEPARAM)).toUpperCase()); dop.setDataType(dt); dop.setValueType(ValueType.valueOf(String.valueOf(mtd.get(DataExpression.VALUETYPEPARAM)).toUpperCase())); - dop.setDim1((dt==DataType.MATRIX)?Long.parseLong(mtd.get(DataExpression.READROWPARAM).toString()):0); - dop.setDim2((dt==DataType.MATRIX)?Long.parseLong(mtd.get(DataExpression.READCOLPARAM).toString()):0); + dop.setDim1((dt==DataType.MATRIX||dt==DataType.FRAME)?Long.parseLong(mtd.get(DataExpression.READROWPARAM).toString()):0); + dop.setDim2((dt==DataType.MATRIX||dt==DataType.FRAME)?Long.parseLong(mtd.get(DataExpression.READCOLPARAM).toString()):0); } finally { if( br != null )
