17 template <
typename scalar_t>
19 CBLAS_TRANSPOSE trans_A,
20 CBLAS_TRANSPOSE trans_B,
25 const scalar_t *A_data,
27 const scalar_t *B_data,
37 CBLAS_TRANSPOSE trans_A,
38 CBLAS_TRANSPOSE trans_B,
50 cblas_sgemm(layout, trans_A, trans_B, m, n, k, alpha, A_data, lda, B_data,
51 ldb, beta, C_data, ldc);
56 CBLAS_TRANSPOSE trans_A,
57 CBLAS_TRANSPOSE trans_B,
69 cblas_dgemm(layout, trans_A, trans_B, m, n, k, alpha, A_data, lda, B_data,
70 ldb, beta, C_data, ldc);
73 #ifdef BUILD_CUDA_MODULE
74 template <
typename scalar_t>
75 inline cublasStatus_t gemm_cuda(cublasHandle_t handle,
76 cublasOperation_t transa,
77 cublasOperation_t transb,
81 const scalar_t *alpha,
82 const scalar_t *A_data,
84 const scalar_t *B_data,
90 return CUBLAS_STATUS_NOT_SUPPORTED;
93 template <
typename scalar_t>
94 inline cublasStatus_t trsm_cuda(cublasHandle_t handle,
95 cublasSideMode_t side,
96 cublasFillMode_t uplo,
97 cublasOperation_t trans,
98 cublasDiagType_t diag,
101 const scalar_t *alpha,
107 return CUBLAS_STATUS_NOT_SUPPORTED;
111 inline cublasStatus_t gemm_cuda<float>(cublasHandle_t handle,
112 cublasOperation_t transa,
113 cublasOperation_t transb,
125 return cublasSgemm(handle, transa,
128 alpha,
static_cast<const float *
>(A_data), lda,
129 static_cast<const float *
>(B_data),
131 beta,
static_cast<float *
>(C_data), ldc);
135 inline cublasStatus_t gemm_cuda<double>(cublasHandle_t handle,
136 cublasOperation_t transa,
137 cublasOperation_t transb,
142 const double *A_data,
144 const double *B_data,
149 return cublasDgemm(handle, transa,
152 alpha,
static_cast<const double *
>(A_data), lda,
153 static_cast<const double *
>(B_data),
155 beta,
static_cast<double *
>(C_data), ldc);
159 inline cublasStatus_t trsm_cuda<float>(cublasHandle_t handle,
160 cublasSideMode_t side,
161 cublasFillMode_t uplo,
162 cublasOperation_t trans,
163 cublasDiagType_t diag,
171 return cublasStrsm(handle, side, uplo, trans, diag, m, n, alpha, A, lda,
B,
176 inline cublasStatus_t trsm_cuda<double>(cublasHandle_t handle,
177 cublasSideMode_t side,
178 cublasFillMode_t uplo,
179 cublasOperation_t trans,
180 cublasDiagType_t diag,
188 return cublasDtrsm(handle, side, uplo, trans, diag, m, n, alpha, A, lda,
B,
#define LogError(...)
Definition: Logging.h:48
Eigen::Matrix3d B
Definition: PointCloudPlanarPatchDetection.cpp:506
void gemm_cpu< double >(CBLAS_LAYOUT layout, CBLAS_TRANSPOSE trans_A, CBLAS_TRANSPOSE trans_B, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT k, double alpha, const double *A_data, OPEN3D_CPU_LINALG_INT lda, const double *B_data, OPEN3D_CPU_LINALG_INT ldb, double beta, double *C_data, OPEN3D_CPU_LINALG_INT ldc)
Definition: BlasWrapper.h:55
void gemm_cpu(CBLAS_LAYOUT layout, CBLAS_TRANSPOSE trans_A, CBLAS_TRANSPOSE trans_B, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT k, scalar_t alpha, const scalar_t *A_data, OPEN3D_CPU_LINALG_INT lda, const scalar_t *B_data, OPEN3D_CPU_LINALG_INT ldb, scalar_t beta, scalar_t *C_data, OPEN3D_CPU_LINALG_INT ldc)
Definition: BlasWrapper.h:18
void gemm_cpu< float >(CBLAS_LAYOUT layout, CBLAS_TRANSPOSE trans_A, CBLAS_TRANSPOSE trans_B, OPEN3D_CPU_LINALG_INT m, OPEN3D_CPU_LINALG_INT n, OPEN3D_CPU_LINALG_INT k, float alpha, const float *A_data, OPEN3D_CPU_LINALG_INT lda, const float *B_data, OPEN3D_CPU_LINALG_INT ldb, float beta, float *C_data, OPEN3D_CPU_LINALG_INT ldc)
Definition: BlasWrapper.h:36
Definition: PinholeCameraIntrinsic.cpp:16