From 3c4272700cc4a565c831d36f165a813253a1c321 Mon Sep 17 00:00:00 2001 From: Ruipeng Li Date: Mon, 21 Jun 2021 14:26:26 -0700 Subject: [PATCH] move AIR to UVM (#411) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR is a temporary fix for N(eumann)-AIR on GPUs。 --- src/parcsr_ls/par_amg_setup.c | 1 + src/parcsr_ls/par_interp.c | 12 ++++++------ src/parcsr_ls/par_lr_restr.c | 12 ++++++------ 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/parcsr_ls/par_amg_setup.c b/src/parcsr_ls/par_amg_setup.c index 8bc381b52..760ff52bd 100644 --- a/src/parcsr_ls/par_amg_setup.c +++ b/src/parcsr_ls/par_amg_setup.c @@ -2640,6 +2640,7 @@ hypre_BoomerAMGSetup( void *amg_vdata, { AP = hypre_ParCSRMatMat(A_array[level], P_array[level]); A_H = hypre_ParCSRMatMat(R_array[level], AP); + hypre_CSRMatrixReorder(hypre_ParCSRMatrixDiag(A_H)); } else { diff --git a/src/parcsr_ls/par_interp.c b/src/parcsr_ls/par_interp.c index a86823d74..bb5ccb8d6 100644 --- a/src/parcsr_ls/par_interp.c +++ b/src/parcsr_ls/par_interp.c @@ -4039,15 +4039,15 @@ hypre_BoomerAMGBuildInterpOnePnt( hypre_ParCSRMatrix *A, nnz_offd = cnt_offd; /*------------- allocate arrays */ - P_diag_i = hypre_CTAlloc(HYPRE_Int, n_fine+1,HYPRE_MEMORY_HOST); - P_diag_j = hypre_CTAlloc(HYPRE_Int, nnz_diag,HYPRE_MEMORY_HOST); - P_diag_data = hypre_CTAlloc(HYPRE_Real, nnz_diag,HYPRE_MEMORY_HOST); + P_diag_i = hypre_CTAlloc(HYPRE_Int, n_fine+1,HYPRE_MEMORY_DEVICE); + P_diag_j = hypre_CTAlloc(HYPRE_Int, nnz_diag,HYPRE_MEMORY_DEVICE); + P_diag_data = hypre_CTAlloc(HYPRE_Real, nnz_diag,HYPRE_MEMORY_DEVICE); /* not in ``if num_procs > 1'', * allocation needed even for empty CSR */ - P_offd_i = hypre_CTAlloc(HYPRE_Int, n_fine+1,HYPRE_MEMORY_HOST); - P_offd_j = hypre_CTAlloc(HYPRE_Int, nnz_offd,HYPRE_MEMORY_HOST); - P_offd_data = hypre_CTAlloc(HYPRE_Real, nnz_offd,HYPRE_MEMORY_HOST); + P_offd_i = hypre_CTAlloc(HYPRE_Int, n_fine+1,HYPRE_MEMORY_DEVICE); + P_offd_j = hypre_CTAlloc(HYPRE_Int, nnz_offd,HYPRE_MEMORY_DEVICE); + P_offd_data = hypre_CTAlloc(HYPRE_Real, nnz_offd,HYPRE_MEMORY_DEVICE); /* redundant */ P_diag_i[0] = 0; diff --git a/src/parcsr_ls/par_lr_restr.c b/src/parcsr_ls/par_lr_restr.c index 716761987..ea3a60ab5 100644 --- a/src/parcsr_ls/par_lr_restr.c +++ b/src/parcsr_ls/par_lr_restr.c @@ -1915,15 +1915,15 @@ hypre_BoomerAMGBuildRestrNeumannAIR( hypre_ParCSRMatrix *A, nnz_offd = hypre_CSRMatrixNumNonzeros(Z_offd); /*------------- allocate arrays */ - R_diag_i = hypre_CTAlloc(HYPRE_Int, n_cpts+1, HYPRE_MEMORY_HOST); - R_diag_j = hypre_CTAlloc(HYPRE_Int, nnz_diag, HYPRE_MEMORY_HOST); - R_diag_a = hypre_CTAlloc(HYPRE_Complex, nnz_diag, HYPRE_MEMORY_HOST); + R_diag_i = hypre_CTAlloc(HYPRE_Int, n_cpts+1, HYPRE_MEMORY_DEVICE); + R_diag_j = hypre_CTAlloc(HYPRE_Int, nnz_diag, HYPRE_MEMORY_DEVICE); + R_diag_a = hypre_CTAlloc(HYPRE_Complex, nnz_diag, HYPRE_MEMORY_DEVICE); /* not in ``if num_procs > 1'', * allocation needed even for empty CSR */ - R_offd_i = hypre_CTAlloc(HYPRE_Int, n_cpts+1, HYPRE_MEMORY_HOST); - R_offd_j = hypre_CTAlloc(HYPRE_Int, nnz_offd, HYPRE_MEMORY_HOST); - R_offd_a = hypre_CTAlloc(HYPRE_Complex, nnz_offd, HYPRE_MEMORY_HOST); + R_offd_i = hypre_CTAlloc(HYPRE_Int, n_cpts+1, HYPRE_MEMORY_DEVICE); + R_offd_j = hypre_CTAlloc(HYPRE_Int, nnz_offd, HYPRE_MEMORY_DEVICE); + R_offd_a = hypre_CTAlloc(HYPRE_Complex, nnz_offd, HYPRE_MEMORY_DEVICE); /* redundant */ R_diag_i[0] = 0;