Package org.apache.sysds.runtime.matrix.data

## Class LibMatrixCuMatMult

- java.lang.Object
- - org.apache.sysds.runtime.matrix.data.LibMatrixCUDA
  - - org.apache.sysds.runtime.matrix.data.LibMatrixCuMatMult

    public class LibMatrixCuMatMult
    extends LibMatrixCUDA

### Field Summary

### Fields inherited from class org.apache.sysds.runtime.matrix.data.LibMatrixCUDA

`cudaSupportFunctions, customKernelSuffix, sizeOfDataType`

### Constructor Summary

Constructors
`LibMatrixCuMatMult()`

### Method Summary

All Methods Static Methods Concrete Methods

`static MatrixObject`

`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);

### Methods inherited from class org.apache.sysds.runtime.matrix.data.LibMatrixCUDA

`abs, acos, asin, atan, axpy, biasAdd, biasMultiply, cbind, ceil, channelSums, computeNNZ, cos, cosh, cumulativeScan, cumulativeSumProduct, denseTranspose, deviceCopy, double2float, exp, float2double, floor, getCudaKernels, getDenseMatrixOutputForGPUInstruction, getDenseMatrixOutputForGPUInstruction, getDensePointer, getNnz, isInSparseFormat, log, matmultTSMM, matrixMatrixArithmetic, matrixMatrixRelational, matrixScalarArithmetic, matrixScalarOp, matrixScalarRelational, one, rbind, reluBackward, resetFloatingPointPrecision, round, sigmoid, sign, sin, sinh, sliceOperations, solve, sqrt, tan, tanh, toInt, transpose, unaryAggregate, zero`

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

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

### Constructor Detail

#### LibMatrixCuMatMult

    public LibMatrixCuMatMult()

### Method Detail

#### matmult

    public static MatrixObject 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);

Parameters:
  `ec` - Current `ExecutionContext` instance
  `gCtx` - a valid `GPUContext`
  `instName` - name of the invoking instruction to record`Statistics`.
  `left` - Matrix A
  `right` - Matrix B
  `outputName` - Name of the output matrix C (in code generated after LOP layer)
  `isLeftTransposed` - op for A, transposed or not
  `isRightTransposed` - op for B, tranposed or not
Returns:
  output of matrix multiply