Package org.apache.sysds.runtime.instructions.gpu

## Class DnnGPUInstruction

- java.lang.Object
- - org.apache.sysds.runtime.instructions.Instruction
  - - org.apache.sysds.runtime.instructions.gpu.GPUInstruction
    - - org.apache.sysds.runtime.instructions.gpu.DnnGPUInstruction

- All Implemented Interfaces:
    `LineageTraceable`

      public class DnnGPUInstruction
      extends GPUInstruction

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.sysds.runtime.instructions.gpu.GPUInstruction

      `GPUInstruction.GPUINSTRUCTION_TYPE`

    - ### Nested classes/interfaces inherited from class org.apache.sysds.runtime.instructions.Instruction

      `Instruction.IType`

  - ### Field Summary

    - ### Fields inherited from class org.apache.sysds.runtime.instructions.gpu.GPUInstruction

      `MISC_TIMER_ABS_KERNEL, MISC_TIMER_ACOS_KERNEL, MISC_TIMER_ACTIVATION_FORWARD_LIB, MISC_TIMER_ALLOCATE, MISC_TIMER_ALLOCATE_DENSE_OUTPUT, MISC_TIMER_ALLOCATE_SPARSE_OUTPUT, MISC_TIMER_ASIN_KERNEL, MISC_TIMER_ATAN_KERNEL, MISC_TIMER_BIAS_ADD_LIB, MISC_TIMER_CBIND_KERNEL, MISC_TIMER_CEIL_KERNEL, MISC_TIMER_COLUMN_TO_ROW_MAJOR, MISC_TIMER_COMPARE_AND_SET_KERNEL, MISC_TIMER_CONVOLUTION_BACKWARD_DATA_LIB, MISC_TIMER_CONVOLUTION_BACKWARD_FILTER_LIB, MISC_TIMER_CONVOLUTION_FORWARD_LIB, MISC_TIMER_COS_KERNEL, MISC_TIMER_COSH_KERNEL, MISC_TIMER_CUDA_FREE, MISC_TIMER_CUDA_SYNC, MISC_TIMER_CUDNN_CLEANUP, MISC_TIMER_CUDNN_INIT, MISC_TIMER_CUMULATIVE_SCAN_KERNEL, MISC_TIMER_CUMULATIVE_SUMPROD_KERNEL, MISC_TIMER_DAXPY_LIB, MISC_TIMER_DAXPY_MV_KERNEL, MISC_TIMER_DENSE_DGEAM_LIB, MISC_TIMER_DENSE_DOT_LIB, MISC_TIMER_DENSE_IM2COL_KERNEL, MISC_TIMER_DENSE_MATRIX_DENSE_MATRIX_LIB, MISC_TIMER_DENSE_MATRIX_DENSE_VECTOR_LIB, MISC_TIMER_DENSE_REORG_KNPQ_KERNEL, MISC_TIMER_DENSE_TO_SPARSE, MISC_TIMER_DENSE_VECTOR_DENSE_MATRIX_LIB, MISC_TIMER_DEVICE_TO_DEVICE, MISC_TIMER_DEVICE_TO_HOST, MISC_TIMER_EVICT, MISC_TIMER_EXP_KERNEL, MISC_TIMER_FILL_KERNEL, MISC_TIMER_FLOOR_KERNEL, MISC_TIMER_HOST_TO_DEVICE, MISC_TIMER_LOG_KERNEL, MISC_TIMER_MATRIX_MATRIX_CELLWISE_OP_KERNEL, MISC_TIMER_MATRIX_SCALAR_OP_KERNEL, MISC_TIMER_MAXPOOLING_BACKWARD_LIB, MISC_TIMER_MAXPOOLING_FORWARD_LIB, MISC_TIMER_OBJECT_CLONE, MISC_TIMER_ORMQR, MISC_TIMER_QR, MISC_TIMER_QR_BUFFER, MISC_TIMER_RBIND_KERNEL, MISC_TIMER_REDUCE_ALL_KERNEL, MISC_TIMER_REDUCE_COL_KERNEL, MISC_TIMER_REDUCE_ROW_KERNEL, MISC_TIMER_RELU_BACKWARD_KERNEL, MISC_TIMER_RELU_KERNEL, MISC_TIMER_REUSE, MISC_TIMER_RIX_DENSE_OP, MISC_TIMER_RIX_SPARSE_DENSE_OP_NNZ, MISC_TIMER_RIX_SPARSE_DENSE_OP_ROWWISE, MISC_TIMER_ROUND_KERNEL, MISC_TIMER_ROW_TO_COLUMN_MAJOR, MISC_TIMER_SET_ZERO, MISC_TIMER_SIGMOID_KERNEL, MISC_TIMER_SIGN_KERNEL, MISC_TIMER_SIN_KERNEL, MISC_TIMER_SINH_KERNEL, MISC_TIMER_SPARSE_ALLOCATE_LIB, MISC_TIMER_SPARSE_DGEAM_LIB, MISC_TIMER_SPARSE_IM2COL_KERNEL, MISC_TIMER_SPARSE_MATRIX_DENSE_MATRIX_LIB, MISC_TIMER_SPARSE_MATRIX_DENSE_VECTOR_LIB, MISC_TIMER_SPARSE_MATRIX_SPARSE_MATRIX_LIB, MISC_TIMER_SPARSE_TO_DENSE, MISC_TIMER_SQRT_KERNEL, MISC_TIMER_SYRK_LIB, MISC_TIMER_TAN_KERNEL, MISC_TIMER_TANH_KERNEL, MISC_TIMER_TRANSPOSE_LIB, MISC_TIMER_TRSM, MISC_TIMER_UPPER_TO_LOWER_TRIANGLE_KERNEL`

    - ### Fields inherited from class org.apache.sysds.runtime.instructions.Instruction

      `DATATYPE_PREFIX, FEDERATED_INST_PREFIX, GPU_INST_PREFIX, INSTRUCTION_DELIM, LITERAL_PREFIX, OPERAND_DELIM, SP_INST_PREFIX, VALUETYPE_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DnnGPUInstruction​(CPOperand in1, CPOperand in2, CPOperand out, String opcode, String istr, double intermediateMemoryBudget)` |
    `DnnGPUInstruction​(CPOperand in1, CPOperand in2, CPOperand out, String opcode, String istr, ArrayList<CPOperand> stride, ArrayList<CPOperand> padding, ArrayList<CPOperand> input_shape, ArrayList<CPOperand> filter_shape, double intermediateMemoryBudget)` |
    `DnnGPUInstruction​(CPOperand in1, CPOperand in2, CPOperand in3, CPOperand out, String opcode, String istr, double intermediateMemoryBudget)` |
    `DnnGPUInstruction​(CPOperand in1, CPOperand in2, CPOperand in3, CPOperand out, String opcode, String istr, ArrayList<CPOperand> stride, ArrayList<CPOperand> padding, ArrayList<CPOperand> input_shape, ArrayList<CPOperand> filter_shape, double intermediateMemoryBudget)` |
    `DnnGPUInstruction​(CPOperand in1, CPOperand in2, CPOperand in3, CPOperand in4, CPOperand out, String opcode, String istr, double intermediateMemoryBudget)` |
    `DnnGPUInstruction​(CPOperand in, CPOperand in2, CPOperand in3, CPOperand in4, CPOperand in5, CPOperand in6, CPOperand out, String opcode, String istr, double intermediateMemoryBudget)` |
    `DnnGPUInstruction​(CPOperand in1, CPOperand in2, CPOperand in3, CPOperand in4, CPOperand in5, CPOperand in6, CPOperand out, CPOperand out2, String opcode, String istr, double intermediateMemoryBudget)` |
    `DnnGPUInstruction​(CPOperand in1, CPOperand in2, CPOperand in3, CPOperand in4, CPOperand in5, CPOperand in6, CPOperand in7, CPOperand in8, CPOperand out, CPOperand out2, CPOperand out3, CPOperand out4, CPOperand out5, String opcode, String istr, double intermediateMemoryBudget)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DnnGPUInstruction` | `parseInstruction​(String str)` |
    `void` | `processBatchNorm2dBackwardInstruction​(ExecutionContext ec)` |
    `void` | `processInstruction​(ExecutionContext ec)` | This method should be used to execute the instruction.
    `void` | `processReLUBackwardInstruction​(ExecutionContext ec)` |

    - ### Methods inherited from class org.apache.sysds.runtime.instructions.gpu.GPUInstruction

      `getGPUInstructionType, getGraphString, getLineageItem, getType, postprocessInstruction, preprocessInstruction, requiresLabelUpdate`

    - ### Methods inherited from class org.apache.sysds.runtime.instructions.Instruction

      `getBeginColumn, getBeginLine, getEndColumn, getEndLine, getExtendedOpcode, getFilename, getInstID, getInstructionString, getLineNum, getOpcode, getOperator, getPrivacyConstraint, printMe, setInstID, setLocation, setLocation, setLocation, setLocation, setPrivacyConstraint, setPrivacyConstraint, toString, updateInstructionThreadID`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.sysds.runtime.lineage.LineageTraceable

      `getLineageItems, hasSingleLineage`

