| 220 | |
| 221 | template <ORDERING ORDA, ORDERING ORDB> |
| 222 | void CudaMultMatMat2 (SliceMatrix<Dev<double>, ORDA> a, SliceMatrix<Dev<double>,ORDB> b, |
| 223 | SliceMatrix<Dev<double>, ORDERING::ColMajor> c, |
| 224 | double alpha, double beta) |
| 225 | { |
| 226 | static Timer t("cublasDgemm"); |
| 227 | CudaRegionTimer rt(t); |
| 228 | cublasSetStream(ngla::Get_CuBlas_Handle(), ngs_cuda_stream); |
| 229 | cublasStatus_t stat = |
| 230 | cublasDgemm(ngla::Get_CuBlas_Handle(), |
| 231 | ORDA==ORDERING::RowMajor ? CUBLAS_OP_T : CUBLAS_OP_N, |
| 232 | ORDB==ORDERING::RowMajor ? CUBLAS_OP_T : CUBLAS_OP_N, |
| 233 | c.Height(), c.Width(), a.Width(), |
| 234 | &alpha, (double*)a.Data(), a.Dist(), (double*)b.Data(), b.Dist(), |
| 235 | &beta, (double*)c.Data(), c.Dist()); |
| 236 | } |
| 237 | |
| 238 | template <ORDERING ORDA, ORDERING ORDB> |
| 239 | void CudaMultMatMat2 (SliceMatrix<Dev<double>, ORDA> a, SliceMatrix<Dev<double>,ORDB> b, |
no test coverage detected