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 <mboe...@gmail.com>
Authored: Fri Sep 15 01:05:22 2017 -0700
Committer: Matthias Boehm <mboe...@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);

Reply via email to