Skip to content

Commit 7b94c41

Browse files
committed
fix: bug when compiling with cpu mode
1 parent c6531a9 commit 7b94c41

File tree

2 files changed

+10
-23
lines changed

2 files changed

+10
-23
lines changed

cupdlp/cupdlp_linalg.c

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -761,13 +761,15 @@ void cupdlp_compute_interaction_and_movement(CUPDLPwork *w,
761761
CUPDLPvec *yUpdate = iterates->y[(iter + 1) % 2];
762762
CUPDLPvec *atyUpdate = iterates->aty[(iter + 1) % 2];
763763

764-
cupdlp_float dX2 = 0.0;
765-
cupdlp_float dY2 = 0.0;
766-
cupdlp_float dInter = 0.0;
767-
768-
cupdlp_movement_interaction_cuda(&dX2, &dY2, &dInter, w->buffer2,
764+
#if !(CUPDLP_CPU) && USE_KERNELS
765+
cupdlp_movement_interaction_cuda(&dX, &dY, dInteraction, w->buffer2,
769766
xUpdate->data, x->data, yUpdate->data, y->data, atyUpdate->data, aty->data, nRows, nCols);
770-
771-
*dMovement = dX2 * 0.5 * beta + dY2 / (2.0 * beta);
772-
*dInteraction = dInter;
767+
#else
768+
cupdlp_diffTwoNormSquared(w, x->data, xUpdate->data, nCols, &dX);
769+
cupdlp_diffTwoNormSquared(w, y->data, yUpdate->data, nRows, &dY);
770+
// Δx' (AΔy)
771+
cupdlp_diffDotDiff(w, x->data, xUpdate->data, aty->data, atyUpdate->data,
772+
nCols, dInteraction);
773+
#endif
774+
*dMovement = dX * 0.5 * beta + dY / (2.0 * beta);
773775
}

cupdlp/cupdlp_step.c

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -222,22 +222,7 @@ cupdlp_retcode PDHG_Update_Iterate_Adaptive_Step_Size(CUPDLPwork *pdhg) {
222222
cupdlp_float dMovement = 0.0;
223223
cupdlp_float dInteraction = 0.0;
224224

225-
#if !(CUPDLP_CPU) && USE_KERNELS
226225
cupdlp_compute_interaction_and_movement(pdhg, &dMovement, &dInteraction);
227-
#else
228-
cupdlp_float dX = 0.0;
229-
cupdlp_diffTwoNormSquared(pdhg, x->data, xUpdate->data, problem->nCols, &dX);
230-
dX *= 0.5 * sqrt(stepsize->dBeta);
231-
232-
cupdlp_float dY = 0.0;
233-
cupdlp_diffTwoNormSquared(pdhg, y->data, yUpdate->data, problem->nRows, &dY);
234-
dY /= 2.0 * sqrt(stepsize->dBeta);
235-
dMovement = dX + dY;
236-
237-
// Δx' (AΔy)
238-
cupdlp_diffDotDiff(pdhg, x->data, xUpdate->data, aty->data, atyUpdate->data,
239-
problem->nCols, &dInteraction);
240-
#endif
241226

242227
#if CUPDLP_DUMP_LINESEARCH_STATS && CUPDLP_DEBUG
243228
cupdlp_float dInteractiony = 0.0;

0 commit comments

Comments
 (0)