- - ### Constructor Detail

    - #### DnnGPUInstruction

          public DnnGPUInstruction​(CPOperand in1,
                                   CPOperand in2,
                                   CPOperand out,
                                   String opcode,
                                   String istr,
                                   double intermediateMemoryBudget)

    - #### DnnGPUInstruction

          public DnnGPUInstruction​(CPOperand in1,
                                   CPOperand in2,
                                   CPOperand in3,
                                   CPOperand in4,
                                   CPOperand in5,
                                   CPOperand in6,
                                   CPOperand out,
                                   CPOperand out2,
                                   String opcode,
                                   String istr,
                                   double intermediateMemoryBudget)
                            throws DMLRuntimeException

      Throws:
        `DMLRuntimeException`

    - #### DnnGPUInstruction

          public DnnGPUInstruction​(CPOperand in1,
                                   CPOperand in2,
                                   CPOperand in3,
                                   CPOperand in4,
                                   CPOperand in5,
                                   CPOperand in6,
                                   CPOperand in7,
                                   CPOperand in8,
                                   CPOperand out,
                                   CPOperand out2,
                                   CPOperand out3,
                                   CPOperand out4,
                                   CPOperand out5,
                                   String opcode,
                                   String istr,
                                   double intermediateMemoryBudget)
                            throws DMLRuntimeException

      Throws:
        `DMLRuntimeException`

    - #### DnnGPUInstruction

          public DnnGPUInstruction​(CPOperand in1,
                                   CPOperand in2,
                                   CPOperand in3,
                                   CPOperand out,
                                   String opcode,
                                   String istr,
                                   double intermediateMemoryBudget)
                            throws DMLRuntimeException

      Throws:
        `DMLRuntimeException`

    - #### DnnGPUInstruction

          public DnnGPUInstruction​(CPOperand in1,
                                   CPOperand in2,
                                   CPOperand in3,
                                   CPOperand in4,
                                   CPOperand out,
                                   String opcode,
                                   String istr,
                                   double intermediateMemoryBudget)
                            throws DMLRuntimeException

      Throws:
        `DMLRuntimeException`

    - #### DnnGPUInstruction

          public DnnGPUInstruction​(CPOperand in1,
                                   CPOperand in2,
                                   CPOperand in3,
                                   CPOperand out,
                                   String opcode,
                                   String istr,
                                   ArrayList<CPOperand> stride,
                                   ArrayList<CPOperand> padding,
                                   ArrayList<CPOperand> input_shape,
                                   ArrayList<CPOperand> filter_shape,
                                   double intermediateMemoryBudget)

    - #### DnnGPUInstruction

          public DnnGPUInstruction​(CPOperand in1,
                                   CPOperand in2,
                                   CPOperand out,
                                   String opcode,
                                   String istr,
                                   ArrayList<CPOperand> stride,
                                   ArrayList<CPOperand> padding,
                                   ArrayList<CPOperand> input_shape,
                                   ArrayList<CPOperand> filter_shape,
                                   double intermediateMemoryBudget)

    - #### DnnGPUInstruction

          public DnnGPUInstruction​(CPOperand in,
                                   CPOperand in2,
                                   CPOperand in3,
                                   CPOperand in4,
                                   CPOperand in5,
                                   CPOperand in6,
                                   CPOperand out,
                                   String opcode,
                                   String istr,
                                   double intermediateMemoryBudget)

  - ### Method Detail

    - #### parseInstruction

          public static DnnGPUInstruction parseInstruction​(String str)

    - #### processBatchNorm2dBackwardInstruction

          public void processBatchNorm2dBackwardInstruction​(ExecutionContext ec)
                                                     throws DMLRuntimeException

      Throws:
        `DMLRuntimeException`

    - #### processReLUBackwardInstruction

          public void processReLUBackwardInstruction​(ExecutionContext ec)

    - #### processInstruction

          public void processInstruction​(ExecutionContext ec)

      Description copied from class: `Instruction`
      This method should be used to execute the instruction.
      Specified by:
        `processInstruction` in class `GPUInstruction`
      Parameters:
        `ec` - execution context