Generated banner for Cuopt Install
Generated logo for Cuopt Install

Cuopt Install

NVIDIAOfficialCreated by NVIDIA cuOpt Team

  • Skill
  • Workflow
  • Software development
  • Apache-2.0
  • Medium risk

From the author

Install cuOpt for Python, C, or server via pip, conda, or Docker; verify the install. For building cuOpt from source, see cuopt-developer.
— the description by NVIDIA cuOpt Team

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides standardized procedures for installing the NVIDIA cuOpt optimization library. It covers multiple installation methods including pip, conda, and Docker, ensuring compatibility across Python, C, and REST server interfaces. The guide includes essential system requirement checks, such as GPU compute capability and CUDA version matching, along with verification steps to confirm successful deployment.

What it does

  • Provides installation commands for Python, C, and REST server interfaces.
  • Supports installation via pip, conda, and Docker containers.
  • Includes verification scripts for Python, C, and server endpoints.
  • Outlines system requirements including GPU compute capability and CUDA versioning.
  • Offers troubleshooting guidance for common installation and environment issues.

When to use it

  • When setting up a new environment to use NVIDIA cuOpt for optimization tasks.
  • When you need to verify that an existing cuOpt installation is correctly configured.
  • When transitioning between different deployment methods like local pip installs or Docker containers.
  • When troubleshooting missing modules or CUDA compatibility issues.

Advantages

  • Centralized installation instructions for multiple interfaces.
  • Includes specific verification tests to ensure GPU access and library functionality.
  • Clearly distinguishes between Python and C library dependencies.
  • Provides environment-specific guidance for cloud and local setups.

Usage examples

“How do I install cuOpt for Python with CUDA 12?”
The agent provides the specific pip or conda command using the correct index and package suffix for CUDA 12.
“Verify my cuOpt installation is working.”
The agent guides the user through running a DataModel creation test or a server health check to confirm the library is functional.
“I need to run cuOpt as a REST server using Docker.”
The agent provides the docker pull and run commands to deploy the cuOpt server container.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/nvidia/cuopt-install/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip cuopt-install.zip -d .agents/skills

Documentation by NVIDIA cuOpt Team

cuOpt Install (user)

Install cuOpt to use it from Python, C, or as a REST server. For building cuOpt from source to contribute or modify it, see cuopt-developer.

System requirements

  • GPU: NVIDIA Compute Capability ≥ 7.0 (Volta or newer). Examples: V100, A100, H100, RTX 20xx/30xx/40xx. Not supported: GTX 10xx (Pascal).

  • CUDA: 12.x or 13.x. The package CUDA suffix must match the runtime CUDA (e.g. cuopt-cu12 / libcuopt-cu12 with CUDA 12).

  • Driver: NVIDIA driver compatible with the CUDA version.

  • cuopt-cuXX (Python) depends on libcuopt-cuXX (C), so installing the Python package also installs the C library and headers. Installing libcuopt-cuXX on its own does not install the Python API.

Required questions

Ask these if not already clear:

  1. Interface — Python, C, or REST server? Server can be called from any language via HTTP.

  2. CUDA version — What is installed? Check with nvcc --version or nvidia-smi.

  3. Package manager — pip, conda, or Docker preferred?

  4. Environment — Local machine with GPU, cloud instance, Docker/Kubernetes, or remote/server (no local GPU)?

Python API

Choose one — do not run both. The second install would override the first and can cause CUDA / package mismatch.

pip
  • CUDA 13.x:

    pip install --extra-index-url=https://pypi.nvidia.com cuopt-cu13
  • CUDA 12.x:

    pip install --extra-index-url=https://pypi.nvidia.com 'cuopt-cu12==26.2.*'
conda
conda install -c rapidsai -c conda-forge -c nvidia cuopt
Verify
import cuopt
print(cuopt.__version__)
from cuopt import routing
dm = routing.DataModel(n_locations=3, n_fleet=1, n_orders=2)

C API

The C API ships in libcuopt-cuXX, which is also pulled in as a dependency of cuopt-cuXX — so if you already installed the Python package, the C library and headers are already present. Install libcuopt standalone only when you want the C API without Python. Choose one of pip or conda — do not run both.

