| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| #if !defined(CUSOLVERMG_H_) |
| #define CUSOLVERMG_H_ |
|
|
| #include <stdint.h> |
| #include "cusolverDn.h" |
|
|
| #if defined(__cplusplus) |
| extern "C" { |
| #endif |
|
|
| struct cusolverMgContext; |
| typedef struct cusolverMgContext *cusolverMgHandle_t; |
|
|
| |
| |
| |
| |
| typedef enum { |
|
|
| CUDALIBMG_GRID_MAPPING_ROW_MAJOR = 1, |
| CUDALIBMG_GRID_MAPPING_COL_MAJOR = 0 |
|
|
| } cusolverMgGridMapping_t; |
|
|
| |
| typedef void *cudaLibMgGrid_t; |
| |
| typedef void *cudaLibMgMatrixDesc_t; |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgCreate(cusolverMgHandle_t *handle); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgDestroy(cusolverMgHandle_t handle); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgDeviceSelect( |
| cusolverMgHandle_t handle, |
| int nbDevices, |
| int deviceId[]); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| cusolverStatus_t CUSOLVERAPI cusolverMgCreateDeviceGrid( |
| cudaLibMgGrid_t * grid, |
| int32_t numRowDevices, |
| int32_t numColDevices, |
| const int32_t deviceId[], |
| cusolverMgGridMapping_t mapping); |
|
|
| |
| |
| |
| |
| |
| cusolverStatus_t CUSOLVERAPI cusolverMgDestroyGrid(cudaLibMgGrid_t grid); |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| cusolverStatus_t CUSOLVERAPI cusolverMgCreateMatrixDesc( |
| cudaLibMgMatrixDesc_t *desc, |
| int64_t numRows, |
| int64_t numCols, |
| int64_t rowBlockSize, |
| int64_t colBlockSize, |
| cudaDataType dataType, |
| const cudaLibMgGrid_t grid); |
|
|
| |
| |
| |
| |
| |
| cusolverStatus_t CUSOLVERAPI |
| cusolverMgDestroyMatrixDesc(cudaLibMgMatrixDesc_t desc); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgSyevd_bufferSize( |
| cusolverMgHandle_t handle, |
| cusolverEigMode_t jobz, |
| cublasFillMode_t uplo, |
| int N, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| void * W, |
| cudaDataType dataTypeW, |
| cudaDataType computeType, |
| int64_t * lwork); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgSyevd( |
| cusolverMgHandle_t handle, |
| cusolverEigMode_t jobz, |
| cublasFillMode_t uplo, |
| int N, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| void * W, |
| cudaDataType dataTypeW, |
| cudaDataType computeType, |
| void * array_d_work[], |
| int64_t lwork, |
| int * info); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgGetrf_bufferSize( |
| cusolverMgHandle_t handle, |
| int M, |
| int N, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| int * array_d_IPIV[], |
| cudaDataType computeType, |
| int64_t * lwork); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgGetrf( |
| cusolverMgHandle_t handle, |
| int M, |
| int N, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| int * array_d_IPIV[], |
| cudaDataType computeType, |
| void * array_d_work[], |
| int64_t lwork, |
| int * info); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgGetrs_bufferSize( |
| cusolverMgHandle_t handle, |
| cublasOperation_t TRANS, |
| int N, |
| int NRHS, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| int * array_d_IPIV[], |
| void * array_d_B[], |
| int IB, |
| int JB, |
| cudaLibMgMatrixDesc_t descrB, |
| cudaDataType computeType, |
| int64_t * lwork); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgGetrs( |
| cusolverMgHandle_t handle, |
| cublasOperation_t TRANS, |
| int N, |
| int NRHS, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| int * array_d_IPIV[], |
| void * array_d_B[], |
| int IB, |
| int JB, |
| cudaLibMgMatrixDesc_t descrB, |
| cudaDataType computeType, |
| void * array_d_work[], |
| int64_t lwork, |
| int * info); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgPotrf_bufferSize( |
| cusolverMgHandle_t handle, |
| cublasFillMode_t uplo, |
| int N, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| cudaDataType computeType, |
| int64_t * lwork); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgPotrf( |
| cusolverMgHandle_t handle, |
| cublasFillMode_t uplo, |
| int N, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| cudaDataType computeType, |
| void * array_d_work[], |
| int64_t lwork, |
| int * h_info); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgPotrs_bufferSize( |
| cusolverMgHandle_t handle, |
| cublasFillMode_t uplo, |
| int n, |
| int nrhs, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| void * array_d_B[], |
| int IB, |
| int JB, |
| cudaLibMgMatrixDesc_t descrB, |
| cudaDataType computeType, |
| int64_t * lwork); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgPotrs( |
| cusolverMgHandle_t handle, |
| cublasFillMode_t uplo, |
| int n, |
| int nrhs, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| void * array_d_B[], |
| int IB, |
| int JB, |
| cudaLibMgMatrixDesc_t descrB, |
| cudaDataType computeType, |
| void * array_d_work[], |
| int64_t lwork, |
| int * h_info); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgPotri_bufferSize( |
| cusolverMgHandle_t handle, |
| cublasFillMode_t uplo, |
| int N, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| cudaDataType computeType, |
| int64_t * lwork); |
|
|
| cusolverStatus_t CUSOLVERAPI cusolverMgPotri( |
| cusolverMgHandle_t handle, |
| cublasFillMode_t uplo, |
| int N, |
| void * array_d_A[], |
| int IA, |
| int JA, |
| cudaLibMgMatrixDesc_t descrA, |
| cudaDataType computeType, |
| void * array_d_work[], |
| int64_t lwork, |
| int * h_info); |
|
|
| #if defined(__cplusplus) |
| } |
| #endif |
|
|
| #endif |
|
|