From b376fe685cfcf6dd72d4c2325d01ee85eacad4a3 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 2 Aug 2023 18:31:44 +0200 Subject: [PATCH] Introduced cuda streams --- devel/ccsd_gpu/gpu.c | 175 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 152 insertions(+), 23 deletions(-) diff --git a/devel/ccsd_gpu/gpu.c b/devel/ccsd_gpu/gpu.c index 345d3fe..fbba44c 100644 --- a/devel/ccsd_gpu/gpu.c +++ b/devel/ccsd_gpu/gpu.c @@ -38,6 +38,8 @@ void compute_r2_space_chol_gpu(const int nO, const int nV, const int cholesky_mo cublasCreate(&handle); + cudaStream_t stream[nV]; + double* d_cc_space_v_oo_chol = data[igpu].cc_space_v_oo_chol; double* d_cc_space_v_ov_chol = data[igpu].cc_space_v_ov_chol; double* d_cc_space_v_vo_chol = data[igpu].cc_space_v_vo_chol; @@ -74,6 +76,7 @@ void compute_r2_space_chol_gpu(const int nO, const int nV, const int cholesky_mo cudaMalloc((void **)&d_t2, nO*nO*nV*nV * sizeof(double)); cublasSetMatrix(nO*nO, nV*nV, sizeof(double), t2, lda, d_t2, lda); + #pragma omp sections { @@ -99,8 +102,12 @@ void compute_r2_space_chol_gpu(const int nO, const int nV, const int cholesky_mo B = d_Y_oooo; ldb = nO*nO; C = d_A1; ldc = nO*nO; cublasDgeam(handle, CUBLAS_OP_N, CUBLAS_OP_N, nO*nO, nO*nO, &alpha, A, lda, &beta, B, ldb, C, ldc); + for (int i=0 ; i