Skip to main content

cuOpt - GPU Optimizer (C++)

Project description

cuOpt - GPU accelerated Optimization Engine

Build Status

NVIDIA® cuOpt™ is a GPU-accelerated optimization engine that excels in mixed integer linear programming (MILP), linear programming (LP), and vehicle routing problems (VRP). It enables near real-time solutions for large-scale challenges with millions of variables and constraints, offering easy integration into existing solvers and seamless deployment across hybrid and multi-cloud environments.

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

For the latest stable version ensure you are on the main branch.

Supported APIs

cuOpt supports the following APIs:

  • C API support
    • Linear Programming (LP)
    • Mixed Integer Linear Programming (MILP)
  • 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) and Mixed Integer Linear Programming (MILP)
      • cuOpt includes a Python API that is used as the backend of the cuOpt server. However, we do not provide documentation for the Python API at this time. We suggest using cuOpt server to access cuOpt via Python. We anticipate that the Python API will change significantly in the future. Use it at your own risk.
  • Server support
    • Linear Programming (LP)
    • Mixed Integer Linear Programming (MILP)
    • Routing (TSP, VRP, and PDP)

This repo is also hosted as a COIN-OR project.

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.10, <=3.13

OS requirements

  • Only Linux is supported and Windows via WSL2
    • x86_64 (64-bit)
    • aarch64 (64-bit)

Note: WSL2 is tested to run cuOpt, but not for building.

More details on system requirements can be found here

Pip

Pip wheels are easy to install and easy to configure. Users with existing workflows who uses pip as base to build their workflows can use pip to install cuOpt.

cuOpt can be installed via pip from the NVIDIA Python Package Index. Be sure to select the appropriate cuOpt package depending on the major version of CUDA available in your environment:

For CUDA 12.x:

pip install \
  --extra-index-url=https://pypi.nvidia.com \
  nvidia-cuda-runtime-cu12=12.9.* \
  cuopt-server-cu12==25.10.* cuopt-sh-client==25.10.*

Development wheels are available as nightlies, please update --extra-index-url to https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ to install latest nightly packages.

pip install --pre \
  --extra-index-url=https://pypi.nvidia.com \
  --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ \
  cuopt-server-cu12==25.10.* cuopt-sh-client==25.10.*

For CUDA 13.x:

pip install \
  --extra-index-url=https://pypi.nvidia.com \
  cuopt-server-cu13==25.10.* cuopt-sh-client==25.10.*

Development wheels are available as nightlies, please update --extra-index-url to https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ to install latest nightly packages.

pip install --pre \
  --extra-index-url=https://pypi.nvidia.com \
  --extra-index-url=https://pypi.anaconda.org/rapidsai-wheels-nightly/simple/ \
  cuopt-server-cu13==25.10.* cuopt-sh-client==25.10.*

Conda

cuOpt can be installed with conda (via miniforge):

All other dependencies are installed automatically when cuopt-server and cuopt-sh-client are installed.

conda install -c rapidsai -c conda-forge -c nvidia cuopt-server=25.10.* cuopt-sh-client=25.10.*

We also provide nightly conda packages built from the HEAD of our latest development branch. Just replace -c rapidsai with -c rapidsai-nightly.

Container

Users can pull the cuOpt container from the NVIDIA container registry.

# For CUDA 12.x
docker pull nvidia/cuopt:latest-cuda12.9-py3.13

# For CUDA 13.x
docker pull nvidia/cuopt:latest-cuda13.0-py3.13

Note: The latest tag is the latest stable release of cuOpt. If you want to use a specific version, you can use the <version>-cuda12.9-py3.13 or <version>-cuda13.0-py3.13 tag. For example, to use cuOpt 25.10.0, you can use the 25.10.0-cuda12.9-py3.13 or 25.10.0-cuda13.0-py3.13 tag. Please refer to cuOpt dockerhub page <https://hub.docker.com/r/nvidia/cuopt/tags>_ for the list of available tags.

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. 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.

Contributing Guide

Review the CONTRIBUTING.md file for information on how to contribute code and issues to the project.

Resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

libcuopt_cu13-25.10.0.tar.gz (3.3 kB view details)

Uploaded Source

File details

Details for the file libcuopt_cu13-25.10.0.tar.gz.

File metadata

  • Download URL: libcuopt_cu13-25.10.0.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.19

File hashes

Hashes for libcuopt_cu13-25.10.0.tar.gz
Algorithm Hash digest
SHA256 9b067a1793be502fac0eb49d2c4023b6413e431bc9a93e997a11607a0179fd76
MD5 9109fb58c96d429801c64225a004bb57
BLAKE2b-256 87fe3b40c6e882c722e3a84caffd26c531f4a5a92c3e07a0319355defd0160d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page