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

# Class GPUInstruction

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

All Implemented Interfaces:
  `LineageTraceable`

Direct Known Subclasses:
  `AggregateBinaryGPUInstruction`, `AggregateUnaryGPUInstruction`, `ArithmeticBinaryGPUInstruction`, `BuiltinBinaryGPUInstruction`, `BuiltinUnaryGPUInstruction`, `DnnGPUInstruction`, `MatrixAppendGPUInstruction`, `MatrixIndexingGPUInstruction`, `MatrixReshapeGPUInstruction`, `MMTSJGPUInstruction`, `RelationalBinaryGPUInstruction`, `ReorgGPUInstruction`, `SpoofCUDAInstruction`

public abstract class GPUInstruction extends Instruction implements LineageTraceable

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`GPUInstruction.GPUINSTRUCTION_TYPE`

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

`Instruction.IType`

## Field Summary

Fields
Modifier and Type
Field
Description
`final CPOperand`
`_input1`
`final CPOperand`
`_input2`
`final CPOperand`
`_output`
`static final String`
`MISC_TIMER_ABS_KERNEL`
`static final String`
`MISC_TIMER_ACOS_KERNEL`
`static final String`
`MISC_TIMER_ACTIVATION_FORWARD_LIB`
`static final String`
`MISC_TIMER_ALLOCATE`
`static final String`
`MISC_TIMER_ALLOCATE_DENSE_OUTPUT`
`static final String`
`MISC_TIMER_ALLOCATE_SPARSE_OUTPUT`
`static final String`
`MISC_TIMER_ASIN_KERNEL`
`static final String`
`MISC_TIMER_ATAN_KERNEL`
`static final String`
`MISC_TIMER_BIAS_ADD_LIB`
`static final String`
`MISC_TIMER_CBIND_KERNEL`
`static final String`
`MISC_TIMER_CEIL_KERNEL`
`static final String`
`MISC_TIMER_COLUMN_TO_ROW_MAJOR`
`static final String`
`MISC_TIMER_COMPARE_AND_SET_KERNEL`
`static final String`
`MISC_TIMER_CONVOLUTION_BACKWARD_DATA_LIB`
`static final String`
`MISC_TIMER_CONVOLUTION_BACKWARD_FILTER_LIB`
`static final String`
`MISC_TIMER_CONVOLUTION_FORWARD_LIB`
`static final String`
`MISC_TIMER_COS_KERNEL`
`static final String`
`MISC_TIMER_COSH_KERNEL`
`static final String`
`MISC_TIMER_CUDA_FREE`
`static final String`
`MISC_TIMER_CUDA_SYNC`
`static final String`
`MISC_TIMER_CUDNN_CLEANUP`
`static final String`
`MISC_TIMER_CUDNN_INIT`
`static final String`
`MISC_TIMER_CUMULATIVE_SCAN_KERNEL`
`static final String`
`MISC_TIMER_CUMULATIVE_SUMPROD_KERNEL`
`static final String`
`MISC_TIMER_DAXPY_LIB`
`static final String`
`MISC_TIMER_DAXPY_MV_KERNEL`
`static final String`
`MISC_TIMER_DENSE_DGEAM_LIB`
`static final String`
`MISC_TIMER_DENSE_DOT_LIB`
`static final String`
`MISC_TIMER_DENSE_IM2COL_KERNEL`
`static final String`
`MISC_TIMER_DENSE_MATRIX_DENSE_MATRIX_LIB`
`static final String`
`MISC_TIMER_DENSE_MATRIX_DENSE_VECTOR_LIB`
`static final String`
`MISC_TIMER_DENSE_REORG_KNPQ_KERNEL`
`static final String`
`MISC_TIMER_DENSE_TO_SPARSE`
`static final String`
`MISC_TIMER_DENSE_VECTOR_DENSE_MATRIX_LIB`
`static final String`
`MISC_TIMER_DEVICE_TO_DEVICE`
`static final String`
`MISC_TIMER_DEVICE_TO_HOST`
`static final String`
`MISC_TIMER_EVICT`
`static final String`
`MISC_TIMER_EXP_KERNEL`
`static final String`
`MISC_TIMER_FILL_KERNEL`
`static final String`
`MISC_TIMER_FLOOR_KERNEL`
`static final String`
`MISC_TIMER_HOST_TO_DEVICE`
`static final String`
`MISC_TIMER_LOG_KERNEL`
`static final String`
`MISC_TIMER_MATRIX_MATRIX_CELLWISE_OP_KERNEL`
`static final String`
`MISC_TIMER_MATRIX_SCALAR_OP_KERNEL`
`static final String`
`MISC_TIMER_MAXPOOLING_BACKWARD_LIB`
`static final String`
`MISC_TIMER_MAXPOOLING_FORWARD_LIB`
`static final String`
`MISC_TIMER_OBJECT_CLONE`
`static final String`
`MISC_TIMER_ORMQR`
`static final String`
`MISC_TIMER_QR`
`static final String`
`MISC_TIMER_QR_BUFFER`
`static final String`
`MISC_TIMER_RBIND_KERNEL`
`static final String`
`MISC_TIMER_REDUCE_ALL_KERNEL`
`static final String`
`MISC_TIMER_REDUCE_COL_KERNEL`
`static final String`
`MISC_TIMER_REDUCE_ROW_KERNEL`
`static final String`
`MISC_TIMER_RELU_BACKWARD_KERNEL`
`static final String`
`MISC_TIMER_RELU_KERNEL`
`static final String`
`MISC_TIMER_REUSE`
`static final String`
`MISC_TIMER_RIX_DENSE_OP`
`static final String`
`MISC_TIMER_RIX_SPARSE_DENSE_OP_NNZ`
`static final String`
`MISC_TIMER_RIX_SPARSE_DENSE_OP_ROWWISE`
`static final String`
`MISC_TIMER_ROUND_KERNEL`
`static final String`
`MISC_TIMER_ROW_TO_COLUMN_MAJOR`
`static final String`
`MISC_TIMER_SET_ZERO`
`static final String`
`MISC_TIMER_SIGMOID_KERNEL`
`static final String`
`MISC_TIMER_SIGN_KERNEL`
`static final String`
`MISC_TIMER_SIN_KERNEL`
`static final String`
`MISC_TIMER_SINH_KERNEL`
`static final String`
`MISC_TIMER_SPARSE_ALLOCATE_LIB`
`static final String`
`MISC_TIMER_SPARSE_DGEAM_LIB`
`static final String`
`MISC_TIMER_SPARSE_IM2COL_KERNEL`
`static final String`
`MISC_TIMER_SPARSE_MATRIX_DENSE_MATRIX_LIB`
`static final String`
`MISC_TIMER_SPARSE_MATRIX_DENSE_VECTOR_LIB`
`static final String`
`MISC_TIMER_SPARSE_MATRIX_SPARSE_MATRIX_LIB`
`static final String`
`MISC_TIMER_SPARSE_TO_DENSE`
`static final String`
`MISC_TIMER_SQRT_KERNEL`
`static final String`
`MISC_TIMER_SYRK_LIB`
`static final String`
`MISC_TIMER_TAN_KERNEL`
`static final String`
`MISC_TIMER_TANH_KERNEL`
`static final String`
`MISC_TIMER_TRANSPOSE_LIB`
`static final String`
`MISC_TIMER_TRSM`
`static final String`
`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, OOC_INST_PREFIX, OPERAND_DELIM, SP_INST_PREFIX, VALUETYPE_PREFIX`

