Cuopt Install
NVIDIAOfficialCreated by NVIDIA cuOpt Team
- Skill
- Workflow
- Software development
- Apache-2.0
- Medium risk
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
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/nvidia/cuopt-install/downloadUnzip 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-cu12with CUDA 12).Driver: NVIDIA driver compatible with the CUDA version.
cuopt-cuXX(Python) depends onlibcuopt-cuXX(C), so installing the Python package also installs the C library and headers. Installinglibcuopt-cuXXon its own does not install the Python API.
Required questions
Ask these if not already clear:
Interface — Python, C, or REST server? Server can be called from any language via HTTP.
CUDA version — What is installed? Check with
nvcc --versionornvidia-smi.Package manager — pip, conda, or Docker preferred?
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-cu13CUDA 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 cuoptVerify
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-cu13CUDA 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 libcuoptVerify
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-clientconda
conda install -c rapidsai -c conda-forge -c nvidia cuopt-server cuopt-sh-clientDocker
docker pull nvidia/cuopt:latest-cuda12.9-py3.13
docker run --gpus all -it --rm -p 8000:8000 nvidia/cuopt:latest-cuda12.9-py3.13Verify
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'→ checkpip list | grep cuopt,which python, reinstall with the correct extra-index-url.CUDA not available → run
nvidia-smiandnvcc --version; ensure the package CUDA suffix (cu12vscu13) matches the installed CUDA.Python vs C →
cuopt-cuXXpulls inlibcuopt-cuXXas 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-cuXXalone 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
- ATTRIBUTION.mdAdded by AutoGineer908 B
- BENCHMARK.md4.8 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md4.1 KiB
- benchmark/evals.json15.8 KiB
- evals/evals.json6.7 KiB
- references/verification_examples.md4.2 KiB
- skill-card.md3.9 KiB
- skill.oms.sig4.9 KiB
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