You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2018/10/21 00:01:59 UTC
systemml git commit: [MINOR] Fixes baseline sparsity estimators
(layered graph, bitset)
Repository: systemml
Updated Branches:
refs/heads/master 07650acf2 -> ab8cccdff
[MINOR] Fixes baseline sparsity estimators (layered graph, bitset)
This patch fixes (1) the selection of bitset implementations according
to input datasize, and (2) operation-specific API of the layered graph.
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/ab8cccdf
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/ab8cccdf
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/ab8cccdf
Branch: refs/heads/master
Commit: ab8cccdff8465cf29acd4887b1009989a9e7c97f
Parents: 07650ac
Author: Matthias Boehm <mb...@gmail.com>
Authored: Sun Oct 21 02:01:45 2018 +0200
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Sun Oct 21 02:01:45 2018 +0200
----------------------------------------------------------------------
.../sysml/hops/estim/EstimatorBitsetMM.java | 18 +++++++++++++++---
.../sysml/hops/estim/EstimatorLayeredGraph.java | 2 ++
2 files changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/systemml/blob/ab8cccdf/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java b/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java
index 99354fd..3d3c4f0 100644
--- a/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java
+++ b/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java
@@ -71,9 +71,9 @@ public class EstimatorBitsetMM extends SparsityEstimator
if( isExactMetadataOp(op) )
return estimExactMetaData(m1.getMatrixCharacteristics(),
m2.getMatrixCharacteristics(), op).getSparsity();
- BitsetMatrix m1Map = new BitsetMatrix1(m1);
+ BitsetMatrix m1Map = createBitset(m1);
BitsetMatrix m2Map = (m1 == m2) ? //self product
- m1Map : new BitsetMatrix1(m2);
+ m1Map : createBitset(m2);
BitsetMatrix outMap = estimInternal(m1Map, m2Map, op);
return OptimizerUtils.getSparsity(outMap.getNumRows(),
outMap.getNumColumns(), outMap.getNonZeros());
@@ -83,7 +83,7 @@ public class EstimatorBitsetMM extends SparsityEstimator
public double estim(MatrixBlock m, OpCode op) {
if( isExactMetadataOp(op) )
return estimExactMetaData(m.getMatrixCharacteristics(), null, op).getSparsity();
- BitsetMatrix m1Map = new BitsetMatrix1(m);
+ BitsetMatrix m1Map = createBitset(m);
BitsetMatrix outMap = estimInternal(m1Map, null, op);
return OptimizerUtils.getSparsity(outMap.getNumRows(),
outMap.getNumColumns(), outMap.getNonZeros());
@@ -199,6 +199,18 @@ public class EstimatorBitsetMM extends SparsityEstimator
//protected abstract BitsetMatrix reshape(int rows, int cols, boolean byrow);
}
+ public static BitsetMatrix createBitset(int m, int n) {
+ return (long)m*n < Integer.MAX_VALUE ?
+ new BitsetMatrix1(m, n) : //linearized long array
+ new BitsetMatrix2(m, n); //bitset per row
+ }
+
+ public static BitsetMatrix createBitset(MatrixBlock in) {
+ return in.getLength() < Integer.MAX_VALUE ?
+ new BitsetMatrix1(in) : //linearized long array
+ new BitsetMatrix2(in); //bitset per row
+ }
+
/**
* This class represents a boolean matrix and provides key operations.
* In the interest of a cache-conscious matrix multiplication and reduced
http://git-wip-us.apache.org/repos/asf/systemml/blob/ab8cccdf/src/main/java/org/apache/sysml/hops/estim/EstimatorLayeredGraph.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/estim/EstimatorLayeredGraph.java b/src/main/java/org/apache/sysml/hops/estim/EstimatorLayeredGraph.java
index 9fbc384..d76c165 100644
--- a/src/main/java/org/apache/sysml/hops/estim/EstimatorLayeredGraph.java
+++ b/src/main/java/org/apache/sysml/hops/estim/EstimatorLayeredGraph.java
@@ -62,6 +62,8 @@ public class EstimatorLayeredGraph extends SparsityEstimator {
@Override
public double estim(MatrixBlock m1, MatrixBlock m2, OpCode op) {
+ if( op == OpCode.MM )
+ return estim(m1, m2);
throw new NotImplementedException();
}