## Method Summary

Modifier and Type
Method
Description
`GPUInstruction.GPUINSTRUCTION_TYPE`
`getGPUInstructionType()`
`String`
`getGraphString()`
`org.apache.commons.lang3.tuple.Pair<String,LineageItem>`
`getLineageItem(ExecutionContext ec)`
Obtain lineage trace of an instruction with a single output.
`Instruction.IType`
`getType()`
`void`
`postprocessInstruction(ExecutionContext ec)`
This method should be used for any tear down after executing this instruction.
`Instruction`
`preprocessInstruction(ExecutionContext ec)`
This method should be used for any setup before executing this instruction.
`abstract void`
`processInstruction(ExecutionContext ec)`
This method should be used to execute the instruction.
`boolean`
`requiresLabelUpdate()`

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

`getBeginColumn, getBeginLine, getEndColumn, getEndLine, getExtendedOpcode, getFilename, getInstID, getInstructionString, getLineNum, getOpcode, getOperator, printMe, setInstID, setLocation, setLocation, setLocation, setLocation, 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`

## Field Details

### _output

public final CPOperand _output

### _input1

public final CPOperand _input1

### _input2

public final CPOperand _input2

### MISC_TIMER_HOST_TO_DEVICE

public static final String MISC_TIMER_HOST_TO_DEVICE

