Skip to content
Draft
Show file tree
Hide file tree
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
10 changes: 6 additions & 4 deletions src/LibcuPDLPx.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
module LibcuPDLPx

using cuPDLPx_jll
# TODO: I have to add this in my local environment. This might be a issue in JLL.
const libcupdlpx = "/home/zdpeng/.julia/artifacts/4d407e51174c3bfe2f138e6e1db2531d0bc6240d/lib/libcupdlpx.so"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I actually had the same issue and it prevented me to run it locally, for me, it seems to be because I have CUDA v13.0

$ nvidia-smi
Thu Dec 18 08:27:35 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.105.08             Driver Version: 580.105.08     CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
julia> CUDA.versioninfo()
CUDA toolchain: 
- runtime 13.0, artifact installation
- driver 580.105.8 for 13.0
- compiler 13.1

and cuPDLPx is only available on CUDA up to v12.9:
https://github.com/JuliaBinaryWrappers/cuPDLPx_jll.jl/tree/main/src/wrappers
The issue seems to be this line:
https://github.com/JuliaPackaging/Yggdrasil/blob/96df50e83da84ec3a4c48b4d9360abaa9c5a843d/C/cuPDLPx/build_tarballs.jl#L51
If you can run it locally and show me test errors here I can help. Otherwise, if the jll is fixed for CUDA v13 then I will be able to run the tests locally and it should be more efficient

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot! I’ll update build_tarballs.jl to add CUDA 13 support.
For the const libcupdlpx = "/home/zdpeng/.julia/artifacts/..." workaround: I asked Gemini and it suggested changing LibraryProduct("libcupdlpx", :libcupdlpx), to LibraryProduct("cupdlpx", :libcupdlpx), in build_tarballs.jl.
Do you think that makes sense here?

Reference: https://github.com/JuliaPackaging/Yggdrasil/blob/96df50e83da84ec3a4c48b4d9360abaa9c5a843d/C/cuPDLPx/build_tarballs.jl#L47

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

export cuPDLPx_jll

@enum termination_reason_t::UInt32 begin
Expand Down Expand Up @@ -51,15 +53,15 @@ end

struct pdhg_parameters_t
l_inf_ruiz_iterations::Cint
has_pock_chambolle_alpha::Bool
has_pock_chambolle_alpha::Cint
pock_chambolle_alpha::Cdouble
bound_objective_rescaling::Bool
verbose::Bool
bound_objective_rescaling::Cint
verbose::Cint
termination_evaluation_frequency::Cint
termination_criteria::termination_criteria_t
restart_params::restart_parameters_t
reflection_coefficient::Cdouble
feasibility_polishing::Bool
feasibility_polishing::Cint
end

struct cupdlpx_result_t
Expand Down
Loading