Skip to content

v26.06.00

Choose a tag to compare

@jolorunyomi jolorunyomi released this 09 Jun 22:05
· 3 commits to release/26.06 since this release
df5fe0d

What's Changed

🚨 Breaking Changes

  • ci(pr): gate builds on changed-files and broaden safe exclusions by @rgsl888prabhu in #1118
  • Migrate RMM usage to CCCL MR design by @bdice in #1035
  • Fold libmps_parser into libcuopt by @mlubin in #1193

🐛 Bug Fixes

  • Add missing thrust headers across C++ sources by @bdice in #997
  • Update sonarcube host link to Nvidia by @rgsl888prabhu in #1015
  • Require openssl so that conda verson is found before system lib by @hlinsen in #1084
  • fix(cuda_helpers): clear sticky error and avoid cache poisoning in set_shmem_of_kernel by @np96 in #1095
  • Fix double va_start undefined behavior in error handling by @rgsl888prabhu in #1086
  • Fixed lower bound in single thread mode by @nguidotti in #1111
  • test(c_api): skip flaky TimeLimitTestFixture MIP case (#1135) by @rgsl888prabhu in #1136
  • Replace flaky determinism test by @aliceb-nv in #1141
  • Use fp64 for all node stack buffers and fix indexing in vehicle order match test by @hlinsen in #1137
  • fix(benchmarks): drop removed rmm owning_wrapper; build in CI by @rgsl888prabhu in #1143
  • Fix loose tolerances in the objective function integrality detection by @aliceb-nv in #1148
  • ci(docker): pin all first-party cuOpt wheels to CUOPT_VER by @rgsl888prabhu in #1157
  • Fix CI crash on RTX6000 by @nguidotti in #1184
  • miplib_test: allow tiny error on objective equality by @mlubin in #1199
  • Fix concurrent LP exception cleanup by @mlubin in #1206
  • Allow nested parallel regions for determinism mode by @nguidotti in #1201
  • Fix destruction order in solve.cu by @mlubin in #1216
  • Fix by-reference capture of local variable in solve.cu by @mlubin in #1214
  • Fix route priority sort indexing by @bdice in #1222
  • Drop constness in raft handle for data_model_view_t (routing) by @nguidotti in #1241
  • Fix lost nodes in branch and bound by @hlinsen in #1138
  • Fix vehicle fixed cost accounting in fragment-vs-route deltas by @mlubin in #1244
  • Fix an out of bounds access error by @rg20 in #1245
  • Fix a bug in dual variables and reduced costs when we add implied bounds on free variables by @chris-maes in #1237
  • Cuda graph replays on capture error by @akifcorduk in #1253
  • Fix accidentally quadratic add_slacks_to_basis in crossover by @nguidotti in #1268
  • Replace constant FJ settings with per-instance device_scalar by @mlubin in #1284
  • Stabilize logger config in LP BatchSolve and version logging by @mlubin in #1286
  • Add extra numerical guards for flow cover cuts by @aliceb-nv in #1316
  • Fix broken sample.mps download link in server LP examples docs by @rgsl888prabhu in #1358
  • Fix for maximization problems with quadratic constraints by @chris-maes in #1377
  • Use 26.6 (not 26.06) in README pip install commands by @rgsl888prabhu in #1380

📖 Documentation

  • Tweak testing instructions in CONTRIBUTING.md by @mlubin in #1000
  • Exclude L1TESTs from contributing instructions by @mlubin in #1034
  • CONTRIBUTING.md: Recommend local conda environments by @mlubin in #1085
  • docs(readme): use py3.13 docker tags (py3.14 not supported) by @rgsl888prabhu in #1112
  • Fix typo in Constraint docstring by @mlubin in #1113
  • update mip scaling doc by @Iroy30 in #1121
  • docs: migrate support link to GitHub Discussions; tidy doc links by @rgsl888prabhu in #1144
  • Add VRP dimension developer skill by @rg20 in #1233
  • Fix for cuDSS 0.8; remove incorrect presolve docs in cuopt_cli by @chris-maes in #1353
  • Update LP/QP/MILP docs to cover 26.06 API additions by @rg20 in #1339
  • docs: add 26.06 release notes and updates to docs by @rgsl888prabhu in #1294
  • Mark MILP as beta; add QCQP and SOCP to README by @rgsl888prabhu in #1384

🚀 New Features

  • Add semi continuous variables support by @hlinsen in #1096
  • Extend batch pdlp support by @Kh4ster in #1152
  • Implement python and C api for semi-continuous variables by @hlinsen in #1225
  • Add LP format reader; accept .lp wherever .mps is accepted by @mlubin in #1120
  • Detect MIP symmetry using dejavu; Perform orbital fixing and lexical reduction by @chris-maes in #1103
  • Implement C APIs for adding quadratic objectives and constraints by @rg20 in #1247
  • Add flow cover cuts at root by @hlinsen in #1178
  • Extend the barrier solver for Second-Order Cone Programming (SOCP) by @chris-maes in #1290
  • add QCQP support for grpc by @tmckayus in #1320

🛠️ Improvements

  • Main merge release/26.04 by @rgsl888prabhu in #998
  • Update versions1.json as part of version bump by @AyodeAwe in #1004
  • Main merge release/26.04 1 by @rgsl888prabhu in #1005
  • Make infra team as default code owner to any files which are not specifically added to a particular group by @rgsl888prabhu in #1013
  • Bump libcuopt size by 5 mb by @rgsl888prabhu in #1016
  • Main merge release/26.04 2 by @rgsl888prabhu in #1040
  • Bump libcuopt wheel size by @rgsl888prabhu in #1087
  • Replace strtok with thread-safe strtok_r in MPS parser by @rgsl888prabhu in #1088
  • Update to clang 20.1.8 by @bdice in #1090
  • bump nightly test to 26.06 by @rgsl888prabhu in #1091
  • Fix duplicate libmps_parser.so in libcuopt wheel by @rgsl888prabhu in #1092
  • fix(security): remove insecure SSL verification bypass in dataset downloaders by @rgsl888prabhu in #1108
  • Latency reductions for concurrent mode by @srib in #1083
  • Add CTest labels for selective C++ test execution by @rgsl888prabhu in #1102
  • Improve developer skill with Python bindings, contribution workflow, and agent rules by @rgsl888prabhu in #1106
  • fix: add retry logic and error handling to dataset download scripts by @rgsl888prabhu in #1116
  • Update build and test skills by @mlubin in #1127
  • ci: bump C++ test timeout from 40m to 50m by @rgsl888prabhu in #1130
  • docs: add entry points for more AI coding agents (Copilot, Cline, Windsurf, Jules, Aider) by @rgsl888prabhu in #1129
  • Conditional build for remote execution by @nguidotti in #1128
  • Mark L1 tests as disabled by @mlubin in #1126
  • Rename .cursor to .agents for codex support by @hlinsen in #1124
  • docs: replace routing notebook with Python example and drop notebook support by @rgsl888prabhu in #1125
  • Improve C++ error handling, resource cleanup, and API return checks by @rgsl888prabhu in #1089
  • ci(images): bump docker CUDA to 13.1.0 and Python to 3.14.1 by @rgsl888prabhu in #1123
  • ci: assign benchmarks/ to engine codeowners by @rgsl888prabhu in #1142
  • add a scriptlet to put cuopt_grpc_server on the default path by @tmckayus in #1100
  • ci: refine CodeRabbit review guide to match cuOpt idioms by @rgsl888prabhu in #1139
  • build: make docs build opt-in from build.sh by @rgsl888prabhu in #1145
  • Add QCMATRIX: parsing and quadratic-constraint model by @yuwenchen95 in #1105
  • Replace custom span with std::span by @mlubin in #1164
  • skill-evolution: scoped removal and references/ size escape hatch by @rgsl888prabhu in #1160
  • skill-evolution: add writing style guidance by @rgsl888prabhu in #1159
  • skill-evolution: drop inline provenance markers by @rgsl888prabhu in #1161
  • skill-evolution: add thrash-before-landing trigger by @rgsl888prabhu in #1162
  • Add initial skill evaluation dataset for cuopt-developer by @rgsl888prabhu in #1167
  • ci(pr): exclude skills//evals/ from test-trigger filters by @rgsl888prabhu in #1170
  • Add flaky test detection, retry, crash isolation, and nightly reporting by @rgsl888prabhu in #1098
  • skill-evolution: collapse three-phase model to single workflow by @rgsl888prabhu in #1163
  • mps_parser: switch ptr+size setters to std::span on mps_data_model_t by @mlubin in #1171
  • ci(pr): skip build/test jobs for ci/docker-only changes by @rgsl888prabhu in #1158
  • Add skill evaluation dataset for cuopt-installation-developer by @rgsl888prabhu in #1169
  • Strip skill-evolution HTML comment markers from SKILL.md files by @rgsl888prabhu in #1174
  • Add skill evaluation dataset for cuopt-lp-milp-api-python by @rgsl888prabhu in #1172
  • ci: forward CUOPT_SLACK_MENTION_ID secret to nightly-summary by @rgsl888prabhu in #1182
  • Unified pseudocost object for the regular and deterministic mode by @nguidotti in #1020
  • ci(nightly): set fail-fast: false on the build matrix by @rgsl888prabhu in #1186
  • Combine formulation and API skills into numerical-optimization skill family by @rgsl888prabhu in #1183
  • ci: format CUOPT_SLACK_MENTION_ID as subteam when ID starts with S by @rgsl888prabhu in #1187
  • ci(thirdparty-pulp): skip test_numpy_float in nightly cuOpt run by @rgsl888prabhu in #1190
  • Unified threading model in MIP solver by @nguidotti in #1099
  • Improve cuopt-developer skill content and sibling-skill routing by @rgsl888prabhu in #1176
  • Combine installation user skills into cuopt-install by @rgsl888prabhu in #1189
  • Remove installation restrictions from AGENTS.md by @mlubin in #1200
  • fix(ci): resolve all zizmor findings and add zizmor pre-commit checks by @gforsyth in #1181
  • ci: surface crashed-test failures and add per-step summaries (cpp, python, thirdparty) by @rgsl888prabhu in #1191
  • evals: add eval suite for cuopt-install skill by @rgsl888prabhu in #1205
  • Run CPUFJ bursts at the root by @aliceb-nv in #1179
  • Disable flaky swath1 incumbent callback tests by @mlubin in #1208
  • Reduce memory footprint of cuPDLPx by @Bubullzz in #1153
  • Minimize Ubuntu Boost dependencies by @bdice in #1165
  • Require CMake 4.0 by @KyleFromNVIDIA in #1210
  • fix NodeInfo assert message by @aycsi in #1218
  • ci: split build.yaml concurrency group by build_type by @rgsl888prabhu in #1211
  • Build and test with CUDA 13.2.0 by @bdice in #1198
  • Skip optionally the cost matrix validation check by @hlinsen in #1217
  • skill: tighten PR-description and CI-authoring guidance for agents by @rgsl888prabhu in #1224
  • CI: suppress shell:S4830 false positive and scope GHA permissions to job level by @rgsl888prabhu in #1229
  • sonarqube: auto-detect newest CUDA env file per branch by @rgsl888prabhu in #1236
  • Revert temporary CUDA 13.2 branch changes by @bdice in #1238
  • Reduce QP overheads by @rg20 in #1140
  • skills: add NVIDIA-signed skill cards and signatures (partial set) by @rgsl888prabhu in #1249
  • Deprecate LP batch solve across Python, server, and docs by @anandhkb in #915
  • Update lp testing by @Iroy30 in #1110
  • ci: add NVSkills CI request workflow by @rgsl888prabhu in #1243
  • Declare defaulted move ops noexcept (SonarQube BLOCKER cpp:S5018) by @rgsl888prabhu in #1227
  • Dual simplex performance improvements by @chris-maes in #1043
  • Add new solver setting CUOPT_MIP_PROBING and separate it from presolve by @akifcorduk in #1257
  • Replaced SpMV with SpMVOp in PDHG for double precision by @Bubullzz in #1226
  • Add node_limit setting for MIPs by @nguidotti in #1234
  • ci: fix mangled python image tag on release/26.06 by @rgsl888prabhu in #1269
  • Make mip_node_t destructor exception-safe (SonarQube CRIT BUG cpp:S1048) by @rgsl888prabhu in #1230
  • Fix MAJOR SonarQube bugs: mps_parser signed/unsigned compare and example init by @rgsl888prabhu in #1235
  • Follow-up for LP format by @Iroy30 in #1251
  • Migrates concurrent root LP to OpenMP by @nguidotti in #1291
  • build gRPC against OpenSSL 3 by @tmckayus in #1188
  • io: dlopen libbz2 by versioned SONAME, not unversioned symlink by @rgsl888prabhu in #1297
  • add mip start attribute by @Iroy30 in #1305
  • add code generation for grpc boilerplate conversions by @tmckayus in #1107
  • Detect when MIP objectives must move in discrete steps. Tighten the dual bound using this info. by @chris-maes in #1239
  • Improve TSP with different vehicle start/end locations by @hlinsen in #1254
  • skip CuPy 14.1.0 by @jameslamb in #1322
  • B&B with Local Heaps by @nguidotti in #1149
  • Add ability to influence the objective gap for SOCP problems by @chris-maes in #1357
  • Bump libcudss version to 0.8 by @rgsl888prabhu in #1365
  • Add support for general convex quadratic constraints (x^T Q x + c^T x… by @chris-maes in #1361
  • Ceil cuDSS to >=0.7,<0.8 by @rgsl888prabhu in #1371

New Contributors

Full Changelog: v26.06.00a...v26.06.00