Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 25 additions & 6 deletions cpp/src/barrier/sparse_cholesky.cuh
Original file line number Diff line number Diff line change
Expand Up @@ -483,6 +483,8 @@ class sparse_cholesky_cudss_t : public sparse_cholesky_base_t<i_t, f_t> {
status =
cudssExecute(handle, CUDSS_PHASE_REORDERING, solverConfig, solverData, A, cudss_x, cudss_b);
if (settings_.concurrent_halt != nullptr && *settings_.concurrent_halt == 1) {
RAFT_CUDA_TRY(cudaStreamSynchronize(stream));
handle_ptr_->get_stream().synchronize();
return CONCURRENT_HALT_RETURN;
}
if (status != CUDSS_STATUS_SUCCESS) {
Expand All @@ -499,6 +501,8 @@ class sparse_cholesky_cudss_t : public sparse_cholesky_base_t<i_t, f_t> {
status = cudssExecute(
handle, CUDSS_PHASE_SYMBOLIC_FACTORIZATION, solverConfig, solverData, A, cudss_x, cudss_b);
if (settings_.concurrent_halt != nullptr && *settings_.concurrent_halt == 1) {
RAFT_CUDA_TRY(cudaStreamSynchronize(stream));
handle_ptr_->get_stream().synchronize();
return CONCURRENT_HALT_RETURN;
}
if (status != CUDSS_STATUS_SUCCESS) {
Expand Down Expand Up @@ -556,6 +560,8 @@ class sparse_cholesky_cudss_t : public sparse_cholesky_base_t<i_t, f_t> {
status = cudssExecute(
handle, CUDSS_PHASE_FACTORIZATION, solverConfig, solverData, A, cudss_x, cudss_b);
if (settings_.concurrent_halt != nullptr && *settings_.concurrent_halt == 1) {
RAFT_CUDA_TRY(cudaStreamSynchronize(stream));
handle_ptr_->get_stream().synchronize();
return CONCURRENT_HALT_RETURN;
}
if (status != CUDSS_STATUS_SUCCESS) {
Expand All @@ -572,6 +578,8 @@ class sparse_cholesky_cudss_t : public sparse_cholesky_base_t<i_t, f_t> {

f_t numeric_time = toc(start_numeric);
if (settings_.concurrent_halt != nullptr && *settings_.concurrent_halt == 1) {
RAFT_CUDA_TRY(cudaStreamSynchronize(stream));
handle_ptr_->get_stream().synchronize();
return CONCURRENT_HALT_RETURN;
}

Expand Down Expand Up @@ -694,15 +702,22 @@ class sparse_cholesky_cudss_t : public sparse_cholesky_base_t<i_t, f_t> {
return CONCURRENT_HALT_RETURN;
}
f_t start_analysis = tic();
CUDSS_CALL_AND_CHECK(
cudssExecute(handle, CUDSS_PHASE_REORDERING, solverConfig, solverData, A, cudss_x, cudss_b),
status,
"cudssExecute for reordering");

f_t reorder_time = toc(start_analysis);
status =
cudssExecute(handle, CUDSS_PHASE_REORDERING, solverConfig, solverData, A, cudss_x, cudss_b);
if (settings_.concurrent_halt != nullptr && *settings_.concurrent_halt == 1) {
RAFT_CUDA_TRY(cudaStreamSynchronize(stream));
handle_ptr_->get_stream().synchronize();
Comment thread
coderabbitai[bot] marked this conversation as resolved.
return CONCURRENT_HALT_RETURN;
}
if (status != CUDSS_STATUS_SUCCESS) {
settings_.log.printf(
"FAILED: CUDSS call ended unsuccessfully with status = %d, details: cuDSSExecute for "
"reordering\n",
status);
return -1;
}

f_t reorder_time = toc(start_analysis);

f_t start_symbolic = tic();

Expand Down Expand Up @@ -767,6 +782,8 @@ class sparse_cholesky_cudss_t : public sparse_cholesky_base_t<i_t, f_t> {

f_t numeric_time = toc(start_numeric);
if (settings_.concurrent_halt != nullptr && *settings_.concurrent_halt == 1) {
RAFT_CUDA_TRY(cudaStreamSynchronize(stream));
handle_ptr_->get_stream().synchronize();
return CONCURRENT_HALT_RETURN;
}

Expand Down Expand Up @@ -832,6 +849,8 @@ class sparse_cholesky_cudss_t : public sparse_cholesky_base_t<i_t, f_t> {

status = cudssExecute(handle, CUDSS_PHASE_SOLVE, solverConfig, solverData, A, cudss_x, cudss_b);
if (settings_.concurrent_halt != nullptr && *settings_.concurrent_halt == 1) {
RAFT_CUDA_TRY(cudaStreamSynchronize(stream));
handle_ptr_->get_stream().synchronize();
return CONCURRENT_HALT_RETURN;
}
if (status != CUDSS_STATUS_SUCCESS) {
Expand Down
Loading