See Also:
  - Constant Field Values

### MISC_TIMER_DEVICE_TO_HOST

public static final String MISC_TIMER_DEVICE_TO_HOST

See Also:
  - Constant Field Values

### MISC_TIMER_DEVICE_TO_DEVICE

public static final String MISC_TIMER_DEVICE_TO_DEVICE

See Also:
  - Constant Field Values

### MISC_TIMER_SPARSE_TO_DENSE

public static final String MISC_TIMER_SPARSE_TO_DENSE

See Also:
  - Constant Field Values

### MISC_TIMER_DENSE_TO_SPARSE

public static final String MISC_TIMER_DENSE_TO_SPARSE

See Also:
  - Constant Field Values

### MISC_TIMER_ROW_TO_COLUMN_MAJOR

public static final String MISC_TIMER_ROW_TO_COLUMN_MAJOR

See Also:
  - Constant Field Values

### MISC_TIMER_COLUMN_TO_ROW_MAJOR

public static final String MISC_TIMER_COLUMN_TO_ROW_MAJOR

See Also:
  - Constant Field Values

### MISC_TIMER_OBJECT_CLONE

public static final String MISC_TIMER_OBJECT_CLONE

See Also:
  - Constant Field Values

### MISC_TIMER_CUDA_SYNC

public static final String MISC_TIMER_CUDA_SYNC

See Also:
  - Constant Field Values

### MISC_TIMER_CUDA_FREE

public static final String MISC_TIMER_CUDA_FREE

See Also:
  - Constant Field Values

### MISC_TIMER_ALLOCATE

public static final String MISC_TIMER_ALLOCATE

See Also:
  - Constant Field Values

### MISC_TIMER_EVICT

public static final String MISC_TIMER_EVICT

See Also:
  - Constant Field Values

### MISC_TIMER_ALLOCATE_DENSE_OUTPUT

public static final String MISC_TIMER_ALLOCATE_DENSE_OUTPUT

See Also:
  - Constant Field Values

### MISC_TIMER_ALLOCATE_SPARSE_OUTPUT

public static final String MISC_TIMER_ALLOCATE_SPARSE_OUTPUT

See Also:
  - Constant Field Values

### MISC_TIMER_SET_ZERO

public static final String MISC_TIMER_SET_ZERO

See Also:
  - Constant Field Values

### MISC_TIMER_REUSE

public static final String MISC_TIMER_REUSE

See Also:
  - Constant Field Values

### MISC_TIMER_SPARSE_ALLOCATE_LIB

public static final String MISC_TIMER_SPARSE_ALLOCATE_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_DENSE_DOT_LIB

public static final String MISC_TIMER_DENSE_DOT_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_DENSE_VECTOR_DENSE_MATRIX_LIB

public static final String MISC_TIMER_DENSE_VECTOR_DENSE_MATRIX_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_DENSE_MATRIX_DENSE_VECTOR_LIB

public static final String MISC_TIMER_DENSE_MATRIX_DENSE_VECTOR_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_DENSE_MATRIX_DENSE_MATRIX_LIB

public static final String MISC_TIMER_DENSE_MATRIX_DENSE_MATRIX_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_SPARSE_MATRIX_DENSE_VECTOR_LIB

public static final String MISC_TIMER_SPARSE_MATRIX_DENSE_VECTOR_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_SPARSE_MATRIX_SPARSE_MATRIX_LIB

public static final String MISC_TIMER_SPARSE_MATRIX_SPARSE_MATRIX_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_SPARSE_MATRIX_DENSE_MATRIX_LIB

