Skip to content

Commit 4df47b2

Browse files
committed
Create and destroy local MAGMA queue in solve_with_V (hiopVector) GPU path
1 parent 4a205a2 commit 4df47b2

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/Optimization/HessianDiagPlusRowRank.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,12 @@ void HessianDiagPlusRowRank::solve_with_V(hiopVector& rhs_s, hiopVector& rhs_y)
771771
rhs.local_data(), &N, &info);
772772
#else
773773
// GPU path via MAGMA
774+
// 1) create a local MAGMA queue
775+
magma_queue_t queue;
776+
magma_int_t dev = 0;
777+
magma_getdevice(&dev); // get current GPU device
778+
magma_queue_create(dev, &queue); // create a queue/stream
779+
774780
magma_int_t magma_info = 0;
775781
magma_dsytrs_gpu(
776782
MagmaLower, // use lower triangle
@@ -781,9 +787,11 @@ void HessianDiagPlusRowRank::solve_with_V(hiopVector& rhs_s, hiopVector& rhs_y)
781787
V_ipiv_vec_, // pivot array (host)
782788
rhs.local_data(), // device pointer to RHS
783789
N, // leading dimension of RHS
784-
&magma_info, // info return
785-
magma_device_queue_); // ← queue
790+
&magma_info,
791+
queue);
786792
info = magma_info;
793+
794+
magma_queue_destroy(queue); // clean up
787795
#endif
788796

789797
if(info < 0) {

0 commit comments

Comments
 (0)