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
    Constructor | Description
    --- | ---
    `LibMatrixCuMatMult()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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