fixed various gpu issues
This commit is contained in:
parent
0716fddafb
commit
f14ebeb710
@ -441,7 +441,7 @@ hypre_BoomerAMGCreateNodalA(hypre_ParCSRMatrix *A,
|
||||
if (num_sends)
|
||||
{
|
||||
send_procs_AN = hypre_CTAlloc(HYPRE_Int, num_sends, HYPRE_MEMORY_HOST);
|
||||
send_map_elmts_AN = hypre_CTAlloc(HYPRE_Int, send_map_starts[num_sends], HYPRE_MEMORY_HOST);
|
||||
send_map_elmts_AN = hypre_CTAlloc(HYPRE_Int, send_map_starts[num_sends], HYPRE_MEMORY_SHARED);
|
||||
}
|
||||
send_map_starts_AN = hypre_CTAlloc(HYPRE_Int, num_sends+1, HYPRE_MEMORY_HOST);
|
||||
recv_vec_starts_AN = hypre_CTAlloc(HYPRE_Int, num_recvs+1, HYPRE_MEMORY_HOST);
|
||||
@ -800,7 +800,7 @@ hypre_BoomerAMGCreateNodalA(hypre_ParCSRMatrix *A,
|
||||
|
||||
if (new_send_elmts_size > send_map_starts[num_sends])
|
||||
{
|
||||
new_send_map_elmts = hypre_CTAlloc(HYPRE_Int, new_send_elmts_size, HYPRE_MEMORY_HOST);
|
||||
new_send_map_elmts = hypre_CTAlloc(HYPRE_Int, new_send_elmts_size, HYPRE_MEMORY_SHARED);
|
||||
cnt = 0;
|
||||
send_map_starts[0] = 0;
|
||||
for (i=0; i < num_sends; i++)
|
||||
@ -812,7 +812,7 @@ hypre_BoomerAMGCreateNodalA(hypre_ParCSRMatrix *A,
|
||||
new_send_map_elmts[cnt++] = send_map_elmts_AN[j]*num_functions+k;
|
||||
}
|
||||
}
|
||||
hypre_TFree(send_map_elmts, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(send_map_elmts, HYPRE_MEMORY_SHARED);
|
||||
hypre_ParCSRCommPkgSendMapElmts(comm_pkg) = new_send_map_elmts;
|
||||
}
|
||||
|
||||
@ -1024,7 +1024,7 @@ hypre_BoomerAMGCreateScalarCFS(hypre_ParCSRMatrix *SN,
|
||||
{
|
||||
send_procs_S = hypre_CTAlloc(HYPRE_Int, num_sends, HYPRE_MEMORY_HOST);
|
||||
send_map_elmts_S = hypre_CTAlloc(HYPRE_Int,
|
||||
num_functions*send_map_starts[num_sends], HYPRE_MEMORY_HOST);
|
||||
num_functions*send_map_starts[num_sends], HYPRE_MEMORY_SHARED);
|
||||
}
|
||||
send_map_starts_S = hypre_CTAlloc(HYPRE_Int, num_sends+1, HYPRE_MEMORY_HOST);
|
||||
recv_vec_starts_S = hypre_CTAlloc(HYPRE_Int, num_recvs+1, HYPRE_MEMORY_HOST);
|
||||
|
||||
@ -223,8 +223,8 @@ hypre_GetCommPkgRTFromCommPkgA( hypre_ParCSRMatrix *RT,
|
||||
* generate send_map_elmts
|
||||
*--------------------------------------------------------------------------*/
|
||||
|
||||
send_map_elmts_RT = hypre_CTAlloc(HYPRE_Int, send_map_starts_RT[num_sends_RT], HYPRE_MEMORY_HOST);
|
||||
send_big_elmts = hypre_CTAlloc(HYPRE_BigInt, send_map_starts_RT[num_sends_RT], HYPRE_MEMORY_HOST);
|
||||
send_map_elmts_RT = hypre_CTAlloc(HYPRE_Int, send_map_starts_RT[num_sends_RT], HYPRE_MEMORY_SHARED);
|
||||
send_big_elmts = hypre_CTAlloc(HYPRE_BigInt, send_map_starts_RT[num_sends_RT], HYPRE_MEMORY_SHARED);
|
||||
|
||||
j = 0;
|
||||
for (i=0; i < num_sends_RT; i++)
|
||||
@ -261,7 +261,7 @@ hypre_GetCommPkgRTFromCommPkgA( hypre_ParCSRMatrix *RT,
|
||||
|
||||
hypre_TFree(status, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(requests, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(send_big_elmts, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(send_big_elmts, HYPRE_MEMORY_SHARED);
|
||||
|
||||
hypre_ParCSRMatrixCommPkg(RT) = comm_pkg;
|
||||
hypre_TFree(change_array, HYPRE_MEMORY_HOST);
|
||||
@ -309,8 +309,8 @@ hypre_GenerateSendMapAndCommPkg(MPI_Comm comm, HYPRE_Int num_sends, HYPRE_Int nu
|
||||
for (i=0; i < num_sends; i++)
|
||||
send_map_starts[i+1] += send_map_starts[i];
|
||||
|
||||
send_map_elmts = hypre_CTAlloc(HYPRE_Int, send_map_starts[num_sends], HYPRE_MEMORY_HOST);
|
||||
send_big_elmts = hypre_CTAlloc(HYPRE_BigInt, send_map_starts[num_sends], HYPRE_MEMORY_HOST);
|
||||
send_map_elmts = hypre_CTAlloc(HYPRE_Int, send_map_starts[num_sends], HYPRE_MEMORY_SHARED);
|
||||
send_big_elmts = hypre_CTAlloc(HYPRE_BigInt, send_map_starts[num_sends], HYPRE_MEMORY_SHARED);
|
||||
|
||||
j = 0;
|
||||
for (i=0; i < num_sends; i++)
|
||||
@ -347,7 +347,7 @@ hypre_GenerateSendMapAndCommPkg(MPI_Comm comm, HYPRE_Int num_sends, HYPRE_Int nu
|
||||
|
||||
hypre_TFree(status, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(requests, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(send_big_elmts, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(send_big_elmts, HYPRE_MEMORY_SHARED);
|
||||
|
||||
hypre_ParCSRMatrixCommPkg(A) = comm_pkg;
|
||||
return 0;
|
||||
|
||||
@ -487,7 +487,7 @@ HYPRE_Int hypre_BoomerAMG_GMExpandInterp( hypre_ParCSRMatrix *A,
|
||||
P_diag_data_new = hypre_CTAlloc(HYPRE_Real, new_nnz_diag, HYPRE_MEMORY_SHARED);
|
||||
P_diag_i_new = hypre_CTAlloc(HYPRE_Int, nv + 1, HYPRE_MEMORY_SHARED);
|
||||
|
||||
P_offd_j_big = hypre_CTAlloc(HYPRE_BigInt, new_nnz_offd, HYPRE_MEMORY_HOST);
|
||||
P_offd_j_big = hypre_CTAlloc(HYPRE_BigInt, new_nnz_offd, HYPRE_MEMORY_SHARED);
|
||||
P_offd_j_new = hypre_CTAlloc(HYPRE_Int, new_nnz_offd, HYPRE_MEMORY_SHARED);
|
||||
P_offd_data_new = hypre_CTAlloc(HYPRE_Real, new_nnz_offd, HYPRE_MEMORY_SHARED);
|
||||
P_offd_i_new = hypre_CTAlloc(HYPRE_Int, nv + 1, HYPRE_MEMORY_SHARED);
|
||||
@ -1475,7 +1475,7 @@ HYPRE_Int hypre_BoomerAMG_GMExpandInterp( hypre_ParCSRMatrix *A,
|
||||
hypre_TFree(aux_j, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(aux_data, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(is_diag, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(P_offd_j_big, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(P_offd_j_big, HYPRE_MEMORY_SHARED);
|
||||
|
||||
hypre_TFree(q_count_sv, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(num_lost_sv, HYPRE_MEMORY_HOST);
|
||||
|
||||
@ -506,7 +506,7 @@ HYPRE_Int hypre_BoomerAMG_LNExpandInterp( hypre_ParCSRMatrix *A,
|
||||
P_diag_data_new = hypre_CTAlloc(HYPRE_Real, new_nnz_diag, HYPRE_MEMORY_SHARED);
|
||||
P_diag_i_new = hypre_CTAlloc(HYPRE_Int, num_rows_P + 1, HYPRE_MEMORY_SHARED);
|
||||
|
||||
P_offd_j_big = hypre_CTAlloc(HYPRE_BigInt, new_nnz_offd, HYPRE_MEMORY_HOST);
|
||||
P_offd_j_big = hypre_CTAlloc(HYPRE_BigInt, new_nnz_offd, HYPRE_MEMORY_SHARED);
|
||||
P_offd_j_new = hypre_CTAlloc(HYPRE_Int, new_nnz_offd, HYPRE_MEMORY_SHARED);
|
||||
P_offd_data_new = hypre_CTAlloc(HYPRE_Real, new_nnz_offd, HYPRE_MEMORY_SHARED);
|
||||
P_offd_i_new = hypre_CTAlloc(HYPRE_Int, num_rows_P + 1, HYPRE_MEMORY_SHARED);
|
||||
@ -2527,7 +2527,7 @@ HYPRE_Int hypre_BoomerAMG_LNExpandInterp( hypre_ParCSRMatrix *A,
|
||||
hypre_TFree(int_buf_data, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(big_buf_data, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(col_map, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(P_offd_j_big, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(P_offd_j_big, HYPRE_MEMORY_SHARED);
|
||||
|
||||
hypre_TFree(smooth_vec_offd, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(smooth_vec_offd_P, HYPRE_MEMORY_HOST);
|
||||
|
||||
@ -386,7 +386,7 @@ hypre_ParCSRCommPkgCreateApart_core(
|
||||
send_proc_obj.vec_starts = hypre_CTAlloc(HYPRE_Int, send_proc_obj.storage_length + 1, HYPRE_MEMORY_HOST);
|
||||
send_proc_obj.vec_starts[0] = 0;
|
||||
send_proc_obj.element_storage_length = num_cols_off_d;
|
||||
send_proc_obj.elements = hypre_CTAlloc(HYPRE_BigInt, send_proc_obj.element_storage_length, HYPRE_MEMORY_HOST);
|
||||
send_proc_obj.elements = hypre_CTAlloc(HYPRE_BigInt, send_proc_obj.element_storage_length, HYPRE_MEMORY_SHARED);
|
||||
|
||||
response_obj2.fill_response = hypre_FillResponseIJDetermineSendProcs;
|
||||
response_obj2.data1 = NULL;
|
||||
@ -437,7 +437,7 @@ hypre_ParCSRCommPkgCreateApart_core(
|
||||
|
||||
orig_order = hypre_CTAlloc(HYPRE_Int, num_sends, HYPRE_MEMORY_HOST);
|
||||
orig_send_map_starts = hypre_CTAlloc(HYPRE_Int, num_sends+1, HYPRE_MEMORY_HOST);
|
||||
orig_send_elements = hypre_CTAlloc(HYPRE_BigInt, send_proc_obj.vec_starts[num_sends], HYPRE_MEMORY_HOST);
|
||||
orig_send_elements = hypre_CTAlloc(HYPRE_BigInt, send_proc_obj.vec_starts[num_sends], HYPRE_MEMORY_SHARED);
|
||||
|
||||
orig_send_map_starts[0] = 0;
|
||||
/* copy send map starts and elements */
|
||||
@ -468,7 +468,7 @@ hypre_ParCSRCommPkgCreateApart_core(
|
||||
}
|
||||
/* clean up */
|
||||
hypre_TFree(orig_order, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(orig_send_elements, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(orig_send_elements, HYPRE_MEMORY_SHARED);
|
||||
hypre_TFree(orig_send_map_starts, HYPRE_MEMORY_HOST);
|
||||
}
|
||||
|
||||
@ -502,20 +502,20 @@ hypre_ParCSRCommPkgCreateApart_core(
|
||||
|
||||
if (num_sends)
|
||||
{
|
||||
HYPRE_Int *tmp_elements = hypre_CTAlloc(HYPRE_Int, send_proc_obj.vec_starts[num_sends], HYPRE_MEMORY_HOST);
|
||||
HYPRE_Int *tmp_elements = hypre_CTAlloc(HYPRE_Int, send_proc_obj.vec_starts[num_sends], HYPRE_MEMORY_SHARED);
|
||||
for (i=0; i<send_proc_obj.vec_starts[num_sends]; i++)
|
||||
{
|
||||
//send_proc_obj.elements[i] -= first_col_diag;
|
||||
tmp_elements[i] = (HYPRE_Int)(send_proc_obj.elements[i] - first_col_diag);
|
||||
}
|
||||
*p_send_map_elements = tmp_elements;
|
||||
hypre_TFree(send_proc_obj.elements, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(send_proc_obj.elements, HYPRE_MEMORY_SHARED);
|
||||
send_proc_obj.elements = NULL;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
hypre_TFree(send_proc_obj.elements, HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(send_proc_obj.elements, HYPRE_MEMORY_SHARED);
|
||||
send_proc_obj.elements = NULL;
|
||||
*p_send_map_elements = NULL;
|
||||
}
|
||||
@ -620,7 +620,7 @@ hypre_NewCommPkgDestroy(hypre_ParCSRMatrix *parcsr_A)
|
||||
}
|
||||
if (hypre_ParCSRCommPkgSendMapElmts(comm_pkg))
|
||||
{
|
||||
hypre_TFree(hypre_ParCSRCommPkgSendMapElmts(comm_pkg), HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(hypre_ParCSRCommPkgSendMapElmts(comm_pkg), HYPRE_MEMORY_SHARED);
|
||||
}
|
||||
if (hypre_ParCSRCommPkgSendMapStarts(comm_pkg))
|
||||
{
|
||||
@ -790,7 +790,7 @@ hypre_FillResponseIJDetermineSendProcs(void *p_recv_contact_buf,
|
||||
elength = hypre_max(contact_size, 50);
|
||||
elength += index;
|
||||
send_proc_obj->elements = hypre_TReAlloc(send_proc_obj->elements,
|
||||
HYPRE_BigInt, elength, HYPRE_MEMORY_HOST);
|
||||
HYPRE_BigInt, elength, HYPRE_MEMORY_SHARED);
|
||||
send_proc_obj->element_storage_length = elength;
|
||||
}
|
||||
/*populate send_proc_obj*/
|
||||
|
||||
@ -708,7 +708,7 @@ hypre_ParCSRCommPkgCreate_core(
|
||||
if (num_sends)
|
||||
{
|
||||
send_procs = hypre_CTAlloc(HYPRE_Int, num_sends, HYPRE_MEMORY_HOST);
|
||||
send_map_elmts = hypre_CTAlloc(HYPRE_Int, proc_add[num_sends], HYPRE_MEMORY_HOST);
|
||||
send_map_elmts = hypre_CTAlloc(HYPRE_Int, proc_add[num_sends], HYPRE_MEMORY_SHARED);
|
||||
big_buf_data = hypre_CTAlloc(HYPRE_BigInt, proc_add[num_sends], HYPRE_MEMORY_HOST);
|
||||
}
|
||||
send_map_starts = hypre_CTAlloc(HYPRE_Int, num_sends+1, HYPRE_MEMORY_HOST);
|
||||
@ -882,7 +882,7 @@ hypre_MatvecCommPkgDestroy( hypre_ParCSRCommPkg *comm_pkg )
|
||||
if (hypre_ParCSRCommPkgNumSends(comm_pkg))
|
||||
{
|
||||
hypre_TFree(hypre_ParCSRCommPkgSendProcs(comm_pkg), HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(hypre_ParCSRCommPkgSendMapElmts(comm_pkg), HYPRE_MEMORY_HOST);
|
||||
hypre_TFree(hypre_ParCSRCommPkgSendMapElmts(comm_pkg), HYPRE_MEMORY_SHARED);
|
||||
}
|
||||
hypre_TFree(hypre_ParCSRCommPkgSendMapStarts(comm_pkg), HYPRE_MEMORY_HOST);
|
||||
/* if (hypre_ParCSRCommPkgSendMPITypes(comm_pkg))
|
||||
|
||||
@ -1857,7 +1857,7 @@ hypre_ParCSRMatrixTranspose( hypre_ParCSRMatrix *A,
|
||||
if (AT_offd_i[num_cols])
|
||||
{
|
||||
AT_offd_j = hypre_CTAlloc(HYPRE_Int, AT_offd_i[num_cols], HYPRE_MEMORY_SHARED);
|
||||
AT_big_j = hypre_CTAlloc(HYPRE_BigInt, AT_offd_i[num_cols], HYPRE_MEMORY_SHARED);
|
||||
AT_big_j = hypre_CTAlloc(HYPRE_BigInt, AT_offd_i[num_cols], HYPRE_MEMORY_HOST);
|
||||
if (data) AT_offd_data = hypre_CTAlloc(HYPRE_Complex, AT_offd_i[num_cols], HYPRE_MEMORY_SHARED);
|
||||
}
|
||||
else
|
||||
|
||||
Loading…
Reference in New Issue
Block a user