public static final String MISC_TIMER_SPARSE_MATRIX_DENSE_MATRIX_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_SYRK_LIB

public static final String MISC_TIMER_SYRK_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_DAXPY_LIB

public static final String MISC_TIMER_DAXPY_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_QR_BUFFER

public static final String MISC_TIMER_QR_BUFFER

See Also:
  - Constant Field Values

### MISC_TIMER_QR

public static final String MISC_TIMER_QR

See Also:
  - Constant Field Values

### MISC_TIMER_ORMQR

public static final String MISC_TIMER_ORMQR

See Also:
  - Constant Field Values

### MISC_TIMER_TRSM

public static final String MISC_TIMER_TRSM

See Also:
  - Constant Field Values

### MISC_TIMER_SPARSE_DGEAM_LIB

public static final String MISC_TIMER_SPARSE_DGEAM_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_DENSE_DGEAM_LIB

public static final String MISC_TIMER_DENSE_DGEAM_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_TRANSPOSE_LIB

public static final String MISC_TIMER_TRANSPOSE_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_MATRIX_MATRIX_CELLWISE_OP_KERNEL

public static final String MISC_TIMER_MATRIX_MATRIX_CELLWISE_OP_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_COMPARE_AND_SET_KERNEL

public static final String MISC_TIMER_COMPARE_AND_SET_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_EXP_KERNEL

public static final String MISC_TIMER_EXP_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_SQRT_KERNEL

public static final String MISC_TIMER_SQRT_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_ROUND_KERNEL

public static final String MISC_TIMER_ROUND_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_ABS_KERNEL

public static final String MISC_TIMER_ABS_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_LOG_KERNEL

public static final String MISC_TIMER_LOG_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_FLOOR_KERNEL

public static final String MISC_TIMER_FLOOR_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_CEIL_KERNEL

public static final String MISC_TIMER_CEIL_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_SIN_KERNEL

public static final String MISC_TIMER_SIN_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_COS_KERNEL

public static final String MISC_TIMER_COS_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_TAN_KERNEL

public static final String MISC_TIMER_TAN_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_SINH_KERNEL

public static final String MISC_TIMER_SINH_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_COSH_KERNEL

public static final String MISC_TIMER_COSH_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_TANH_KERNEL

public static final String MISC_TIMER_TANH_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_ASIN_KERNEL

public static final String MISC_TIMER_ASIN_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_ACOS_KERNEL

public static final String MISC_TIMER_ACOS_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_ATAN_KERNEL

public static final String MISC_TIMER_ATAN_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_SIGN_KERNEL

public static final String MISC_TIMER_SIGN_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_SIGMOID_KERNEL

public static final String MISC_TIMER_SIGMOID_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_CBIND_KERNEL

public static final String MISC_TIMER_CBIND_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_RBIND_KERNEL

public static final String MISC_TIMER_RBIND_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_DAXPY_MV_KERNEL

public static final String MISC_TIMER_DAXPY_MV_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_UPPER_TO_LOWER_TRIANGLE_KERNEL

public static final String MISC_TIMER_UPPER_TO_LOWER_TRIANGLE_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_FILL_KERNEL

public static final String MISC_TIMER_FILL_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_MATRIX_SCALAR_OP_KERNEL

public static final String MISC_TIMER_MATRIX_SCALAR_OP_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_REDUCE_ALL_KERNEL

public static final String MISC_TIMER_REDUCE_ALL_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_REDUCE_ROW_KERNEL

public static final String MISC_TIMER_REDUCE_ROW_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_REDUCE_COL_KERNEL

public static final String MISC_TIMER_REDUCE_COL_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_RIX_DENSE_OP

public static final String MISC_TIMER_RIX_DENSE_OP

See Also:
  - Constant Field Values

### MISC_TIMER_RIX_SPARSE_DENSE_OP_ROWWISE

public static final String MISC_TIMER_RIX_SPARSE_DENSE_OP_ROWWISE

See Also:
  - Constant Field Values

### MISC_TIMER_RIX_SPARSE_DENSE_OP_NNZ

