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 class
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.Instruction
DATATYPE_PREFIX, FEDERATED_INST_PREFIX, GPU_INST_PREFIX, INSTRUCTION_DELIM, LITERAL_PREFIX, OPERAND_DELIM, SP_INST_PREFIX, VALUETYPE_PREFIX
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods 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, 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
-
-
-
-
Field Detail
-
_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 Detail
-
getType
public Instruction.IType getType()
- Specified by:
getType
in classInstruction
-
getGPUInstructionType
public GPUInstruction.GPUINSTRUCTION_TYPE getGPUInstructionType()
-
requiresLabelUpdate
public boolean requiresLabelUpdate()
- Overrides:
requiresLabelUpdate
in classInstruction
-
getGraphString
public String getGraphString()
- Overrides:
getGraphString
in classInstruction
-
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 classInstruction
- 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 classInstruction
- 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 classInstruction
- 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 interfaceLineageTraceable
- Parameters:
ec
- execution context w/ live variables- Returns:
- pair of (output variable name, output lineage item)
-
-