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 2017/09/15 08:16:18 UTC
systemml git commit: [SYSTEMML-1908, 1771, 1770, 1769,
1739] Fix misc api and compiler issues
Repository: systemml
Updated Branches:
refs/heads/master e6dfd89b1 -> ebb6ea612
[SYSTEMML-1908,1771,1770,1769,1739] Fix misc api and compiler issues
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/ebb6ea61
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/ebb6ea61
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/ebb6ea61
Branch: refs/heads/master
Commit: ebb6ea6128b4babc6ffe07e2fc7f9666593a76b1
Parents: e6dfd89
Author: Matthias Boehm <mb...@gmail.com>
Authored: Fri Sep 15 01:05:22 2017 -0700
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Fri Sep 15 01:05:22 2017 -0700
----------------------------------------------------------------------
.../java/org/apache/sysml/api/jmlc/PreparedScript.java | 4 ++--
.../sysml/api/mlcontext/MLContextConversionUtil.java | 12 +++++++-----
src/main/java/org/apache/sysml/hops/UnaryOp.java | 5 +++--
.../sysml/hops/codegen/template/TemplateCell.java | 2 +-
.../instructions/gpu/MatrixAppendGPUInstruction.java | 8 ++++----
5 files changed, 17 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/systemml/blob/ebb6ea61/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java b/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java
index 563df41..71f5e1b 100644
--- a/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java
+++ b/src/main/java/org/apache/sysml/api/jmlc/PreparedScript.java
@@ -448,14 +448,14 @@ public class PreparedScript
//enable requested functions for recompile once
for( String fname : fnames ) {
String fkey = DMLProgram.constructFunctionKey(fnamespace, fname);
- if( !fgraph.isRecursiveFunction(fkey) ) {
+ if( fgraph != null && !fgraph.isRecursiveFunction(fkey) ) {
FunctionProgramBlock fpb = _prog.getFunctionProgramBlock(fnamespace, fname);
if( fpb != null )
fpb.setRecompileOnce(true);
else
LOG.warn("Failed to enable function recompile for non-existing '"+fkey+"'.");
}
- else {
+ else if( fgraph != null ) {
LOG.warn("Failed to enable function recompile for recursive '"+fkey+"'.");
}
}
http://git-wip-us.apache.org/repos/asf/systemml/blob/ebb6ea61/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java b/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
index 3f12ace..2512abb 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java
@@ -308,12 +308,14 @@ public class MLContextConversionUtil {
public static FrameObject binaryBlocksToFrameObject(String variableName, JavaPairRDD<Long, FrameBlock> binaryBlocks,
FrameMetadata frameMetadata) {
- MatrixCharacteristics mc = (frameMetadata != null) ? frameMetadata.asMatrixCharacteristics()
- : new MatrixCharacteristics();
-
+ MatrixCharacteristics mc = (frameMetadata != null) ?
+ frameMetadata.asMatrixCharacteristics() : new MatrixCharacteristics();
+ ValueType[] schema = (frameMetadata != null) ?
+ frameMetadata.getFrameSchema().getSchema().toArray(new ValueType[0]) :
+ UtilFunctions.nCopies((int)mc.getCols(), ValueType.STRING);
+
FrameObject frameObject = new FrameObject(OptimizerUtils.getUniqueTempFileName(),
- new MatrixFormatMetaData(mc, OutputInfo.BinaryBlockOutputInfo, InputInfo.BinaryBlockInputInfo),
- frameMetadata.getFrameSchema().getSchema().toArray(new ValueType[0]));
+ new MatrixFormatMetaData(mc, OutputInfo.BinaryBlockOutputInfo, InputInfo.BinaryBlockInputInfo), schema);
frameObject.setRDDHandle(new RDDObject(binaryBlocks, variableName));
return frameObject;
}
http://git-wip-us.apache.org/repos/asf/systemml/blob/ebb6ea61/src/main/java/org/apache/sysml/hops/UnaryOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/UnaryOp.java b/src/main/java/org/apache/sysml/hops/UnaryOp.java
index d51fd81..ca1fc84 100644
--- a/src/main/java/org/apache/sysml/hops/UnaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/UnaryOp.java
@@ -577,14 +577,15 @@ public class UnaryOp extends Hop implements MultiThreadedHop
{
double ret = 0;
- if ( _op == OpOp1.IQM || _op == OpOp1.MEDIAN) {
+ if ( _op == OpOp1.IQM || _op == OpOp1.MEDIAN) {
// buffer (=2*input_size) and output (=input_size) for SORT operation
// getMemEstimate works for both cases of known dims and worst-case stats
ret = getInput().get(0).getMemEstimate() * 3;
}
if (isGPUEnabled()) {
- OptimizerUtils.estimateSize(dim1, dim2); // Intermediate memory required to convert sparse to dense
+ // Intermediate memory required to convert sparse to dense
+ ret += OptimizerUtils.estimateSize(dim1, dim2);
}
return ret;
http://git-wip-us.apache.org/repos/asf/systemml/blob/ebb6ea61/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java
index b120bf5..4b0c126 100644
--- a/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java
+++ b/src/main/java/org/apache/sysml/hops/codegen/template/TemplateCell.java
@@ -366,7 +366,7 @@ public class TemplateCell extends TemplateBase
if( h1.isScalar() && h2.isScalar() )
return Long.compare(h1.getHopID(), h2.getHopID());
return (h1.dimsKnown(true) && h2.dimsKnown(true) && h1.getNnz() != h2.getNnz()
- && HopRewriteUtils.isSparse(h1) || HopRewriteUtils.isSparse(h1)) ?
+ && (HopRewriteUtils.isSparse(h1) || HopRewriteUtils.isSparse(h2))) ?
Long.compare(h1.getNnz(), h2.getNnz()) :
Long.compare(h1.getHopID(), h2.getHopID());
}
http://git-wip-us.apache.org/repos/asf/systemml/blob/ebb6ea61/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixAppendGPUInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixAppendGPUInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixAppendGPUInstruction.java
index ac48edf..a183d29 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixAppendGPUInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixAppendGPUInstruction.java
@@ -39,7 +39,7 @@ public class MatrixAppendGPUInstruction extends GPUInstruction {
CPOperand output;
CPOperand input1, input2;
- AppendCPInstruction.AppendType type;
+ AppendCPInstruction.AppendType atype;
private MatrixAppendGPUInstruction(Operator op, CPOperand in1, CPOperand in2, CPOperand out,
AppendCPInstruction.AppendType type, String opcode, String istr) {
@@ -47,7 +47,7 @@ public class MatrixAppendGPUInstruction extends GPUInstruction {
this.output = out;
this.input1 = in1;
this.input2 = in2;
- this.type = type;
+ this.atype = type;
}
public static MatrixAppendGPUInstruction parseInstruction ( String str )
@@ -86,9 +86,9 @@ public class MatrixAppendGPUInstruction extends GPUInstruction {
MatrixObject mat1 = getMatrixInputForGPUInstruction(ec, input1.getName());
MatrixObject mat2 = getMatrixInputForGPUInstruction(ec, input2.getName());
- if(type == AppendCPInstruction.AppendType.CBIND) {
+ if(atype == AppendCPInstruction.AppendType.CBIND) {
LibMatrixCUDA.cbind(ec, ec.getGPUContext(0), getExtendedOpcode(), mat1, mat2, output.getName());
- } else if (type == AppendCPInstruction.AppendType.RBIND ) {
+ } else if (atype == AppendCPInstruction.AppendType.RBIND ) {
LibMatrixCUDA.rbind(ec, ec.getGPUContext(0), getExtendedOpcode(), mat1, mat2, output.getName());
} else {
throw new DMLRuntimeException("Unsupported GPU operator:" + opcode);