NVIDIA cuOpt
NVIDIA cuOpt is an open source, GPU-accelerated optimization engine for routing, linear programming and quadratic programming, with mixed integer and conic programming in beta. It runs as a Python or C library or as a self-hosted server, and plugs into modeling tools such as AMPL, CVXPY, PuLP, GAMSPy and JuMP.1
Also known as cuOpt
At a glance
- What is it?
- cuOpt is NVIDIA's decision optimization engine. It solves vehicle routing problems (including traveling salesperson and pickup and delivery variants), linear programs and quadratic programs, and offers beta support for mixed integer programs (MIP), quadratically constrained quadratic programs and second-order cone programs. The core is written in C++ and exposed through a C API, a Python API, a command line tool and a self-hosted server. It is open source under the Apache 2.0 license, hosted on GitHub and also as a COIN-OR project, and NVIDIA offers enterprise support through NVIDIA AI Enterprise.12345
- What does it do?
- For routing, cuOpt builds a population of candidate route plans and improves it until a time limit, returning the top-scoring plan it found for a fleet of vehicles. For linear programs it runs three methods concurrently, a GPU first-order method (PDLP), a GPU-accelerated barrier method and a CPU dual simplex, and returns whichever finishes first. For MIP it combines GPU primal heuristics (local search, feasibility pump, feasibility jump) with CPU branch and bound. Models can be rerun quickly as inputs change, and cuOpt agent skills help AI agents formulate, solve, debug and explain optimization problems.13
- Who needs it?
- Teams that solve large planning problems repeatedly and need answers fast: delivery and field service routing, warehouse and supply chain allocation, job scheduling and portfolio optimization. It fits operations research groups that already use AMPL, CVXPY, PuLP, GAMSPy or JuMP and want GPU acceleration with little code change, and developers adding optimization tools to AI agents.1
- What does it need?267
- An NVIDIA GPU of the Volta architecture or newer (compute capability 7.0 or higher)
- On Linux, CUDA 12 with NVIDIA driver 525.60.13 or newer (per the cuOpt README), or CUDA 13, which NVIDIA's CUDA release notes tie to driver 580 or newer
- Linux, or Windows through WSL2 (tested for running, not for building)
- Python 3.11 to 3.14 for the Python packages
- An NVIDIA AI Enterprise subscription only if you want the NGC container and enterprise support
- What it is not
- In our assessment, cuOpt is not yet a complete replacement for mature commercial MIP solvers: its MIP solver is in beta, focuses on finding good feasible solutions quickly, and proving optimality is still under development. Its routing solver uses heuristics, so it returns near-optimal rather than proven optimal routes. It is not a planning application with a user interface, and the self-hosted server needs its own security layer before it is exposed to untrusted users. NVIDIA AI Enterprise support covers only the routing service API, not LP or MIP.23
Availability and licensing. cuOpt is open source under the Apache 2.0 license and available on GitHub, pip, conda, Docker Hub and NGC. The NGC container is offered to NVIDIA AI Enterprise subscribers, and AI Enterprise support covers only the routing service API. MIP, QCQP and SOCP support is in beta.1
The problem it solves
Routing a fleet, allocating stock across a supply chain or scheduling jobs means choosing among an enormous number of combinations under many constraints. CPU solvers can take a long time on large instances, which makes it hard to re-plan when orders, vehicles or prices change during the day.
cuOpt runs the heavy parts of these searches on NVIDIA GPUs and can rerun models in near real time or in batch, so planners and agents can update decisions as conditions change.1
How it works
cuOpt has one C++ core engine wrapped by several interfaces:
- Python API: Cython bindings, including an algebraic modeling API for building constraints and objectives.
- C API: for LP, QP and MIP from compiled applications. A native C++ API exists but is undocumented and expected to change.
- Server: a self-hosted service that accepts JSON requests over HTTP, with Python and command line clients and gRPC remote execution.
- Modeling language integrations: AMPL, CVXPY, PuLP, GAMSPy and JuMP.
Inside, routing uses a population-based heuristic search on the GPU; LP runs PDLP and a barrier method on the GPU (using cuDSS and cuSPARSE) alongside a CPU dual simplex; MIP pairs GPU primal heuristics with CPU branch and bound and shares solutions between them. Releases follow the RAPIDS release schedule, and packages are published for pip, conda and Docker (Ubuntu and a FIPS 140-3 oriented Red Hat UBI10 image).23
Diagram as a list
Applications & solutions
- Planner, application or AI agentDefines the problem and consumes the solutionConnects to Modeling tools (AMPL, CVXPY, PuLP, GAMSPy, JuMP), Python and C APIs, CLI, cuOpt server (HTTP, gRPC remote execution)
- Modeling tools (AMPL, CVXPY, PuLP, GAMSPy, JuMP)Build models and pass them to cuOptConnects to Python and C APIs, CLI
- Python and C APIs, CLIInterfaces to the core engineConnects to C++ core engine
Operations & orchestration
- cuOpt server (HTTP, gRPC remote execution)Shared optimization serviceConnects to C++ core engine
Accelerated computing
- C++ core engineRouting heuristics, PDLP, barrier, dual simplex, MIP heuristics and branch and boundConnects to NVIDIA GPU (Volta or newer) with CUDA 12 or 13, CPU
- NVIDIA GPU (Volta or newer) with CUDA 12 or 13Runs GPU solvers and heuristics
- CPURuns dual simplex and branch and bound
Capabilities
Vehicle routing23
Solves traveling salesperson, vehicle routing and pickup and delivery problems with a GPU heuristic search.
Why it matters: Plans delivery, pickup and field service routes for large fleets quickly.
Limits: Heuristic: returns high-quality routes, not proven optimal ones.
Linear and quadratic programming13
Runs PDLP and barrier on the GPU and dual simplex on the CPU concurrently for LP, and supports QP.
Why it matters: Large LP models used for allocation and planning can solve faster on GPUs.
Limits: NVIDIA states significant LP speedups when lower-accuracy solutions are acceptable.
Mixed integer programming (beta)3
GPU primal heuristics find feasible solutions while CPU branch and bound improves the bound.
Why it matters: Produces good feasible plans fast and can complement CPU MIP solvers.
Limits: Beta; proving optimality is still under development.
Conic and quadratically constrained programs (beta)2
Beta support for QCQP and second-order cone programming.
Why it matters: Covers some portfolio and engineering formulations.
Limits: Beta features may change and have narrower coverage.
Modeling language integrations13
Works with AMPL, CVXPY, PuLP, GAMSPy and JuMP models with minimal code change.
Why it matters: Existing models can try GPU solving without a rewrite.
Limits: The cuOpt docs list AMPL, GAMS, PuLP, JuMP, Pyomo and CVXPY as third-party modeling languages; we recommend checking each integration's docs for the problem types it passes to cuOpt.
Self-hosted server and remote execution36
A server accepts JSON optimization requests over HTTP, and gRPC remote execution forwards Python, C and CLI calls to a remote host.
Why it matters: Teams can run cuOpt as a shared optimization service.
Limits: Users must add their own security layers before exposing the service.
Agent skills1
Open source cuOpt agent skills help AI agents formulate, solve, debug and explain optimization problems.
Why it matters: Lets agents turn business questions into optimization models.
Limits: Agent-generated models still need expert review before decisions are acted on.
Practical use cases
A distributor must re-plan delivery routes during the day when orders, traffic or vehicle availability change.
- Approach
- Send the updated fleet, order and constraint data to a cuOpt server and rerun routing in near real time.
- Role of NVIDIA cuOpt
- cuOpt computes new route plans.
- Data, infrastructure and skills
- Clean location, order and vehicle data, a GPU host and an integration with the dispatch system.
- Type of benefit
- Faster re-planning
- Caveats
- Routes are heuristic, and plan quality depends on input data quality.
- First step
- Run the server quickstart routing example, then submit one day of historical orders.
Sources 1
A supply chain team solves a large linear allocation model nightly and wants to run more scenarios.
- Approach
- Point the existing PuLP, CVXPY, AMPL or JuMP model at cuOpt and run scenarios in batch.
- Role of NVIDIA cuOpt
- cuOpt solves the LP on the GPU.
- Data, infrastructure and skills
- An LP model in a supported modeling tool and a GPU environment.
- Type of benefit
- More scenarios per day
- Caveats
- Check solution accuracy settings against your tolerance needs.
- First step
- Solve one existing model with cuOpt and compare objective and time with the current solver.
Sources 1
An operations team wants an assistant that answers what-if questions about allocation or scheduling.
- Approach
- Use cuOpt agent skills with an LLM so the agent formulates the model, calls cuOpt and explains the result.
- Role of NVIDIA cuOpt
- cuOpt provides the solver and the skills that connect it to the agent.
- Data, infrastructure and skills
- An agent framework, an LLM (for example served as NIM) and access to the underlying data.
- Type of benefit
- Faster decision support
- Caveats
- Have experts review agent-built models before acting on them.
- First step
- Try the cuOpt reference workflow for supply chain optimization with agent skills.
Sources 1
Who uses it
Foxconn (Hon Hai Technology Group) · Electronics manufacturing
Foxconn: digital twins for new server plants with Omniverse, Isaac and Metropolis
Foxconn uses NVIDIA Omniverse digital twins to plan production lines, Isaac to simulate robots and Metropolis for camera-based monitoring, from Hsinchu to new server plants in Mexico and the US. Most published results are expectations, such as a forecast energy cut of over 30 percent in Mexico.
In production
Works with
Requires
- NVIDIA CUDA ToolkitcuOpt needs CUDA 12.0+ or 13.0+ and a compatible driver.
Complementary tools
- NVIDIA NIMNVIDIA describes agents that use LLM NIM microservices to formulate problems for cuOpt.
- NVIDIA CUDA ToolkitcuOpt is built on CUDA and requires CUDA 12 or 13.
- NVIDIA OmniverseNVIDIA describes cuOpt combined with Omniverse digital twins for logistics planning.
Same family
- NVIDIA CUDA-X Data SciencecuOpt is a CUDA-X library and follows the RAPIDS release schedule.
- NVIDIA OpenShellNVIDIA lists cuOpt as an open skill in NVIDIA Agent Toolkit alongside the OpenShell runtime.
- NVIDIA AI EnterpriseNVIDIA offers enterprise support for cuOpt through AI Enterprise (routing service API only).
Has a reference implementation in
- NVIDIA BlueprintsThe portfolio-optimization blueprint is built on cuOpt.
Relationship labels follow NVIDIA's documentation. "Alternative approaches" does not mean one is better: each profile says when it fits.
Getting started
Check requirements27
Confirm a Volta or newer GPU, CUDA 12 with driver 525.60.13 or newer or CUDA 13 with driver 580 or newer on Linux, Python 3.11 to 3.14, and Linux or WSL2.
Check: Your system matches the cuOpt system requirements page.
Install cuOpt2
pip install the packages matching your CUDA major version from pypi.nvidia.com (for example cuopt-server-cu13 and cuopt-sh-client), use conda, or pull nvidia/cuopt:latest-cu13 from Docker Hub.
Check: The packages import in Python or the container image is present locally.
Start the server6
Run the container with --gpus all, publish port 8000 and set CUOPT_SERVER_PORT=8000, or start the server from the Python package.
Check: The server is listening on port 8000.
Solve a first problem6
Send the quickstart's small routing problem as a JSON request with curl, then try an LP or MIP through the Python API or your modeling tool.
Check: The server returns a routing solution, and the LP or MIP run reports a status and objective value.
Official resources
Could this technology help you?
Describe your project to the Solution Architect. It starts with NVIDIA cuOpt as context but recommends independently, including when you do not need it.
Sources
Each statement above links to the source it comes from. Labels say who reported it.
- NVIDIA cuOpt (product page) (opens in a new tab)
- NVIDIA/cuopt GitHub repository (README) (opens in a new tab)
- cuOpt user guide: introduction (opens in a new tab)
- NVIDIA newsroom: Enterprise Software Leaders Build AI Agents With NVIDIA, 31 May 2026 (opens in a new tab)
- NVIDIA newsroom: NVIDIA Agent Toolkit announcement, 16 March 2026 (opens in a new tab)
- NVIDIA cuOpt user guide: server quickstart (opens in a new tab)
- CUDA Toolkit 13.4 Update 1 release notes (opens in a new tab)
Thank you. Your correction was sent.
The editors check it against the sources. If you left an email address, they may reply about it.