cuOpt v26.02 support#33
Conversation
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>
|
|
||
| [compat] | ||
| Clang = "0.17" | ||
| Clang = "0.19" |
There was a problem hiding this comment.
This is the most recent Clang version
| end | ||
| version = VersionNumber(major[], minor[], patch[]) | ||
| min, max = v"25.08", v"25.13" | ||
| min, max = v"26.02", v"26.03" |
There was a problem hiding this comment.
This effectively restricts to only v26.02
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
As long as we tag this as 0.2, this seems fine to me.
| # upstream bug https://github.com/NVIDIA/cuopt/issues/923 | ||
| "test_solve_TerminationStatus_DUAL_INFEASIBLE", | ||
| "test_linear_DUAL_INFEASIBLE", | ||
| "test_linear_DUAL_INFEASIBLE_2", |
There was a problem hiding this comment.
The upstream bugs that caused previous exclusions were fixed, but I encountered a new one (see upstream issue) so had to exclude these.
| @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 |
There was a problem hiding this comment.
Upstream bug is fixed on master, so @test_broken felt like the most appropriate
Signed-off-by: mtanneau <mathieu.tanneau@gmail.com>
|
I'm going to merge so we can build on this to add support for 26.04. |
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