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 and Description
`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)`
`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 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 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 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 out, String opcode, String istr, double intermediateMemoryBudget)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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