bug fix matvecT

This commit is contained in:
Ruipeng Li 2022-06-07 15:28:11 -07:00
parent 3f39f5d4fa
commit 67c545fce0
4 changed files with 10 additions and 10 deletions

View File

@ -961,7 +961,7 @@ HYPRE_Int hypre_ParCSRMatrixDropSmallEntriesHost( hypre_ParCSRMatrix *A, HYPRE_R
HYPRE_Int hypre_ParCSRMatrixDropSmallEntriesDevice( hypre_ParCSRMatrix *A, HYPRE_Complex tol, HYPRE_Int hypre_ParCSRMatrixDropSmallEntriesDevice( hypre_ParCSRMatrix *A, HYPRE_Complex tol,
HYPRE_Int type); HYPRE_Int type);
HYPRE_Int hypre_ParCSRCommPkgCreateMatrixE( hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int local_nrows ); HYPRE_Int hypre_ParCSRCommPkgCreateMatrixE( hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int local_ncols );
#ifdef HYPRE_USING_PERSISTENT_COMM #ifdef HYPRE_USING_PERSISTENT_COMM
hypre_ParCSRPersistentCommHandle* hypre_ParCSRPersistentCommHandleCreate(HYPRE_Int job, hypre_ParCSRPersistentCommHandle* hypre_ParCSRPersistentCommHandleCreate(HYPRE_Int job,
@ -1074,7 +1074,7 @@ HYPRE_Int hypre_ParCSRMatrixMatvec ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A,
HYPRE_Complex beta, hypre_ParVector *y ); HYPRE_Complex beta, hypre_ParVector *y );
HYPRE_Int hypre_ParCSRMatrixMatvecT ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, HYPRE_Int hypre_ParCSRMatrixMatvecT ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A,
hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *y ); hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *y );
HYPRE_Int hypre_ParCSRMatrixMatvecT_unpack( HYPRE_Int nrows, HYPRE_Complex *locl_data, HYPRE_Int hypre_ParCSRMatrixMatvecT_unpack( HYPRE_Int ncols, HYPRE_Complex *locl_data,
HYPRE_Complex *recv_data, HYPRE_Complex *recv_data,
hypre_ParCSRCommPkg *comm_pkg ); hypre_ParCSRCommPkg *comm_pkg );
HYPRE_Int hypre_ParCSRMatrixMatvec_FF ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, HYPRE_Int hypre_ParCSRMatrixMatvec_FF ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A,

View File