pip
  • CUDA 13.x:

    pip install --extra-index-url=https://pypi.nvidia.com libcuopt-cu13
  • CUDA 12.x:

    pip install --extra-index-url=https://pypi.nvidia.com 'libcuopt-cu12==26.2.*'
conda
conda install -c rapidsai -c conda-forge -c nvidia libcuopt
Verify

See references/verification_examples.md for the canonical C-API header/library find commands (conda and pip/venv variants).

Server (REST)

pip
pip install --extra-index-url=https://pypi.nvidia.com cuopt-server-cu12 cuopt-sh-client
conda
conda install -c rapidsai -c conda-forge -c nvidia cuopt-server cuopt-sh-client
Docker
docker pull nvidia/cuopt:latest-cuda12.9-py3.13
docker run --gpus all -it --rm -p 8000:8000 nvidia/cuopt:latest-cuda12.9-py3.13
Verify
python -m cuopt_server.cuopt_service --ip 0.0.0.0 --port 8000 &
sleep 5
curl -s http://localhost:8000/cuopt/health | jq .

Common Issues

  • No module named 'cuopt' → check pip list | grep cuopt, which python, reinstall with the correct extra-index-url.

  • CUDA not available → run nvidia-smi and nvcc --version; ensure the package CUDA suffix (cu12 vs cu13) matches the installed CUDA.

  • Python vs C → cuopt-cuXX pulls in libcuopt-cuXX as a transitive dependency, so the C library (libcuopt.so) and headers (cuopt_c.h) are already available after installing the Python package. The reverse is not true: libcuopt-cuXX alone does not install the Python bindings.

See also

  • verification_examples.md — full verification recipes for Python, C, server, and Docker.

  • cuopt-developer — build cuOpt from source and contribute to the codebase.

Files

evals/evals.json

