Repository: systemml
Updated Branches:
  refs/heads/master 6b877b04c -> 3ca91e68c


http://git-wip-us.apache.org/repos/asf/systemml/blob/3ca91e68/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 94b33f8..2e03a2b 100644
--- a/src/main/java/org/apache/sysml/hops/UnaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/UnaryOp.java
@@ -113,6 +113,7 @@ public class UnaryOp extends Hop implements MultiThreadedHop
                                case ASIN:case ACOS:case ATAN:
                                case SINH:case COSH: case TANH:
                                case SIGN:
+                               case SIGMOID:
                                        return true;
                                default:
                                        return false;

http://git-wip-us.apache.org/repos/asf/systemml/blob/3ca91e68/src/main/java/org/apache/sysml/runtime/instructions/GPUInstructionParser.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/GPUInstructionParser.java 
b/src/main/java/org/apache/sysml/runtime/instructions/GPUInstructionParser.java
index ae19969..c07f2b8 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/GPUInstructionParser.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/GPUInstructionParser.java
@@ -99,6 +99,7 @@ public class GPUInstructionParser  extends InstructionParser
                String2GPUInstructionType.put( "acos",  
GPUINSTRUCTION_TYPE.BuiltinUnary);
                String2GPUInstructionType.put( "atan",  
GPUINSTRUCTION_TYPE.BuiltinUnary);
                String2GPUInstructionType.put( "sign",  
GPUINSTRUCTION_TYPE.BuiltinUnary);
+               String2GPUInstructionType.put( "sigmoid", 
GPUINSTRUCTION_TYPE.BuiltinUnary);
 
                // Binary Builtin functions
                String2GPUInstructionType.put( "solve", 
GPUINSTRUCTION_TYPE.BuiltinBinary);

http://git-wip-us.apache.org/repos/asf/systemml/blob/3ca91e68/src/main/java/org/apache/sysml/runtime/instructions/gpu/GPUInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/gpu/GPUInstruction.java 
b/src/main/java/org/apache/sysml/runtime/instructions/gpu/GPUInstruction.java
index 1883582..87bac47 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/gpu/GPUInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/gpu/GPUInstruction.java
@@ -113,6 +113,7 @@ public abstract class GPUInstruction extends Instruction {
        public final static String MISC_TIMER_ACOS_KERNEL =                     
 "acosk";   // time spent in the acos kernel
        public final static String MISC_TIMER_ATAN_KERNEL =                     
 "atank";   // time spent in the atan kernel
        public final static String MISC_TIMER_SIGN_KERNEL =                     
 "signk";   // time spent in the sign kernel
+       public final static String MISC_TIMER_SIGMOID_KERNEL =                  
 "sigmk";   // time spent in the sigmoid kernel
        public final static String MISC_TIMER_CBIND_KERNEL =                    
 "cbindk";  // time spent in the cbind kernel
        public final static String MISC_TIMER_RBIND_KERNEL =                    
 "rbindk";  // time spent in the rbind kernel
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/3ca91e68/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixBuiltinGPUInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixBuiltinGPUInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixBuiltinGPUInstruction.java
index 1718d69..27eeefe 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixBuiltinGPUInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/gpu/MatrixBuiltinGPUInstruction.java
@@ -80,6 +80,8 @@ public class MatrixBuiltinGPUInstruction extends 
BuiltinUnaryGPUInstruction {
                                LibMatrixCUDA.atan(ec, ec.getGPUContext(0), 
getExtendedOpcode(), mat, _output.getName()); break;
                        case "sign":
                                LibMatrixCUDA.sign(ec, ec.getGPUContext(0), 
getExtendedOpcode(), mat, _output.getName()); break;
+                       case "sigmoid":
+                               LibMatrixCUDA.sigmoid(ec, ec.getGPUContext(0), 
getExtendedOpcode(), mat, _output.getName()); break;
                        default:
                                throw new DMLRuntimeException("Unsupported GPU 
operator:" + opcode);
                }

http://git-wip-us.apache.org/repos/asf/systemml/blob/3ca91e68/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCUDA.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCUDA.java 
b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCUDA.java
index 59a9e49..bbc4727 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCUDA.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixCUDA.java
@@ -2265,6 +2265,23 @@ public class LibMatrixCUDA {
                // sign(0) = 0
                unaryOp(ec, gCtx, in1, "matrix_sign", 0, outputName, instName, 
GPUInstruction.MISC_TIMER_SIGN_KERNEL);
        }
+       
+       /**
+        * Performs an "sigmoid" operation on a matrix on the GPU
+        * @param ec    execution context
+        * @param gCtx a valid {@link GPUContext}
+        * @param instName the invoking instruction's name for record {@link 
Statistics}.
+        * @param in1   input matrix
+        * @param outputName    output matrix name
+        * @throws DMLRuntimeException  if DMLRuntimeException occurs
+        */
+       public static void sigmoid(ExecutionContext ec, GPUContext gCtx, String 
instName, MatrixObject in1, String outputName) throws DMLRuntimeException {
+               if(LOG.isTraceEnabled()) {
+                       LOG.trace("GPU : sigmoid" + ", GPUContext=" + gCtx);
+               }
+               // sigmoid(0) = 0.5
+               unaryOp(ec, gCtx, in1, "matrix_sigmoid", 0.5, outputName, 
instName, GPUInstruction.MISC_TIMER_SIGMOID_KERNEL);
+       }
 
 
        /**

Reply via email to