@ -943,13 +943,13 @@ hypre_ParcsrGetExternalRowsDeviceWait(void *vrequest)
HYPRE_Int HYPRE_Int
hypre_ParCSRCommPkgCreateMatrixE( hypre_ParCSRCommPkg *comm_pkg, hypre_ParCSRCommPkgCreateMatrixE( hypre_ParCSRCommPkg *comm_pkg,
HYPRE_Int local_nrows ) HYPRE_Int local_ncols )
{ {
HYPRE_Int num_sends = hypre_ParCSRCommPkgNumSends(comm_pkg); HYPRE_Int num_sends = hypre_ParCSRCommPkgNumSends(comm_pkg);
HYPRE_Int num_elemt = hypre_ParCSRCommPkgSendMapStart(comm_pkg, num_sends); HYPRE_Int num_elemt = hypre_ParCSRCommPkgSendMapStart(comm_pkg, num_sends);
HYPRE_Int *send_map = hypre_ParCSRCommPkgDeviceSendMapElmts(comm_pkg); HYPRE_Int *send_map = hypre_ParCSRCommPkgDeviceSendMapElmts(comm_pkg);
hypre_CSRMatrix *matrix_E = hypre_CSRMatrixCreate(local_nrows, num_elemt, num_elemt); hypre_CSRMatrix *matrix_E = hypre_CSRMatrixCreate(local_ncols, num_elemt, num_elemt);
hypre_CSRMatrixMemoryLocation(matrix_E) = HYPRE_MEMORY_DEVICE; hypre_CSRMatrixMemoryLocation(matrix_E) = HYPRE_MEMORY_DEVICE;
HYPRE_Int *e_ii = hypre_TAlloc(HYPRE_Int, num_elemt, HYPRE_MEMORY_DEVICE); HYPRE_Int *e_ii = hypre_TAlloc(HYPRE_Int, num_elemt, HYPRE_MEMORY_DEVICE);
@ -960,7 +960,7 @@ hypre_ParCSRCommPkgCreateMatrixE( hypre_ParCSRCommPkg *comm_pkg,
HYPRE_THRUST_CALL( sequence, e_j, e_j + num_elemt); HYPRE_THRUST_CALL( sequence, e_j, e_j + num_elemt);
HYPRE_THRUST_CALL( stable_sort_by_key, e_ii, e_ii + num_elemt, e_j ); HYPRE_THRUST_CALL( stable_sort_by_key, e_ii, e_ii + num_elemt, e_j );
HYPRE_Int *e_i = hypreDevice_CsrRowIndicesToPtrs(local_nrows, num_elemt, e_ii); HYPRE_Int *e_i = hypreDevice_CsrRowIndicesToPtrs(local_ncols, num_elemt, e_ii);
HYPRE_Int *new_end = HYPRE_THRUST_CALL( unique, e_ii, e_ii + num_elemt); HYPRE_Int *new_end = HYPRE_THRUST_CALL( unique, e_ii, e_ii + num_elemt);
HYPRE_Int nid = new_end - e_ii; HYPRE_Int nid = new_end - e_ii;

View File

@ -722,7 +722,7 @@ hypre_ParCSRMatrixMatvecT( HYPRE_Complex alpha,
#if defined(HYPRE_USING_CUDA) || defined(HYPRE_USING_HIP) #if defined(HYPRE_USING_CUDA) || defined(HYPRE_USING_HIP)
/* unpack recv data on device */ /* unpack recv data on device */
hypre_ParCSRMatrixMatvecT_unpack( hypre_ParCSRMatrixNumRows(A), locl_data, recv_data, comm_pkg ); hypre_ParCSRMatrixMatvecT_unpack( hypre_ParCSRMatrixNumCols(A), locl_data, recv_data, comm_pkg );
#elif defined(HYPRE_USING_DEVICE_OPENMP) #elif defined(HYPRE_USING_DEVICE_OPENMP)
HYPRE_Int i, j; HYPRE_Int i, j;
/* unpack recv data on device */ /* unpack recv data on device */
@ -922,7 +922,7 @@ hypre_ParCSRMatrixMatvec_FF( HYPRE_Complex alpha,
#if defined(HYPRE_USING_CUDA) || defined(HYPRE_USING_HIP) #if defined(HYPRE_USING_CUDA) || defined(HYPRE_USING_HIP)
HYPRE_Int HYPRE_Int
hypre_ParCSRMatrixMatvecT_unpack( HYPRE_Int nrows, hypre_ParCSRMatrixMatvecT_unpack( HYPRE_Int ncols,
HYPRE_Complex *locl_data, HYPRE_Complex *locl_data,
HYPRE_Complex *recv_data, HYPRE_Complex *recv_data,
hypre_ParCSRCommPkg *comm_pkg ) hypre_ParCSRCommPkg *comm_pkg )
@ -937,7 +937,7 @@ hypre_ParCSRMatrixMatvecT_unpack( HYPRE_Int nrows,
if (!hypre_ParCSRCommPkgMatrixE(comm_pkg)) if (!hypre_ParCSRCommPkgMatrixE(comm_pkg))
{ {
hypre_ParCSRCommPkgCreateMatrixE(comm_pkg, nrows); hypre_ParCSRCommPkgCreateMatrixE(comm_pkg, ncols);
} }
hypre_CSRMatrix *E = hypre_ParCSRCommPkgMatrixE(comm_pkg); hypre_CSRMatrix *E = hypre_ParCSRCommPkgMatrixE(comm_pkg);

View File

@ -336,7 +336,7 @@ HYPRE_Int hypre_ParCSRMatrixDropSmallEntriesHost( hypre_ParCSRMatrix *A, HYPRE_R
HYPRE_Int hypre_ParCSRMatrixDropSmallEntriesDevice( hypre_ParCSRMatrix *A, HYPRE_Complex tol, HYPRE_Int hypre_ParCSRMatrixDropSmallEntriesDevice( hypre_ParCSRMatrix *A, HYPRE_Complex tol,
HYPRE_Int type); HYPRE_Int type);
HYPRE_Int hypre_ParCSRCommPkgCreateMatrixE( hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int local_nrows ); HYPRE_Int hypre_ParCSRCommPkgCreateMatrixE( hypre_ParCSRCommPkg *comm_pkg, HYPRE_Int local_ncols );
#ifdef HYPRE_USING_PERSISTENT_COMM #ifdef HYPRE_USING_PERSISTENT_COMM
hypre_ParCSRPersistentCommHandle* hypre_ParCSRPersistentCommHandleCreate(HYPRE_Int job, hypre_ParCSRPersistentCommHandle* hypre_ParCSRPersistentCommHandleCreate(HYPRE_Int job,
@ -449,7 +449,7 @@ HYPRE_Int hypre_ParCSRMatrixMatvec ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A,
HYPRE_Complex beta, hypre_ParVector *y ); HYPRE_Complex beta, hypre_ParVector *y );
HYPRE_Int hypre_ParCSRMatrixMatvecT ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, HYPRE_Int hypre_ParCSRMatrixMatvecT ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A,
hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *y ); hypre_ParVector *x, HYPRE_Complex beta, hypre_ParVector *y );
HYPRE_Int hypre_ParCSRMatrixMatvecT_unpack( HYPRE_Int nrows, HYPRE_Complex *locl_data, HYPRE_Int hypre_ParCSRMatrixMatvecT_unpack( HYPRE_Int ncols, HYPRE_Complex *locl_data,
HYPRE_Complex *recv_data, HYPRE_Complex *recv_data,
hypre_ParCSRCommPkg *comm_pkg ); hypre_ParCSRCommPkg *comm_pkg );
HYPRE_Int hypre_ParCSRMatrixMatvec_FF ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A, HYPRE_Int hypre_ParCSRMatrixMatvec_FF ( HYPRE_Complex alpha, hypre_ParCSRMatrix *A,