Uses of Class
org.apache.sysds.runtime.instructions.gpu.context.GPUContext
Packages that use GPUContext
Package
Description
-
Uses of GPUContext in org.apache.sysds.runtime.controlprogram.caching
Methods in org.apache.sysds.runtime.controlprogram.caching with parameters of type GPUContextModifier and TypeMethodDescriptionCacheableData.getGPUObject(GPUContext gCtx) voidCacheableData.removeGPUObject(GPUContext gCtx) voidCacheableData.setGPUObject(GPUContext gCtx, GPUObject gObj) -
Uses of GPUContext in org.apache.sysds.runtime.controlprogram.context
Methods in org.apache.sysds.runtime.controlprogram.context that return GPUContextModifier and TypeMethodDescriptionExecutionContext.getGPUContext(int index) Get the i-th GPUContextMethods in org.apache.sysds.runtime.controlprogram.context that return types with arguments of type GPUContextMethod parameters in org.apache.sysds.runtime.controlprogram.context with type arguments of type GPUContextModifier and TypeMethodDescriptionvoidExecutionContext.setGPUContexts(List<GPUContext> gpuContexts) Sets the list of GPUContexts -
Uses of GPUContext in org.apache.sysds.runtime.instructions.gpu.context
Methods in org.apache.sysds.runtime.instructions.gpu.context that return types with arguments of type GPUContextModifier and TypeMethodDescriptionstatic List<GPUContext>GPUContextPool.reserveAllGPUContexts()Reserves and gets an initialized list of GPUContextsMethods in org.apache.sysds.runtime.instructions.gpu.context with parameters of type GPUContextModifier and TypeMethodDescriptionstatic CSRPointerCSRPointer.allocateEmpty(GPUContext gCtx, long nnz2, long rows) static CSRPointerCSRPointer.allocateEmpty(GPUContext gCtx, long nnz2, long rows, boolean initialize) Factory method to allocate an empty CSR Sparse matrix on the GPUstatic CSRPointerCSRPointer.allocateForDgeam(GPUContext gCtx, jcuda.jcusparse.cusparseHandle handle, CSRPointer A, CSRPointer B, int m, int n) Estimates the number of non zero elements from the results of a sparse cusparseDgeam operation C = a op(A) + b op(B)static CSRPointerCSRPointer.allocateForMatrixMultiply(GPUContext gCtx, jcuda.jcusparse.cusparseHandle handle, CSRPointer A, int transA, CSRPointer B, int transB, int m, int n, int k, int dataType) Estimates the number of non-zero elements from the result of a sparse matrix multiplication C = A * B and returns theCSRPointerto C with the appropriate GPU memory.static CSRPointerGPUObject.columnMajorDenseToRowMajorSparse(GPUContext gCtx, jcuda.jcusparse.cusparseHandle cusparseHandle, jcuda.Pointer densePtr, int rows, int cols) Convenience method to convert a CSR matrix to a dense matrix on the GPU Since the allocated matrix is temporary, bookkeeping is not updated.static voidCSRPointer.copyToDevice(GPUContext gCtx, CSRPointer dest, int rows, long nnz, int[] rowPtr, int[] colInd, double[] values) Static method to copy a CSR sparse matrix from Host to Devicestatic jcuda.PointerGPUObject.transpose(GPUContext gCtx, jcuda.Pointer densePtr, int m, int n, int lda, int ldc) Transposes a dense matrix on the GPU by calling the cublasDgeam operationstatic CSRPointerCSRPointer.transposeCSR(GPUContext gCtx, jcuda.jcusparse.cusparseHandle handle, CSRPointer src, int srcRows, int srcCols, int dataType) Physically transpose a CSR matrix (srcRows × srcCols ➜ srcCols × srcRows).Constructors in org.apache.sysds.runtime.instructions.gpu.context with parameters of type GPUContextModifierConstructorDescriptionGPUMemoryManager(GPUContext gpuCtx) GPUObject(GPUContext gCtx, MatrixObject mat, jcuda.Pointer ptr) GPUObject(GPUContext gCtx, GPUObject that, MatrixObject mat) -
Uses of GPUContext in org.apache.sysds.runtime.lineage
Methods in org.apache.sysds.runtime.lineage with parameters of type GPUContextModifier and TypeMethodDescriptionstatic voidLineageGPUCacheEviction.setGPUContext(GPUContext gpuCtx) -
Uses of GPUContext in org.apache.sysds.runtime.matrix.data
Methods in org.apache.sysds.runtime.matrix.data with parameters of type GPUContextModifier and TypeMethodDescriptionstatic voidLibMatrixCUDA.abs(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "abs" operation on a matrix on the GPUstatic voidLibMatrixCUDA.acos(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "acos" operation on a matrix on the GPUstatic voidLibMatrixCUDA.asin(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "asin" operation on a matrix on the GPUstatic voidLibMatrixCUDA.atan(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "atan" operation on a matrix on the GPUstatic voidLibMatrixCUDA.axpy(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName, double constant) Performs daxpy operationstatic voidLibMatrixCuDNN.batchNormalizationBackward(GPUContext gCtx, String instName, MatrixObject image, MatrixObject dout, MatrixObject scale, MatrixObject dX, MatrixObject dScale, MatrixObject dBias, double epsilon, MatrixObject resultSaveMean, MatrixObject resultSaveInvVariance) This method computes the backpropagation errors for image, scale and bias of batch normalization layerstatic voidLibMatrixCuDNN.batchNormalizationForwardInference(GPUContext gCtx, String instName, MatrixObject image, MatrixObject scale, MatrixObject bias, MatrixObject runningMean, MatrixObject runningVar, MatrixObject ret, double epsilon) Performs the forward BatchNormalization layer computation for inferencestatic voidLibMatrixCuDNN.batchNormalizationForwardTraining(GPUContext gCtx, String instName, MatrixObject image, MatrixObject scale, MatrixObject bias, MatrixObject runningMean, MatrixObject runningVar, MatrixObject ret, MatrixObject retRunningMean, MatrixObject retRunningVar, double epsilon, double exponentialAverageFactor, MatrixObject resultSaveMean, MatrixObject resultSaveInvVariance) Performs the forward BatchNormalization layer computation for trainingstatic voidLibMatrixCUDA.biasAdd(GPUContext gCtx, String instName, MatrixObject input, MatrixObject bias, MatrixObject outputBlock) Performs the operation corresponding to the DML script: ones = matrix(1, rows=1, cols=Hout*Wout) output = input + matrix(bias %*% ones, rows=1, cols=F*Hout*Wout) This operation is often followed by conv2d and hence we have introduced bias_add(input, bias) built-in functionstatic voidLibMatrixCUDA.biasMultiply(GPUContext gCtx, String instName, MatrixObject input, MatrixObject bias, MatrixObject outputBlock) Performs the operation corresponding to the DML script: ones = matrix(1, rows=1, cols=Hout*Wout) output = input * matrix(bias %*% ones, rows=1, cols=F*Hout*Wout) This operation is often followed by conv2d and hence we have introduced bias_add(input, bias) built-in functionstatic voidLibMatrixCUDA.cbind(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName) static voidLibMatrixCUDA.ceil(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "ceil" operation on a matrix on the GPUstatic voidLibMatrixCUDA.channelSums(GPUContext gCtx, String instName, MatrixObject input, MatrixObject outputBlock, long C, long HW) Perform channel_sums operations: out = rowSums(matrix(colSums(A), rows=C, cols=HW))static intLibMatrixCUDA.computeNNZ(GPUContext gCtx, jcuda.Pointer densePtr, int length) Utility to compute number of non-zeroes on the GPUstatic voidLibMatrixCuDNN.conv2d(GPUContext gCtx, String instName, MatrixObject image, MatrixObject filter, MatrixObject outputBlock, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, double intermediateMemoryBudget) Performs a 2D convolutionstatic voidLibMatrixCuDNN.conv2dBackwardData(GPUContext gCtx, String instName, MatrixObject filter, MatrixObject dout, MatrixObject output, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, double intermediateMemoryBudget) This method computes the backpropogation errors for previous layer of convolution operationstatic voidLibMatrixCuDNN.conv2dBackwardFilter(GPUContext gCtx, String instName, MatrixObject image, MatrixObject dout, MatrixObject outputBlock, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, double intermediateMemoryBudget) This method computes the backpropogation errors for filter of convolution operationstatic voidLibMatrixCuDNN.conv2dBiasAdd(GPUContext gCtx, String instName, MatrixObject image, MatrixObject bias, MatrixObject filter, MatrixObject output, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, double intermediateMemoryBudget) Does a 2D convolution followed by a bias_addstatic voidLibMatrixCUDA.cos(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "cos" operation on a matrix on the GPUstatic voidLibMatrixCUDA.cosh(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "cosh" operation on a matrix on the GPULibMatrixCuDNNConvolutionAlgorithm.cudnnGetConvolutionBackwardDataAlgorithm(GPUContext gCtx, String instName, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, long workspaceLimit) Factory method to get the algorithm wrapper for convolution backward dataLibMatrixCuDNNConvolutionAlgorithm.cudnnGetConvolutionBackwardFilterAlgorithm(GPUContext gCtx, String instName, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, long workspaceLimit) Factory method to get the algorithm wrapper for convolution backward filterLibMatrixCuDNNConvolutionAlgorithm.cudnnGetConvolutionForwardAlgorithm(GPUContext gCtx, String instName, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, long workspaceLimit) Factory method to get the algorithm wrapper for convolution forwardLibMatrixCuDNNPoolingDescriptors.cudnnPoolingBackwardDescriptors(GPUContext gCtx, String instName, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, LibMatrixDNN.PoolingType poolingType) Get descriptors for maxpooling backward operationLibMatrixCuDNNPoolingDescriptors.cudnnPoolingDescriptors(GPUContext gCtx, String instName, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, LibMatrixDNN.PoolingType poolingType) Get descriptors for maxpooling operationstatic voidLibMatrixCUDA.cumulativeScan(ExecutionContext ec, GPUContext gCtx, String instName, String kernelFunction, MatrixObject in, String outputName) Cumulative scanstatic voidLibMatrixCUDA.cumulativeSumProduct(ExecutionContext ec, GPUContext gCtx, String instName, String kernelFunction, MatrixObject in, String outputName) Cumulative sum-product kernel cascade invokationstatic voidLibMatrixCUDA.denseTranspose(ExecutionContext ec, GPUContext gCtx, String instName, jcuda.Pointer A, jcuda.Pointer C, long numRowsA, long numColsA) Computes C = t(A)voidCudaSupportFunctions.deviceToHost(GPUContext gCtx, jcuda.Pointer src, double[] dest, String instName, boolean isEviction) voidDoublePrecisionCudaSupportFunctions.deviceToHost(GPUContext gCtx, jcuda.Pointer src, double[] dest, String instName, boolean isEviction) voidSinglePrecisionCudaSupportFunctions.deviceToHost(GPUContext gCtx, jcuda.Pointer src, double[] dest, String instName, boolean isEviction) static jcuda.PointerLibMatrixCUDA.double2float(GPUContext gCtx, jcuda.Pointer A, jcuda.Pointer ret, int numElems) static voidLibMatrixCUDA.exp(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "exp" operation on a matrix on the GPUstatic jcuda.PointerLibMatrixCUDA.float2double(GPUContext gCtx, jcuda.Pointer A, jcuda.Pointer ret, int numElems) static voidLibMatrixCUDA.floor(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "floor" operation on a matrix on the GPUstatic JCudaKernelsLibMatrixCUDA.getCudaKernels(GPUContext gCtx) static jcuda.PointerLibMatrixCUDA.getDensePointer(GPUContext gCtx, MatrixObject input, String instName) Convenience method to get jcudaDenseMatrixPtr.static jcuda.PointerLibMatrixCuDNN.getDensePointerForCuDNN(GPUContext gCtx, MatrixObject image, String instName, int numRows, int numCols) Convenience method to get jcudaDenseMatrixPtr.static longLibMatrixCUDA.getNnz(GPUContext gCtx, String instName, MatrixObject mo, boolean recomputeDenseNNZ) Note: if the matrix is in dense format, it explicitly re-computes the number of nonzeros.voidCudaSupportFunctions.hostToDevice(GPUContext gCtx, double[] src, jcuda.Pointer dest, String instName) voidDoublePrecisionCudaSupportFunctions.hostToDevice(GPUContext gCtx, double[] src, jcuda.Pointer dest, String instName) voidSinglePrecisionCudaSupportFunctions.hostToDevice(GPUContext gCtx, double[] src, jcuda.Pointer dest, String instName) static booleanLibMatrixCUDA.isInSparseFormat(GPUContext gCtx, MatrixObject mo) static voidLibMatrixCUDA.log(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "log" operation on a matrix on the GPUstatic voidLibMatrixCuDNN.lstm(ExecutionContext ec, GPUContext gCtx, String instName, jcuda.Pointer X, jcuda.Pointer wPointer, jcuda.Pointer out0, jcuda.Pointer c0, boolean return_sequences, String outputName, String cyName, int N, int M, int D, int T) Computes the forward pass for an LSTM layer with M neurons.static voidLibMatrixCuDNN.lstmBackward(ExecutionContext ec, GPUContext gCtx, String instName, jcuda.Pointer x, jcuda.Pointer hx, jcuda.Pointer cx, jcuda.Pointer wPointer, String doutName, String dcyName, String dxName, String dwName, String dbName, String dhxName, String dcxName, boolean return_sequences, int N, int M, int D, int T) static MatrixObjectLibMatrixCuMatMult.matmult(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject left, MatrixObject right, String outputName, boolean isLeftTransposed, boolean isRightTransposed) Matrix multiply on GPU Examines sparsity and shapes and routes call to appropriate method from cuBLAS or cuSparse C = op(A) x op(B) The user is expected to call ec.releaseMatrixOutputForGPUInstruction(outputName);static voidLibMatrixCUDA.matmultTSMM(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject left, String outputName, boolean isLeftTransposed) Performs tsmm, A %*% A' or A' %*% A, on GPU by exploiting cublasDsyrk(...)static voidLibMatrixCUDA.matrixMatrixArithmetic(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName, boolean isLeftTransposed, boolean isRightTransposed, BinaryOperator op) Performs elementwise arithmetic operation specified by op of two input matrices in1 and in2static voidLibMatrixCUDA.matrixMatrixRelational(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName, BinaryOperator op) Performs elementwise operation relational specified by op of two input matrices in1 and in2static voidLibMatrixCUDA.matrixScalarArithmetic(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName, boolean isInputTransposed, ScalarOperator op) Entry point to perform elementwise matrix-scalar arithmetic operation specified by opstatic voidLibMatrixCUDA.matrixScalarOp(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName, boolean isInputTransposed, ScalarOperator op) Utility to do matrix-scalar operation kernelstatic voidLibMatrixCUDA.matrixScalarRelational(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName, ScalarOperator op) Entry point to perform elementwise matrix-scalar relational operation specified by opstatic voidLibMatrixCuDNN.pooling(GPUContext gCtx, String instName, MatrixObject image, MatrixObject outputBlock, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, LibMatrixDNN.PoolingType poolingType, double intermediateMemoryBudget) performs maxpooling on GPU by exploiting cudnnPoolingForward(...)static voidLibMatrixCuDNN.poolingBackward(GPUContext gCtx, String instName, MatrixObject image, MatrixObject dout, MatrixObject maxpoolOutput, MatrixObject outputBlock, int N, int C, int H, int W, int K, int R, int S, int pad_h, int pad_w, int stride_h, int stride_w, int P, int Q, LibMatrixDNN.PoolingType poolingType, double intermediateMemoryBudget) Performs maxpoolingBackward on GPU by exploiting cudnnPoolingBackward(...) This method computes the backpropogation errors for previous layer of maxpooling operationstatic voidLibMatrixCUDA.rbind(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName) static voidLibMatrixCuDNN.relu(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName) Performs the relu operation on the GPU.static voidLibMatrixCUDA.reluBackward(GPUContext gCtx, String instName, MatrixObject input, MatrixObject dout, MatrixObject outputBlock) This method computes the backpropagation errors for previous layer of relu operationstatic voidLibMatrixCUDA.round(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "round" operation on a matrix on the GPUstatic voidLibMatrixCUDA.sigmoid(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "sigmoid" operation on a matrix on the GPUstatic voidLibMatrixCUDA.sign(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "sign" operation on a matrix on the GPUstatic voidLibMatrixCUDA.sin(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "sin" operation on a matrix on the GPUstatic voidLibMatrixCUDA.sinh(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "sinh" operation on a matrix on the GPUstatic voidLibMatrixCUDA.sliceOperations(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, IndexRange ixrange, String outputName) Method to perform rightIndex operation for a given lower and upper bounds in row and column dimensions.static voidLibMatrixCuDNN.softmax(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "softmax" operation on a matrix on the GPUstatic voidLibMatrixCUDA.solve(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName) Implements the "solve" function for systemds Ax = B (A is of size m*n, B is of size m*1, x is of size n*1)static voidLibMatrixCUDA.sqrt(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "sqrt" operation on a matrix on the GPUstatic voidLibMatrixCUDA.tan(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "tan" operation on a matrix on the GPUstatic voidLibMatrixCUDA.tanh(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName) Performs an "tanh" operation on a matrix on the GPUstatic voidLibMatrixCUDA.transpose(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName) Transposes the input matrix using cublasDgeamstatic voidLibMatrixCUDA.unaryAggregate(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String output, AggregateUnaryOperator op) Entry point to perform Unary aggregate operations on the GPU.Constructors in org.apache.sysds.runtime.matrix.data with parameters of type GPUContextModifierConstructorDescriptionLibMatrixCuDNNInputRowFetcher(GPUContext gCtx, String instName, MatrixObject image) Initialize the input fetcherLibMatrixCuDNNRnnAlgorithm(ExecutionContext ec, GPUContext gCtx, String instName, String rnnMode, int N, int T, int M, int D, boolean isTraining, jcuda.Pointer w)