NVIDIA/cuopt
Cuda
Captured source
source ↗NVIDIA/cuopt
Description: GPU accelerated decision optimization
Language: Cuda
License: Apache-2.0
Stars: 939
Forks: 194
Open issues: 171
Created: 2025-04-08T21:06:03Z
Pushed: 2026-06-10T20:44:52Z
Default branch: main
Fork: no
Archived: no
README:
cuOpt - GPU-accelerated Optimization
 
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.
For the latest version, ensure you are on the main branch.
Latest Documentation
Supported APIs
cuOpt supports the following APIs:
- C API support
- Linear Programming (LP)
- Quadratic Programming (QP)
- Quadratically Constrained Quadratic Programming (QCQP) (beta)
- Second-Order Cone Programming (SOCP) (beta)
- Mixed Integer Linear Programming (MILP) (beta)
- C++ API support
- cuOpt is written in C++ and includes a native C++ API. However, we do not provide documentation for the C++ API at this time. We anticipate that the C++ API will change significantly in the future. Use it at your own risk.
- Python support
- Routing (TSP, VRP, and PDP)
- Linear Programming (LP)
- Quadratic Programming (QP)
- Quadratically Constrained Quadratic Programming (QCQP) (beta)
- Second-Order Cone Programming (SOCP) (beta)
- Mixed Integer Linear Programming (MILP) (beta)
- Algebraic modeling Python API allows users to easily build constraints and objectives
- Server support
- Linear Programming (LP)
- Routing (TSP, VRP, and PDP)
- Mixed Integer Linear Programming (MILP) (beta)
This repo is also hosted as a COIN-OR project.
Latest Release Notes:
[RELEASE-NOTES.md](RELEASE-NOTES.md)
Installation
CUDA/GPU requirements
- CUDA 12.0+ or CUDA 13.0+
- NVIDIA driver >= 525.60.13 (Linux) and >= 527.41 (Windows)
- Volta architecture or better (Compute Capability >=7.0)
Python requirements
- Python >=3.11, -cuda12.9-py3.13`
or-cuda13.0-py3.13tag. For example, to use cuOpt 25.10.0, you can use the25.10.0-cuda12.9-py3.13or25.10.0-cuda13.0-py3.13` tag. Please refer to cuOpt dockerhub page for the list of available tags.
Nightly container images are built from the HEAD of the development branch and use the upcoming CUDA/Python defaults (cuda12.9-py3.14 and cuda13.1-py3.14). They are tagged as `a-cuda12.9-py3.14 or a-cuda13.1-py3.14 (note the a` alpha suffix). See the cuOpt dockerhub page for the full list.
More information about the cuOpt container can be found here.
Users who are using cuOpt for quick testing or research can use the cuOpt container. Alternatively, users who are planning to plug cuOpt as a service in their workflow can quickly start with the cuOpt container. But users are required to build security layers around the service to safeguard the service from untrusted users.
Build from Source and Test
Please see our [guide for building cuOpt from source](CONTRIBUTING.md#setting-up-your-build-environment). This will be helpful if users want to add new features or fix bugs for cuOpt. This would also be very helpful in case users want to customize cuOpt for their own use cases which require changes to the cuOpt source code.
Release Timeline
cuOpt follows the RAPIDS release schedule and is part of the "others" category in the release timeline. The release cycle consists of:
- Development: Active feature development and bug fixes targeting
main - Burn Down: Focus shifts to stabilization; new features should target the next release
- Code Freeze: Only critical bug fixes allowed; PRs require admin approval
- Release: Final testing, tagging, and official release
For current release timelines and dates, refer to the RAPIDS Maintainers Docs.
For AI Coding Agents
See [AGENTS.md](./AGENTS.md) for agent-specific guidelines.
Contributing Guide
Review the [CONTRIBUTING.md](CONTRIBUTING.md) file for information on how to contribute code and issues to the project.
Notability
notability 5.0/10New NVIDIA repo with good stars, not a major model release