-
Notifications
You must be signed in to change notification settings - Fork 115
Forward-merge branch-25.08 into branch-25.10 #246
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
Conversation
This PR removes CUDA 11 pertaining changes since we have moved to CUDA 12 support only ## Issue closes #220 Authors: - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Kyle Edwards (https://github.com/KyleFromNVIDIA) - Trevor McKay (https://github.com/tmckayus) - Ishika Roy (https://github.com/Iroy30) - Nicolas Blin (https://github.com/Kh4ster) - Akif ÇÖRDÜK (https://github.com/akifcorduk) - Bradley Dice (https://github.com/bdice) URL: #222
|
FAILURE - Unable to forward-merge due to an error, manual merge is necessary. Do not use the IMPORTANT: When merging this PR, do not use the auto-merger (i.e. the |
Adds changes to the top level cmake_lists.txt to enable cpack creation of .deb files. In order to create the runtime and develop .deb files you will need to: 1) Build cuOpt 2) Navigate to cpp/build 3) run cpack -G DEB This creates two .deb files for the architecture of the machine that cuOpt is built on. For example: `cuOpt_25.08.0_amd64-Development.deb` and `cuOpt_25.08.0_amd64-Runtime.deb` The runtime deb package contains the cuopt CLI, the mps reader.so and the cuopt.so. The cuopt_CLI is installed in the `/usr/local/bin` directory The .so files are installed in the `/usr/local/lib` directory The development deb package contains the mps reader.so, the cuopt.so and the header files for the project all of which are installed in `/usr/local/lib` in a standard fashion. The headers are in `/usr/local/lib/cuopt` Note: There are items in the deb package creation that I took the liberty to fill, some of them may need changes. Specifically these two lines: `set(CPACK_DEBIAN_DEV_PACKAGE_MAINTAINER "NVIDIA")` `set(CPACK_DEBIAN_RUNTIME_PACKAGE_MAINTAINER "NVIDIA")` I assumed that is how you'd like the maintainer referenced. Additionally the deb packages do not correctly reference their dependencies yet, i'm happy to follow up with that work if this looks likely to be merged. ## Issue #189 Authors: - Mark Ostroot (https://github.com/mostroot) - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Trevor McKay (https://github.com/tmckayus) URL: #190
The service API is not aligned completely with the SDK API from 25.05 in relation to solver configs. This change brings them into alignment with deprecation notices and backward compatibility Authors: - Trevor McKay (https://github.com/tmckayus) - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Gil Forsyth (https://github.com/gforsyth) - Ramakrishnap (https://github.com/rgsl888prabhu) URL: #227
Raft defines `RAFT_CHECK_CUDA` depending on if we run in release/Debug mode https://github.com/rapidsai/raft/blob/branch-25.06/cpp/include/raft/util/cuda_rt_essentials.hpp#L78-L82. In cuopt we have a special mode "assert" that undefines `NDEBUG` to run with optimizations but still enable runtime checks. https://github.com/rapidsai/raft/blob/branch-25.06/cpp/include/raft/util/cuda_rt_essentials.hpp#L78-L82 The first version of `RAFT_CHECK_CUDA` uses the stream argument therefore in debug mode and assert mode we should catch that error. However unsetting `NDEBUG` in our header results in `NDEBUG` being undefined in cuopt but still defined for our dependencies. So we were calling the wrong implementation of `RAFT_CUDA_CHECK`. To undefine `NDEBUG` in both cuopt and our dependencies we have to do it through cmake. This catches the compile error. Closes: #247 Authors: - Hugo Linsenmaier (https://github.com/hlinsen) - Alice Boucher (https://github.com/aliceb-nv) Approvers: - Ramakrishnap (https://github.com/rgsl888prabhu) - Alice Boucher (https://github.com/aliceb-nv) URL: #248
The MIP codepath assumes the current problem possesses a non-zero number of integer variables. This is normally never the case as LP problems are directed to the LP codepath, however some trivial MIP instances lose their integer variables after presolve. In those cases the problem is solved at the root relaxation, this PR simply fixes assertions and checks to ensure such instances don't trigger failures on the MIP heuristics side. Also fixes an issue where initial solutions were scaled regardless of the mip scaling setting Fixes #233 Authors: - Alice Boucher (https://github.com/aliceb-nv) - Robert Maynard (https://github.com/robertmaynard) - Scott Brenner (https://github.com/ScottBrenner) - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) URL: #235
This is a simple smoketest to look for breakage and any abnormal behavior with respect to runtime from cuopt Python API changes. It does not do any exhaustive performance testing or building. depends on #235 Authors: - Trevor McKay (https://github.com/tmckayus) - James Lamb (https://github.com/jameslamb) - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - James Lamb (https://github.com/jameslamb) URL: #199
This PR removes cuda graph capture from load balanced bounds strengthening to address crashes encountered in the constructor. The cuda graph is instead created manually. Fixes #219 Authors: - Kumar Aatish (https://github.com/kaatish) Approvers: - Ramakrishnap (https://github.com/rgsl888prabhu) - Hugo Linsenmaier (https://github.com/hlinsen) URL: #242
…updates, primal infeasible list (#192) This PR contains multiple performance improvements to the dual simplex code including: * O(N^2) -> O(N) bound-flipping ratio test * Exploiting hypersparsity (sparse factors plus sparse right-hand side) throughout the solver, * New middle-product form basis update (replaces Forrest-Tomlin since it currently handles hypersparsity better) * Maintaining and update a list of primal infeasibilites New or existing test cover these changes. No changes in documentation are necessary. Authors: - Chris Maes (https://github.com/chris-maes) - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Kyle Edwards (https://github.com/KyleFromNVIDIA) - Ramakrishnap (https://github.com/rgsl888prabhu) - Alice Boucher (https://github.com/aliceb-nv) URL: #192
## Issue Authors: - Ishika Roy (https://github.com/Iroy30) - Trevor McKay (https://github.com/tmckayus) - Ramakrishnap (https://github.com/rgsl888prabhu) Approvers: - Trevor McKay (https://github.com/tmckayus) - Chris Maes (https://github.com/chris-maes) URL: #223
…date. (#249) This PR includes two fixes: * Basis repair was failing due to a bug in the right-looking LU where the column permutation was not fully populated when the basis was rank deficient. * When computing delta x using a hypersparse solve the solution vector sometimes did not contain a nonzero coefficient associated with the basic leaving index. This was an issue, as we divide by that coefficient to compute the primal step length. This coefficient may have been missing due to the numerical drop tolerances. To recover from this we perform a regular solve. If the coefficient is small, but nonzero, we can recover. In addition this PR adds the option to use threshold rook pivoting inside the right-looking LU factorization. TRP is rank-revealing. However, it produces factors L and U with more fill and is thus about 3% slower. We add TRP in this PR, but keep it disabled behind a flag. A future PR may want to use TRP when basis repair fails. New or existing tests cover these changes. The documentation is not affected. Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Akif ÇÖRDÜK (https://github.com/akifcorduk) URL: #249
When using the new middle product form for basis updates, we can sometimes get a mu = 0. This leads to infs and then nans and then out of bound memory accesses. A simple fix is to force a refactorization of the basis when this happens. This fixes #252 Authors: - Chris Maes (https://github.com/chris-maes) Approvers: - Hugo Linsenmaier (https://github.com/hlinsen) URL: #254
Forward-merge triggered by push to branch-25.08 that creates a PR to keep branch-25.10 up-to-date. If this PR is unable to be immediately merged due to conflicts, it will remain open for the team to manually merge. See forward-merger docs for more info.