Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@



NVIDIA® cuOpt™ is a GPU-accelerated optimization engine that excels in linear programming (LP), quadratic programming (QP), and vehicle routing problems (VRP), with support for quadratically constrained quadratic programming (QCQP) (beta), second-order cone programming (SOCP) (beta), and mixed integer linear programming (MILP) (beta). It enables near real-time solutions for large-scale LPs with millions of variables and constraints. cuOpt offers easy integration into existing modeling languages and seamless deployment across hybrid and multi-cloud environments.
NVIDIA® cuOpt™ is a GPU-accelerated optimization engine that excels in linear programming (LP), quadratic programming (QP), and vehicle routing problems (VRP), with support for quadratically constrained quadratic programming (QCQP) (beta), second-order cone programming (SOCP) (beta), and mixed integer linear programming (MILP) (beta). cuOpt enables near real-time solutions for large-scale LPs with millions of variables and constraints and offers easy integration into existing modeling languages with seamless deployment across hybrid and multi-cloud environments.

The cuOpt MIP solver is in beta and under active development. The solver currently excels at finding high-quality feasible solutions quickly with GPU-accelerated primal heuristics. Proving feasible solutions optimal remains under active development.

cuOpt offers easy integration into existing solvers, and seamlessly extends into agent-first optimization workflows through open-source cuOpt agent skills.

The core engine is written in C++ and wrapped with a C API, Python API and Server API.

