-
Notifications
You must be signed in to change notification settings - Fork 108
Branch 25.08 merge 25.05 #35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
AyodeAwe
merged 15 commits into
NVIDIA:branch-25.08
from
rgsl888prabhu:branch-25.08-merge-25.05
May 23, 2025
Merged
Branch 25.08 merge 25.05 #35
AyodeAwe
merged 15 commits into
NVIDIA:branch-25.08
from
rgsl888prabhu:branch-25.08-merge-25.05
May 23, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
These errors were caused by all LPs in the batch sharing the same concurrent halt variable. This meant that the first LP to solve, forced all other LPs to halt. So it was possible that both PDLP and Dual Simplex solves returned with a ConcurrentLimit termination status. This should never happen normally. For now, we fix this by disabling the Concurrent method in batch mode. We set the method to PDLP, if Concurrent was chosen, and tell the user to choose PDLP or Dual Simplex to avoid this warning in the future. Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) URL: NVIDIA/cuopt#17
There was a bug in pre_process_assignment function. During initial solve() we are doing preprocess and then trivial_presolve. That means, the free var replacements are added first then the variable eliminations are done. For that reason the user solution preprocessing should follow the same order. The bug of set_solution is called multiple times in the tests if fixed: we should to pop the back solution after solution is being set, otherwise it will always be set. The bug of he assignment resize is fixed: it should be called before the gather, if not the resize will enlarge it and it will have junk values, causing mismatch in objective costs and sometimes infeasible solutions. This also changes a slight issue where we assign 2x for y and x for z when x is positive, for large initial values this might cause numerical issues, that's why we now assign x for y and 0 for z. This PR also fixes the bug of empty solutions not being handled correctly after a presolve (previously we handled it only for trivial presolve). Authors: - Akif ÇÖRDÜK (https://github.com/akifcorduk) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) URL: NVIDIA/cuopt#18
This PR removes the following build flags: 1. cpp-mgtests: This is unused 2. no-fetch-rapids: This is broken in the latest version of rapids, this needs to be fixed to improve build times 3. skip_l1_tests: This is unused 4. d: The development build flag is unused Authors: - Rajesh Gandham (https://github.com/rg20) Approvers: - Trevor McKay (https://github.com/tmckayus) URL: NVIDIA/cuopt#15
This fixes a bug where the objective was not correctly set when an LP was determined to be dual infeasible / unbounded. Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) - Rajesh Gandham (https://github.com/rg20) - Nicolas Blin (https://github.com/Kh4ster) URL: NVIDIA/cuopt#19
…it (#23) Also adds the --relaxation flag to cuopt_cli to solve the LP relaxation of a MIP Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Nicolas Blin (https://github.com/Kh4ster) URL: NVIDIA/cuopt#23
This PR adds two things: 1. Introduces a time limit for computing related variables. This function can take a lot of time for very large problems (in this case 20+ M variables). Ideally, we need to speed up this with a better algo and fine tune for larger problems 2. Catch `std::bad_alloc` exceptions in solve function. Currently, we only catch `cuopt::logic_error` Authors: - Rajesh Gandham (https://github.com/rg20) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) URL: NVIDIA/cuopt#22
This PR fixes occasional crashes seen in the regression tests caused by accesses to a global `lp_state_t` object across consecutive runs, becoming stale in later runs. The object has been moved to `mip_solver_context_t`. Authors: - Alice Boucher (https://github.com/aliceb-nv) Approvers: - Rajesh Gandham (https://github.com/rg20) URL: NVIDIA/cuopt#24
Since C does not have a boolean type, we need to allow `cuOptGetIntParameter` and `cuOptSetIntParameter` to work for boolean parameters as well. On irish-electricity we had a bug where we were stopping PDLP early, due to a numerical error inside dual simplex. In concurrent mode we should only stop the other solver when we have reached a definitive conclusion on the problem. Fix a bug in the Python docstrings found by Flora. Also log whenever we change settings. And set the log pattern to `%v` outside the solve as well. Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Trevor McKay (https://github.com/tmckayus) - Rajesh Gandham (https://github.com/rg20) URL: NVIDIA/cuopt#25
This PR fixes two issues: 1. Solution file generated by PDLP presented several JSON issues, was still mentioning ms for the solve time and was not handling the potential missing fields from Dual Simplex. To handle the last and so that user can know, a bool was added to know which solver solved the LP problem 2. The default value for binary time limit was an int resulting in a bad any cast in case it was not set Authors: - Nicolas Blin (https://github.com/Kh4ster) - https://github.com/Iroy30 Approvers: - Alice Boucher (https://github.com/aliceb-nv) - https://github.com/Iroy30 URL: NVIDIA/cuopt#21
…rary fix add B&B solution directly (#27) This PR fixes bugs in - Preprocess in set callback function, the checks were done on the original assignment before preprocess, thus rejecting almost all set_solution calls. - Line segment returning worse solutions because of bug. - A side effect of LS returning worse solutions is that B&B added solutions are not added to the population as LS makes them worse. Authors: - Akif ÇÖRDÜK (https://github.com/akifcorduk) Approvers: - Alice Boucher (https://github.com/aliceb-nv) - Hugo Linsenmaier (https://github.com/hlinsen) URL: NVIDIA/cuopt#27
…ns (#29)
Fixes an issue reported on the following MPS file, where `_dummy` variable does not appear in the constraints. We remove empty columns (and thus `_dummy`) in presolve for dual simplex. But do not take this into account when constructing the solution.
Further work, is needed to develop an actual LP presolve.
```
*SENSE:Minimize
NAME test_export_dict_LP_no_obj
ROWS
N OBJ
G c1
E c2
L c3
G c4
COLUMNS
__dummy OBJ 1.000000000000e+00
w c4 1.000000000000e+00
x c1 1.000000000000e+00
x c2 1.000000000000e+00
y c1 1.000000000000e+00
y c3 -1.000000000000e+00
z c2 1.000000000000e+00
z c3 1.000000000000e+00
RHS
RHS c1 5.000000000000e+00
RHS c2 1.000000000000e+01
RHS c3 7.000000000000e+00
RHS c4 0.000000000000e+00
BOUNDS
FX BND __dummy 0.000000000000e+00
FX BND w 0.000000000000e+00
UP BND x 4.000000000000e+00
LO BND y -1.000000000000e+00
UP BND y 1.000000000000e+00
```
Fixes #13 which was caused by an issue in column scaling when the norm of a column is zero.
Authors:
- Chris Maes (https://github.com/chris-maes)
Approvers:
- Rajesh Gandham (https://github.com/rg20)
- Nicolas Blin (https://github.com/Kh4ster)
URL: NVIDIA/cuopt#29
The non-trivial presolve did not report optimality if the problem was fully reduced. Fixed by this PR Closes rapidsai/cuopt#2507 Authors: - Alice Boucher (https://github.com/aliceb-nv) Approvers: - Chris Maes (https://github.com/chris-maes) - Akif ÇÖRDÜK (https://github.com/akifcorduk) URL: NVIDIA/cuopt#26
We are using 3.2 version of cpp-argparser from conda. This PR updates the version to 3.2 for wheel builds as well. Authors: - Rajesh Gandham (https://github.com/rg20) Approvers: - Ramakrishnap (https://github.com/rgsl888prabhu) URL: NVIDIA/cuopt#31
Should fix the interment CI issue we were seeing in batch mode It was possible for another CPU thread to call cudaMemcpyToSymbol while another was trying to capture on its stream. Solved by switching to the async API and use stream so that the call doesn't end up on the default stream. Authors: - Nicolas Blin (https://github.com/Kh4ster) - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Akif ÇÖRDÜK (https://github.com/akifcorduk) - Ramakrishnap (https://github.com/rgsl888prabhu) URL: NVIDIA/cuopt#34
Rapids is moving away from cuda11 support soon and we don't have particular request to support on cuda11. So removing support for cuda 11. This PR removes cuda 11 related dependencies, documentation and ci testing. Authors: - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Rajesh Gandham (https://github.com/rg20) - Trevor McKay (https://github.com/tmckayus) URL: NVIDIA/cuopt#32
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Forward merge from 25.05 to 25.08, for #20