[
  {
    "id": "inst-eval-001-docker-server",
    "question": "I want to run the cuOpt REST server in a Docker container with GPU access on a CUDA 12 host. What image do I pull and what run command exposes the API on port 8000?",
    "expected_skill": "cuopt-install",
    "expected_script": null,
    "ground_truth": "The agent uses the official NVIDIA cuOpt Docker image tagged for CUDA 12 (e.g. nvidia/cuopt:latest-cuda12.9-py3.13) and provides a docker run command with --gpus all (for GPU access) and -p 8000:8000 (to expose the REST API). The agent does not invent NGC paths like nvcr.io/nvidia/cuopt:latest.",
    "expected_behavior": [
      "Uses the nvidia/cuopt Docker image tagged for CUDA 12 (e.g. nvidia/cuopt:latest-cuda12.9-py3.13), not a fabricated nvcr.io/* path",
      "docker run command includes --gpus all and -p 8000:8000"
    ]
  },
  {
    "id": "inst-eval-002-cuda-suffix-must-match",
    "question": "nvidia-smi on my box reports CUDA 13. Which cuOpt Python package do I pip install, and does it matter which one I pick?",
    "expected_skill": "cuopt-install",
    "expected_script": null,
    "ground_truth": "The agent installs the cu13-suffixed package (cuopt-cu13) and explains that the package CUDA suffix must match the runtime CUDA — installing the cu12 package on a CUDA 13 runtime is a mismatch. It includes the NVIDIA package index in the command (pip install --extra-index-url=https://pypi.nvidia.com cuopt-cu13), since cuOpt wheels are not on public PyPI without it.",
    "expected_behavior": [
      "Selects the cu13-suffixed package to match the reported CUDA major version",
      "Includes --extra-index-url=https://pypi.nvidia.com in the pip command",
      "Explains that the package CUDA suffix must match the installed CUDA runtime"
    ]
  },
  {
    "id": "inst-eval-003-python-implies-c-not-reverse",
    "question": "I already pip installed the cuOpt Python package. Do I need to install anything else to get the C headers and shared library? And if I later only want the C API without Python, what changes?",
    "expected_skill": "cuopt-install",
    "expected_script": null,
    "ground_truth": "The agent explains the one-way dependency: cuopt-cuXX depends on libcuopt-cuXX, so installing the Python package already brings in the C library and headers — nothing further is needed. The reverse does not hold: installing libcuopt-cuXX on its own provides the C API but does not install the Python bindings. For a C-only setup, install libcuopt-cuXX standalone.",
    "expected_behavior": [
      "States that the Python package already pulls in the C library and headers as a dependency, so no extra install is needed",
      "States that the reverse is not true — libcuopt-cuXX alone does not provide the Python API",
      "Names libcuopt-cuXX as the standalone C-API package"
    ]
  },
  {
    "id": "inst-eval-004-unsupported-gpu",
    "question": "I have a GTX 1080 in this machine. Can I run cuOpt on it?",
    "expected_skill": "cuopt-install",
    "expected_script": null,
    "ground_truth": "The agent answers no. cuOpt requires an NVIDIA GPU with Compute Capability 7.0 or higher (Volta or newer); the GTX 10xx series is Pascal and falls below that threshold. It names examples of supported hardware (V100, A100, H100, RTX 20xx/30xx/40xx) and does not offer a workaround or installation command that would appear to make the unsupported GPU work.",
    "expected_behavior": [
      "States that the GPU is not supported because cuOpt requires Compute Capability >= 7.0 (Volta or newer)",
      "Identifies the GTX 10xx series as Pascal and therefore below the requirement",
      "Names supported alternatives rather than suggesting a workaround for the unsupported GPU"
    ]
  },
  {
    "id": "inst-eval-005-underspecified-install-request",
    "question": "Install cuOpt for me.",
    "expected_skill": "cuopt-install",
    "expected_script": null,
    "ground_truth": "The request is underspecified, so the agent asks the required questions before giving a command: which interface (Python, C, or REST server), which CUDA version is installed (checked with nvcc --version or nvidia-smi), which package manager is preferred (pip, conda, or Docker), and what the target environment is (local GPU machine, cloud instance, container/Kubernetes, or a remote host without a local GPU). It does not guess a default and emit an install command, and it does not run the install itself.",
    "expected_behavior": [
      "Asks which interface is wanted — Python, C, or REST server",
      "Asks which CUDA version is installed, referencing nvcc --version or nvidia-smi",
      "Asks whether pip, conda, or Docker is preferred",
      "Does not silently assume defaults and emit a single install command"
    ]
  },
  {
    "id": "inst-eval-006-no-pip-and-conda-together",
    "question": "I installed cuOpt with conda a while back. Should I also pip install it so I definitely have the latest?",
    "expected_skill": "cuopt-install",
    "expected_script": null,
    "ground_truth": "The agent advises against it: pip and conda installs of cuOpt are alternatives, not complements. Running the second one overrides the first and can leave a mismatched CUDA or package state. The agent tells the user to pick a single package manager and, if they want a newer build, to upgrade within the manager they already use rather than layering pip on top of conda.",
    "expected_behavior": [
      "Says not to install via both pip and conda",
      "Explains that the second install overrides the first and risks a CUDA/package mismatch",
      "Recommends upgrading within the already-chosen package manager instead"
    ]
  },
  {
    "id": "inst-eval-007-module-not-found-triage",
    "question": "I installed cuOpt but `import cuopt` fails with ModuleNotFoundError: No module named 'cuopt'. How do I work out what went wrong?",
    "expected_skill": "cuopt-install",
    "expected_script": null,
    "ground_truth": "The agent gives a triage sequence rather than a single guess: check that the package is actually present with pip list | grep cuopt, confirm which interpreter is being used with which python (a common cause is installing into a different environment than the one running the import), and reinstall with the correct --extra-index-url=https://pypi.nvidia.com if the package is missing. It also notes that installing only libcuopt-cuXX gives the C library without the Python bindings, which produces this same error.",
    "expected_behavior": [
      "Suggests checking pip list | grep cuopt to confirm the package is installed",
      "Suggests checking which python to catch a wrong-environment mismatch",
      "Mentions reinstalling with the NVIDIA extra index URL",
      "Notes that a libcuopt-only install does not provide the Python module"
    ]
  }
]

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs network access, Needs a command-line tool, Needs Python

Security

What our scanner noticed· Medium risk

  • Large base64-encoded blobs
  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
NVIDIA cuOpt Team
Publisher
NVIDIA (Official)
Source
NVIDIA/skills · skills/cuopt-install · commit fce3cca
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE-APACHE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by NVIDIA cuOpt Team or NVIDIA.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download cuopt-install.zip