Expand Down
12 changes: 6 additions & 6 deletions conda/environments/all_cuda-129_arch-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ dependencies:
- cuda-python>=12.9.2,<13.0
- cuda-sanitizer-api
- cuda-version=12.9
- cudf==26.6.*,>=0.0.0a0
- cudf==26.6.*
- cupy>=13.6.0,!=14.0.0,!=14.1.0
- cxx-compiler
- cython>=3.0.3
Expand All @@ -37,8 +37,8 @@ dependencies:
- libgrpc >=1.78.0,<1.80.0a0
- libnvjitlink-dev
- libprotobuf
- libraft-headers==26.6.*,>=0.0.0a0
- librmm==26.6.*,>=0.0.0a0
- libraft-headers==26.6.*
- librmm==26.6.*
- make
- msgpack-numpy==0.4.8
- msgpack-python==1.1.2
Expand All @@ -55,18 +55,18 @@ dependencies:
- pip
- pre-commit
- psutil>=6.0.0
- pylibraft==26.6.*,>=0.0.0a0
- pylibraft==26.6.*
- pyrsistent
- pytest-cov
- pytest-rerunfailures
- pytest<9.0
- python>=3.11,<3.15
- pyyaml>=6.0.0
- rapids-build-backend>=0.4.0,<0.5.0
- rapids-logger==0.2.*,>=0.0.0a0
- rapids-logger==0.2.*
- re2
- requests
- rmm==26.6.*,>=0.0.0a0
- rmm==26.6.*
- ruamel.yaml>=0.18
- scikit-build-core>=0.11.0
- scipy>=1.14.1
Expand Down
12 changes: 6 additions & 6 deletions conda/environments/all_cuda-129_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ dependencies:
- cuda-python>=12.9.2,<13.0
- cuda-sanitizer-api
- cuda-version=12.9
- cudf==26.6.*,>=0.0.0a0
- cudf==26.6.*
- cupy>=13.6.0,!=14.0.0,!=14.1.0
- cxx-compiler
- cython>=3.0.3
Expand All @@ -37,8 +37,8 @@ dependencies:
- libgrpc >=1.78.0,<1.80.0a0
- libnvjitlink-dev
- libprotobuf
- libraft-headers==26.6.*,>=0.0.0a0
- librmm==26.6.*,>=0.0.0a0
- libraft-headers==26.6.*
- librmm==26.6.*
- make
- msgpack-numpy==0.4.8
- msgpack-python==1.1.2
Expand All @@ -55,18 +55,18 @@ dependencies:
- pip
- pre-commit
- psutil>=6.0.0
- pylibraft==26.6.*,>=0.0.0a0
- pylibraft==26.6.*
- pyrsistent
- pytest-cov
- pytest-rerunfailures
- pytest<9.0
- python>=3.11,<3.15
- pyyaml>=6.0.0
- rapids-build-backend>=0.4.0,<0.5.0
- rapids-logger==0.2.*,>=0.0.0a0
- rapids-logger==0.2.*
- re2
- requests
- rmm==26.6.*,>=0.0.0a0
- rmm==26.6.*
- ruamel.yaml>=0.18
- scikit-build-core>=0.11.0
- scipy>=1.14.1
Expand Down
12 changes: 6 additions & 6 deletions conda/environments/all_cuda-132_arch-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ dependencies:
- cuda-python>=13.0.1,<14.0
- cuda-sanitizer-api
- cuda-version=13.2
- cudf==26.6.*,>=0.0.0a0
- cudf==26.6.*
- cupy>=13.6.0,!=14.0.0,!=14.1.0
- cxx-compiler
- cython>=3.0.3
Expand All @@ -37,8 +37,8 @@ dependencies:
- libgrpc >=1.78.0,<1.80.0a0
- libnvjitlink-dev
- libprotobuf
- libraft-headers==26.6.*,>=0.0.0a0
- librmm==26.6.*,>=0.0.0a0
- libraft-headers==26.6.*
- librmm==26.6.*
- make
- msgpack-numpy==0.4.8
- msgpack-python==1.1.2
Expand All @@ -55,18 +55,18 @@ dependencies:
- pip
- pre-commit
- psutil>=6.0.0
- pylibraft==26.6.*,>=0.0.0a0
- pylibraft==26.6.*
- pyrsistent
- pytest-cov
- pytest-rerunfailures
- pytest<9.0
- python>=3.11,<3.15
- pyyaml>=6.0.0
- rapids-build-backend>=0.4.0,<0.5.0
- rapids-logger==0.2.*,>=0.0.0a0
- rapids-logger==0.2.*
- re2
- requests
- rmm==26.6.*,>=0.0.0a0
- rmm==26.6.*
- ruamel.yaml>=0.18
- scikit-build-core>=0.11.0
- scipy>=1.14.1
Expand Down
12 changes: 6 additions & 6 deletions conda/environments/all_cuda-132_arch-x86_64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ dependencies:
- cuda-python>=13.0.1,<14.0
- cuda-sanitizer-api
- cuda-version=13.2
- cudf==26.6.*,>=0.0.0a0
- cudf==26.6.*
- cupy>=13.6.0,!=14.0.0,!=14.1.0
- cxx-compiler
- cython>=3.0.3
Expand All @@ -37,8 +37,8 @@ dependencies:
- libgrpc >=1.78.0,<1.80.0a0
- libnvjitlink-dev
- libprotobuf
- libraft-headers==26.6.*,>=0.0.0a0
- librmm==26.6.*,>=0.0.0a0
- libraft-headers==26.6.*
- librmm==26.6.*
- make
- msgpack-numpy==0.4.8
- msgpack-python==1.1.2
Expand All @@ -55,18 +55,18 @@ dependencies:
- pip
- pre-commit
- psutil>=6.0.0
- pylibraft==26.6.*,>=0.0.0a0
- pylibraft==26.6.*
- pyrsistent
- pytest-cov
- pytest-rerunfailures
- pytest<9.0
- python>=3.11,<3.15
- pyyaml>=6.0.0
- rapids-build-backend>=0.4.0,<0.5.0
- rapids-logger==0.2.*,>=0.0.0a0
- rapids-logger==0.2.*
- re2
- requests
- rmm==26.6.*,>=0.0.0a0
- rmm==26.6.*
- ruamel.yaml>=0.18
- scikit-build-core>=0.11.0
- scipy>=1.14.1
Expand Down
2 changes: 1 addition & 1 deletion cpp/docs/grpc-server-architecture.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# NVIDIA cuOpt gRPC server architecture
# NVIDIA cuOpt gRPC Server Architecture

<!--
SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Expand Down
52 changes: 26 additions & 26 deletions dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ dependencies:
common:
- output_types: [conda]
packages:
- libcuopt-tests==26.6.*,>=0.0.0a0
- libcuopt-tests==26.6.*
build_wheels:
common:
- output_types: [requirements, pyproject]
Expand Down Expand Up @@ -395,12 +395,12 @@ dependencies:
common:
- output_types: [requirements, pyproject]
packages:
- cuopt-cu13==26.6.*,>=0.0.0a0
- cuopt-cu13==26.6.*
depends_on_libcuopt:
common:
- output_types: conda
packages:
- &libcuopt_unsuffixed libcuopt==26.6.*,>=0.0.0a0
- &libcuopt_unsuffixed libcuopt==26.6.*
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -413,18 +413,18 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- libcuopt-cu12==26.6.*,>=0.0.0a0
- libcuopt-cu12==26.6.*
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- libcuopt-cu13==26.6.*,>=0.0.0a0
- libcuopt-cu13==26.6.*
- {matrix: null, packages: [*libcuopt_unsuffixed]}
depends_on_cuopt:
common:
- output_types: conda
packages:
- &cuopt_unsuffixed cuopt==26.6.*,>=0.0.0a0
- &cuopt_unsuffixed cuopt==26.6.*
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -437,18 +437,18 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- cuopt-cu12==26.6.*,>=0.0.0a0
- cuopt-cu12==26.6.*
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- cuopt-cu13==26.6.*,>=0.0.0a0
- cuopt-cu13==26.6.*
- {matrix: null, packages: [*cuopt_unsuffixed]}
depends_on_cuopt_server:
common:
- output_types: conda
packages:
- &cuopt_server_unsuffixed cuopt-server==26.6.*,>=0.0.0a0
- &cuopt_server_unsuffixed cuopt-server==26.6.*
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -461,18 +461,18 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- cuopt-server-cu12==26.6.*,>=0.0.0a0
- cuopt-server-cu12==26.6.*
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- cuopt-server-cu13==26.6.*,>=0.0.0a0
- cuopt-server-cu13==26.6.*
- {matrix: null, packages: [*cuopt_server_unsuffixed]}
depends_on_cuopt_sh_client:
common:
- output_types: [conda, requirements, pyproject]
packages:
- &cuopt_sh_client_unsuffixed cuopt-sh-client==26.6.*,>=0.0.0a0
- &cuopt_sh_client_unsuffixed cuopt-sh-client==26.6.*
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -482,12 +482,12 @@ dependencies:
common:
- output_types: conda
packages:
- libraft-headers==26.6.*,>=0.0.0a0
- libraft-headers==26.6.*
depends_on_librmm:
common:
- output_types: conda
packages:
- &librmm_unsuffixed librmm==26.6.*,>=0.0.0a0
- &librmm_unsuffixed librmm==26.6.*
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -499,12 +499,12 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- librmm-cu12==26.6.*,>=0.0.0a0
- librmm-cu12==26.6.*
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- librmm-cu13==26.6.*,>=0.0.0a0
- librmm-cu13==26.6.*
- {matrix: null, packages: [*librmm_unsuffixed]}
depends_on_cupy:
common:
Expand All @@ -529,7 +529,7 @@ dependencies:
common:
- output_types: [conda, requirements, pyproject]
packages:
- rapids-logger==0.2.*,>=0.0.0a0
- rapids-logger==0.2.*
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -539,7 +539,7 @@ dependencies:
common:
- output_types: conda
packages:
- &rmm_unsuffixed rmm==26.6.*,>=0.0.0a0
- &rmm_unsuffixed rmm==26.6.*
- output_types: requirements
packages:
# pip recognizes the index as a global option for the requirements.txt file
Expand All @@ -551,12 +551,12 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- rmm-cu12==26.6.*,>=0.0.0a0
- rmm-cu12==26.6.*
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- rmm-cu13==26.6.*,>=0.0.0a0
- rmm-cu13==26.6.*
- matrix:
packages:
- *rmm_unsuffixed
Expand All @@ -565,7 +565,7 @@ dependencies:
common:
- output_types: conda
packages:
- &cudf_unsuffixed cudf==26.6.*,>=0.0.0a0
- &cudf_unsuffixed cudf==26.6.*
- output_types: requirements
packages:
- --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple
Expand All @@ -576,12 +576,12 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- cudf-cu12==26.6.*,>=0.0.0a0
- cudf-cu12==26.6.*
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- cudf-cu13==26.6.*,>=0.0.0a0
- cudf-cu13==26.6.*
- matrix:
packages:
- *cudf_unsuffixed
Expand All @@ -590,7 +590,7 @@ dependencies:
common:
- output_types: conda
packages:
- &pylibraft_unsuffixed pylibraft==26.6.*,>=0.0.0a0
- &pylibraft_unsuffixed pylibraft==26.6.*
- output_types: requirements
packages:
- --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple
Expand All @@ -601,12 +601,12 @@ dependencies:
cuda: "12.*"
cuda_suffixed: "true"
packages:
- pylibraft-cu12==26.6.*,>=0.0.0a0
- pylibraft-cu12==26.6.*
- matrix:
cuda: "13.*"
cuda_suffixed: "true"
packages:
- pylibraft-cu13==26.6.*,>=0.0.0a0
- pylibraft-cu13==26.6.*
- matrix:
packages:
- *pylibraft_unsuffixed
Expand Down
Loading
Loading