Skip to content

cuOpt v26.02 support#33

Merged
mlubin merged 5 commits intojump-dev:mainfrom
mtanneau:cuopt-v26.02
Apr 16, 2026
Merged

cuOpt v26.02 support#33
mlubin merged 5 commits intojump-dev:mainfrom
mtanneau:cuopt-v26.02

Conversation

@mtanneau
Copy link
Copy Markdown
Contributor

@mtanneau mtanneau commented Mar 4, 2026

This PR updates the C API bindings to support cuOpt v26.02.

I also updated some MathOptInterface tests & exclusions to avoid CI failures caused by upstream bugs.

Please see comments in the diff for specific points

mtanneau added 4 commits March 3, 2026 21:49
Signed-off-by: mtanneau <mathieu.tanneau@gmail.com>
Signed-off-by: mtanneau <mathieu.tanneau@gmail.com>
Signed-off-by: mtanneau <mathieu.tanneau@gmail.com>
Signed-off-by: mtanneau <mathieu.tanneau@gmail.com>
Comment thread gen/Project.toml

[compat]
Clang = "0.17"
Clang = "0.19"
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is the most recent Clang version

Comment thread src/cuOpt.jl
end
version = VersionNumber(major[], minor[], patch[])
min, max = v"25.08", v"25.13"
min, max = v"26.02", v"26.03"
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This effectively restricts to only v26.02

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Okay, so now a big question: is this a breaking change for users? How do they ensure they get the right combination of cuOpt and cuOpt.jl versions?

Can we document the compat matrix?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I suppose so, yes, given that cuOpt.jl code that worked yesterday with cuOpt v25.12 would error under this change. Note that this could occur because cuOpt is installed separately by the user, hence the cuOpt version is not guaranteed to be in sync with cuOpt.jl, i.e., the user may upgrade cuOpt.jl but forget to upgrade cuOpt.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Can we document the compat matrix?

The README currently states supported cuOpt versions under installation instructions.
Would you prefer a table that lists cuOpt <--> cuOpt.jl versions?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

cc @mlubin

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

As long as we tag this as 0.2, this seems fine to me.

Comment thread test/MOI_wrapper.jl
Comment on lines +59 to +62
# upstream bug https://github.com/NVIDIA/cuopt/issues/923
"test_solve_TerminationStatus_DUAL_INFEASIBLE",
"test_linear_DUAL_INFEASIBLE",
"test_linear_DUAL_INFEASIBLE_2",
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The upstream bugs that caused previous exclusions were fixed, but I encountered a new one (see upstream issue) so had to exclude these.

Comment thread test/MOI_wrapper.jl
@test MOI.get(model, MOI.TerminationStatus()) == MOI.OPTIMAL
# upstream bug: https://github.com/NVIDIA/cuopt/issues/855, should be fixed in 26.04
# @test_broken to be fixed when upgrading to cuopt 26.04
@test_broken MOI.get(model, MOI.TerminationStatus()) == MOI.OPTIMAL
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Upstream bug is fixed on master, so @test_broken felt like the most appropriate

Comment thread README.md
Signed-off-by: mtanneau <mathieu.tanneau@gmail.com>
@mlubin
Copy link
Copy Markdown
Member

mlubin commented Apr 16, 2026

I'm going to merge so we can build on this to add support for 26.04.

@mlubin mlubin merged commit 2df2a3c into jump-dev:main Apr 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants