public interface CudaSupportFunctions
template < typename T >
__device__ void matrix_atan(T *A, T *C, unsigned int size) {
int index = blockIdx.x * blockDim.x + threadIdx.x;
if (index < size){
C[index] = atan(A[index]);
}
}
extern "C" __global__ void matrix_atand(double *A, double *C, unsigned int size) {
matrix_atan(A, C, size);
}
extern "C" __global__ void matrix_atanf(float *A, float *C, unsigned int size) {
matrix_atan(A, C, size);
}
2. The CUDA library calls (such as CuBLAS, CuSPARSE, etc) go through this interface.
The naming and parameters of the methods in this class are consistent with that of CUDA library to simplify development.
3. During SystemDS initialization, the appropriate class implementing CudaKernels interface is set based on the configuration property sysds.dataType.Modifier and Type | Field and Description |
---|---|
static boolean |
PERFORM_CONVERSION_ON_DEVICE |
Modifier and Type | Method and Description |
---|---|
int |
cublasaxpy(jcuda.jcublas.cublasHandle handle,
int n,
jcuda.Pointer alpha,
jcuda.Pointer x,
int incx,
jcuda.Pointer y,
int incy) |
int |
cublasdot(jcuda.jcublas.cublasHandle handle,
int n,
jcuda.Pointer x,
int incx,
jcuda.Pointer y,
int incy,
jcuda.Pointer result) |
int |
cublasgeam(jcuda.jcublas.cublasHandle handle,
int transa,
int transb,
int m,
int n,
jcuda.Pointer alpha,
jcuda.Pointer A,
int lda,
jcuda.Pointer beta,
jcuda.Pointer B,
int ldb,
jcuda.Pointer C,
int ldc) |
int |
cublasgemm(jcuda.jcublas.cublasHandle handle,
int transa,
int transb,
int m,
int n,
int k,
jcuda.Pointer alpha,
jcuda.Pointer A,
int lda,
jcuda.Pointer B,
int ldb,
jcuda.Pointer beta,
jcuda.Pointer C,
int ldc) |
int |
cublasgemv(jcuda.jcublas.cublasHandle handle,
int trans,
int m,
int n,
jcuda.Pointer alpha,
jcuda.Pointer A,
int lda,
jcuda.Pointer x,
int incx,
jcuda.Pointer beta,
jcuda.Pointer y,
int incy) |
int |
cublassyrk(jcuda.jcublas.cublasHandle handle,
int uplo,
int trans,
int n,
int k,
jcuda.Pointer alpha,
jcuda.Pointer A,
int lda,
jcuda.Pointer beta,
jcuda.Pointer C,
int ldc) |
int |
cublastrsm(jcuda.jcublas.cublasHandle handle,
int side,
int uplo,
int trans,
int diag,
int m,
int n,
jcuda.Pointer alpha,
jcuda.Pointer A,
int lda,
jcuda.Pointer B,
int ldb) |
int |
cusolverDngeqrf_bufferSize(jcuda.jcusolver.cusolverDnHandle handle,
int m,
int n,
jcuda.Pointer A,
int lda,
int[] Lwork) |
int |
cusolverDngeqrf(jcuda.jcusolver.cusolverDnHandle handle,
int m,
int n,
jcuda.Pointer A,
int lda,
jcuda.Pointer TAU,
jcuda.Pointer Workspace,
int Lwork,
jcuda.Pointer devInfo) |
int |
cusolverDnormqr(jcuda.jcusolver.cusolverDnHandle handle,
int side,
int trans,
int m,
int n,
int k,
jcuda.Pointer A,
int lda,
jcuda.Pointer tau,
jcuda.Pointer C,
int ldc,
jcuda.Pointer work,
int lwork,
jcuda.Pointer devInfo) |
int |
cusparsecsr2csc(jcuda.jcusparse.cusparseHandle handle,
int m,
int n,
int nnz,
jcuda.Pointer csrVal,
jcuda.Pointer csrRowPtr,
jcuda.Pointer csrColInd,
jcuda.Pointer cscVal,
jcuda.Pointer cscRowInd,
jcuda.Pointer cscColPtr,
int copyValues,
int idxBase) |
int |
cusparsecsr2dense(jcuda.jcusparse.cusparseHandle handle,
int m,
int n,
jcuda.jcusparse.cusparseMatDescr descrA,
jcuda.Pointer csrValA,
jcuda.Pointer csrRowPtrA,
jcuda.Pointer csrColIndA,
jcuda.Pointer A,
int lda) |
int |
cusparsecsrgeam(jcuda.jcusparse.cusparseHandle handle,
int m,
int n,
jcuda.Pointer alpha,
jcuda.jcusparse.cusparseMatDescr descrA,
int nnzA,
jcuda.Pointer csrValA,
jcuda.Pointer csrRowPtrA,
jcuda.Pointer csrColIndA,
jcuda.Pointer beta,
jcuda.jcusparse.cusparseMatDescr descrB,
int nnzB,
jcuda.Pointer csrValB,
jcuda.Pointer csrRowPtrB,
jcuda.Pointer csrColIndB,
jcuda.jcusparse.cusparseMatDescr descrC,
jcuda.Pointer csrValC,
jcuda.Pointer csrRowPtrC,
jcuda.Pointer csrColIndC) |
int |
cusparsecsrgemm(jcuda.jcusparse.cusparseHandle handle,
int transA,
int transB,
int m,
int n,
int k,
jcuda.jcusparse.cusparseMatDescr descrA,
int nnzA,
jcuda.Pointer csrValA,
jcuda.Pointer csrRowPtrA,
jcuda.Pointer csrColIndA,
jcuda.jcusparse.cusparseMatDescr descrB,
int nnzB,
jcuda.Pointer csrValB,
jcuda.Pointer csrRowPtrB,
jcuda.Pointer csrColIndB,
jcuda.jcusparse.cusparseMatDescr descrC,
jcuda.Pointer csrValC,
jcuda.Pointer csrRowPtrC,
jcuda.Pointer csrColIndC) |
int |
cusparsecsrmm2(jcuda.jcusparse.cusparseHandle handle,
int transa,
int transb,
int m,
int n,
int k,
int nnz,
jcuda.Pointer alpha,
jcuda.jcusparse.cusparseMatDescr descrA,
jcuda.Pointer csrValA,
jcuda.Pointer csrRowPtrA,
jcuda.Pointer csrColIndA,
jcuda.Pointer B,
int ldb,
jcuda.Pointer beta,
jcuda.Pointer C,
int ldc) |
int |
cusparsecsrmv(jcuda.jcusparse.cusparseHandle handle,
int transA,
int m,
int n,
int nnz,
jcuda.Pointer alpha,
jcuda.jcusparse.cusparseMatDescr descrA,
jcuda.Pointer csrValA,
jcuda.Pointer csrRowPtrA,
jcuda.Pointer csrColIndA,
jcuda.Pointer x,
jcuda.Pointer beta,
jcuda.Pointer y) |
int |
cusparsedense2csr(jcuda.jcusparse.cusparseHandle handle,
int m,
int n,
jcuda.jcusparse.cusparseMatDescr descrA,
jcuda.Pointer A,
int lda,
jcuda.Pointer nnzPerRow,
jcuda.Pointer csrValA,
jcuda.Pointer csrRowPtrA,
jcuda.Pointer csrColIndA) |
int |
cusparsennz(jcuda.jcusparse.cusparseHandle handle,
int dirA,
int m,
int n,
jcuda.jcusparse.cusparseMatDescr descrA,
jcuda.Pointer A,
int lda,
jcuda.Pointer nnzPerRowCol,
jcuda.Pointer nnzTotalDevHostPtr) |
void |
deviceToHost(GPUContext gCtx,
jcuda.Pointer src,
double[] dest,
String instName,
boolean isEviction) |
void |
hostToDevice(GPUContext gCtx,
double[] src,
jcuda.Pointer dest,
String instName) |
static final boolean PERFORM_CONVERSION_ON_DEVICE
int cusparsecsrgemm(jcuda.jcusparse.cusparseHandle handle, int transA, int transB, int m, int n, int k, jcuda.jcusparse.cusparseMatDescr descrA, int nnzA, jcuda.Pointer csrValA, jcuda.Pointer csrRowPtrA, jcuda.Pointer csrColIndA, jcuda.jcusparse.cusparseMatDescr descrB, int nnzB, jcuda.Pointer csrValB, jcuda.Pointer csrRowPtrB, jcuda.Pointer csrColIndB, jcuda.jcusparse.cusparseMatDescr descrC, jcuda.Pointer csrValC, jcuda.Pointer csrRowPtrC, jcuda.Pointer csrColIndC)
int cublasgeam(jcuda.jcublas.cublasHandle handle, int transa, int transb, int m, int n, jcuda.Pointer alpha, jcuda.Pointer A, int lda, jcuda.Pointer beta, jcuda.Pointer B, int ldb, jcuda.Pointer C, int ldc)
int cusparsecsrmv(jcuda.jcusparse.cusparseHandle handle, int transA, int m, int n, int nnz, jcuda.Pointer alpha, jcuda.jcusparse.cusparseMatDescr descrA, jcuda.Pointer csrValA, jcuda.Pointer csrRowPtrA, jcuda.Pointer csrColIndA, jcuda.Pointer x, jcuda.Pointer beta, jcuda.Pointer y)
int cusparsecsrmm2(jcuda.jcusparse.cusparseHandle handle, int transa, int transb, int m, int n, int k, int nnz, jcuda.Pointer alpha, jcuda.jcusparse.cusparseMatDescr descrA, jcuda.Pointer csrValA, jcuda.Pointer csrRowPtrA, jcuda.Pointer csrColIndA, jcuda.Pointer B, int ldb, jcuda.Pointer beta, jcuda.Pointer C, int ldc)
int cublasdot(jcuda.jcublas.cublasHandle handle, int n, jcuda.Pointer x, int incx, jcuda.Pointer y, int incy, jcuda.Pointer result)
int cublasgemv(jcuda.jcublas.cublasHandle handle, int trans, int m, int n, jcuda.Pointer alpha, jcuda.Pointer A, int lda, jcuda.Pointer x, int incx, jcuda.Pointer beta, jcuda.Pointer y, int incy)
int cublasgemm(jcuda.jcublas.cublasHandle handle, int transa, int transb, int m, int n, int k, jcuda.Pointer alpha, jcuda.Pointer A, int lda, jcuda.Pointer B, int ldb, jcuda.Pointer beta, jcuda.Pointer C, int ldc)
int cusparsecsr2csc(jcuda.jcusparse.cusparseHandle handle, int m, int n, int nnz, jcuda.Pointer csrVal, jcuda.Pointer csrRowPtr, jcuda.Pointer csrColInd, jcuda.Pointer cscVal, jcuda.Pointer cscRowInd, jcuda.Pointer cscColPtr, int copyValues, int idxBase)
int cublassyrk(jcuda.jcublas.cublasHandle handle, int uplo, int trans, int n, int k, jcuda.Pointer alpha, jcuda.Pointer A, int lda, jcuda.Pointer beta, jcuda.Pointer C, int ldc)
int cublasaxpy(jcuda.jcublas.cublasHandle handle, int n, jcuda.Pointer alpha, jcuda.Pointer x, int incx, jcuda.Pointer y, int incy)
int cublastrsm(jcuda.jcublas.cublasHandle handle, int side, int uplo, int trans, int diag, int m, int n, jcuda.Pointer alpha, jcuda.Pointer A, int lda, jcuda.Pointer B, int ldb)
int cusolverDngeqrf_bufferSize(jcuda.jcusolver.cusolverDnHandle handle, int m, int n, jcuda.Pointer A, int lda, int[] Lwork)
int cusolverDngeqrf(jcuda.jcusolver.cusolverDnHandle handle, int m, int n, jcuda.Pointer A, int lda, jcuda.Pointer TAU, jcuda.Pointer Workspace, int Lwork, jcuda.Pointer devInfo)
int cusolverDnormqr(jcuda.jcusolver.cusolverDnHandle handle, int side, int trans, int m, int n, int k, jcuda.Pointer A, int lda, jcuda.Pointer tau, jcuda.Pointer C, int ldc, jcuda.Pointer work, int lwork, jcuda.Pointer devInfo)
int cusparsecsrgeam(jcuda.jcusparse.cusparseHandle handle, int m, int n, jcuda.Pointer alpha, jcuda.jcusparse.cusparseMatDescr descrA, int nnzA, jcuda.Pointer csrValA, jcuda.Pointer csrRowPtrA, jcuda.Pointer csrColIndA, jcuda.Pointer beta, jcuda.jcusparse.cusparseMatDescr descrB, int nnzB, jcuda.Pointer csrValB, jcuda.Pointer csrRowPtrB, jcuda.Pointer csrColIndB, jcuda.jcusparse.cusparseMatDescr descrC, jcuda.Pointer csrValC, jcuda.Pointer csrRowPtrC, jcuda.Pointer csrColIndC)
int cusparsecsr2dense(jcuda.jcusparse.cusparseHandle handle, int m, int n, jcuda.jcusparse.cusparseMatDescr descrA, jcuda.Pointer csrValA, jcuda.Pointer csrRowPtrA, jcuda.Pointer csrColIndA, jcuda.Pointer A, int lda)
int cusparsedense2csr(jcuda.jcusparse.cusparseHandle handle, int m, int n, jcuda.jcusparse.cusparseMatDescr descrA, jcuda.Pointer A, int lda, jcuda.Pointer nnzPerRow, jcuda.Pointer csrValA, jcuda.Pointer csrRowPtrA, jcuda.Pointer csrColIndA)
int cusparsennz(jcuda.jcusparse.cusparseHandle handle, int dirA, int m, int n, jcuda.jcusparse.cusparseMatDescr descrA, jcuda.Pointer A, int lda, jcuda.Pointer nnzPerRowCol, jcuda.Pointer nnzTotalDevHostPtr)
void deviceToHost(GPUContext gCtx, jcuda.Pointer src, double[] dest, String instName, boolean isEviction)
void hostToDevice(GPUContext gCtx, double[] src, jcuda.Pointer dest, String instName)
Copyright © 2020 The Apache Software Foundation. All rights reserved.