public static final String MISC_TIMER_RIX_SPARSE_DENSE_OP_NNZ

See Also:
  - Constant Field Values

### MISC_TIMER_ACTIVATION_FORWARD_LIB

public static final String MISC_TIMER_ACTIVATION_FORWARD_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_CONVOLUTION_FORWARD_LIB

public static final String MISC_TIMER_CONVOLUTION_FORWARD_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_CONVOLUTION_BACKWARD_FILTER_LIB

public static final String MISC_TIMER_CONVOLUTION_BACKWARD_FILTER_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_CONVOLUTION_BACKWARD_DATA_LIB

public static final String MISC_TIMER_CONVOLUTION_BACKWARD_DATA_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_MAXPOOLING_FORWARD_LIB

public static final String MISC_TIMER_MAXPOOLING_FORWARD_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_MAXPOOLING_BACKWARD_LIB

public static final String MISC_TIMER_MAXPOOLING_BACKWARD_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_BIAS_ADD_LIB

public static final String MISC_TIMER_BIAS_ADD_LIB

See Also:
  - Constant Field Values

### MISC_TIMER_RELU_BACKWARD_KERNEL

public static final String MISC_TIMER_RELU_BACKWARD_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_RELU_KERNEL

public static final String MISC_TIMER_RELU_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_CUDNN_INIT

public static final String MISC_TIMER_CUDNN_INIT

See Also:
  - Constant Field Values

### MISC_TIMER_CUDNN_CLEANUP

public static final String MISC_TIMER_CUDNN_CLEANUP

See Also:
  - Constant Field Values

### MISC_TIMER_DENSE_IM2COL_KERNEL

public static final String MISC_TIMER_DENSE_IM2COL_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_SPARSE_IM2COL_KERNEL

public static final String MISC_TIMER_SPARSE_IM2COL_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_DENSE_REORG_KNPQ_KERNEL

public static final String MISC_TIMER_DENSE_REORG_KNPQ_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_CUMULATIVE_SCAN_KERNEL

public static final String MISC_TIMER_CUMULATIVE_SCAN_KERNEL

See Also:
  - Constant Field Values

### MISC_TIMER_CUMULATIVE_SUMPROD_KERNEL

public static final String MISC_TIMER_CUMULATIVE_SUMPROD_KERNEL

See Also:
  - Constant Field Values

## Method Details

### getType

public Instruction.IType getType()

Specified by:
  `getType` in class `Instruction`

### getGPUInstructionType

public GPUInstruction.GPUINSTRUCTION_TYPE getGPUInstructionType()

### requiresLabelUpdate

public boolean requiresLabelUpdate()

Overrides:
  `requiresLabelUpdate` in class `Instruction`

### getGraphString

public String getGraphString()

Overrides:
  `getGraphString` in class `Instruction`

### preprocessInstruction

public Instruction preprocessInstruction(ExecutionContext ec)
Description copied from class: `Instruction`
This method should be used for any setup before executing this instruction. Overwriting methods should first call the super method and subsequently do their custom setup.

Overrides:
  `preprocessInstruction` in class `Instruction`
Parameters:
  `ec` - execution context
Returns:
  instruction

### processInstruction

public abstract void processInstruction(ExecutionContext ec)
Description copied from class: `Instruction`
This method should be used to execute the instruction.

Specified by:
  `processInstruction` in class `Instruction`
Parameters:
  `ec` - execution context

### postprocessInstruction

public void postprocessInstruction(ExecutionContext ec)
Description copied from class: `Instruction`
This method should be used for any tear down after executing this instruction. Overwriting methods should first do their custom tear down and subsequently call the super method.

Overrides:
  `postprocessInstruction` in class `Instruction`
Parameters:
  `ec` - execution context

### getLineageItem

public org.apache.commons.lang3.tuple.Pair<String,LineageItem> getLineageItem(ExecutionContext ec)
Description copied from interface: `LineageTraceable`
Obtain lineage trace of an instruction with a single output.

Specified by:
  `getLineageItem` in interface `LineageTraceable`
Parameters:
  `ec` - execution context w/ live variables
Returns:
  pair of (output variable name, output lineage item)