All skills
nvidia avatar

/cuopt-install

@ca9a15e
by NVIDIA Corporationnvidia/skills3.5k stars
424

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

Use this Skill: https://skilld.dev/gh/nvidia/skills/cuopt-install

This session only. Nothing lands on disk.

referencesverification_examples.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Installation: Verification Examples

Verify Python Installation

# Basic import test
import cuopt
print(f"cuOpt version: {cuopt.__version__}")

# GPU access test
from cuopt import routing

dm = routing.DataModel(n_locations=3, n_fleet=1, n_orders=2)
print("DataModel created - GPU access OK")

# Quick solve test
import cudf
cost_matrix = cudf.DataFrame([[0,1,2],[1,0,1],[2,1,0]], dtype="float32")
dm.add_cost_matrix(cost_matrix)
dm.set_order_locations(cudf.Series([1, 2], dtype="int32"))

solution = routing.Solve(dm, routing.SolverSettings())
print(f"Solve status: {solution.get_status()}")
print("cuOpt installation verified!")

Verify LP/MILP

from cuopt.linear_programming.problem import Problem, CONTINUOUS, MAXIMIZE
from cuopt.linear_programming.solver_settings import SolverSettings

problem = Problem("Test")
x = problem.addVariable(lb=0, vtype=CONTINUOUS, name="x")
problem.setObjective(x, sense=MAXIMIZE)
problem.addConstraint(x <= 10)

problem.solve(SolverSettings())
print(f"Status: {problem.Status.name}")
print(f"x = {x.getValue()}")
print("LP/MILP working!")

Verify Server Installation

# Start server in background
python -m cuopt_server.cuopt_service --ip 0.0.0.0 --port 8000 &
SERVER_PID=$!

# Wait for startup
sleep 5

# Health check
curl -s http://localhost:8000/cuopt/health | jq .

# Quick routing test
curl -s -X POST "http://localhost:8000/cuopt/request" \
  -H "Content-Type: application/json" \
  -H "CLIENT-VERSION: custom" \
  -d '{
    "cost_matrix_data": {"data": {"0": [[0,1],[1,0]]}},
    "travel_time_matrix_data": {"data": {"0": [[0,1],[1,0]]}},
    "task_data": {"task_locations": [1]},
    "fleet_data": {"vehicle_locations": [[0,0]], "capacities": [[10]]},
    "solver_config": {"time_limit": 1}
  }' | jq .

# Stop server
kill $SERVER_PID

Verify C API Installation

# Find header
echo "Looking for cuopt_c.h..."
find ${CONDA_PREFIX:-/usr} -name "cuopt_c.h" 2>/dev/null

# Find library
echo "Looking for libcuopt.so..."
find ${CONDA_PREFIX:-/usr} -name "libcuopt.so" 2>/dev/null

# Test compile (if gcc available)
cat > /tmp/test_cuopt.c << 'EOF'
#include <cuopt/mathematical_optimization/cuopt_c.h>
#include <stdio.h>
int main() {
    printf("cuopt_c.h found and compilable\n");
    return 0;
}
EOF

gcc -I${CONDA_PREFIX}/include -c /tmp/test_cuopt.c -o /tmp/test_cuopt.o && \
  echo "C API headers OK" || echo "C API headers not found"

Check System Requirements

# GPU check
nvidia-smi

# CUDA version
nvcc --version

# Compute capability (need >= 7.0)
nvidia-smi --query-gpu=compute_cap --format=csv,noheader

# Python version
python --version

# Available memory
nvidia-smi --query-gpu=memory.total,memory.free --format=csv

Check Package Versions

import importlib.metadata

packages = ["cuopt-cu12", "cuopt-cu13", "cuopt-server-cu12", "cuopt-server-cu13", "cuopt-sh-client"]
for pkg in packages:
    try:
        version = importlib.metadata.version(pkg)
        print(f"{pkg}: {version}")
    except importlib.metadata.PackageNotFoundError:
        pass

Troubleshooting Commands

# Check if cuopt is installed
pip list | grep -i cuopt

# Check conda packages
conda list | grep -i cuopt

# Check CUDA runtime
python -c "import torch; print(torch.cuda.is_available())" 2>/dev/null || echo "PyTorch not installed"

# Check cudf (routing dependency)
python -c "import cudf; print(f'cudf: {cudf.__version__}')"

# Check rmm (memory manager)
python -c "import rmm; print(f'rmm: {rmm.__version__}')"

Docker Verification

# Pull and run
docker run --gpus all --rm nvidia/cuopt:latest-cuda12.9-py3.13 python -c "
import cuopt
print(f'cuOpt version: {cuopt.__version__}')
from cuopt import routing
dm = routing.DataModel(n_locations=3, n_fleet=1, n_orders=2)
print('GPU access OK')
"

Additional References

Topic Resource
Installation Guide NVIDIA cuOpt Docs
System Requirements cuOpt Requirements
Docker Images See ci/docker/ in this repo
Conda Recipes See conda/recipes/ in this repo

Source: SKILL.md on GitHub

1 warning1mo3 checks · Risk SAFE
  • Gen Agent Trust Hub1mo

    The skill provides standard installation and verification procedures for NVIDIA cuOpt using trusted vendor resources (NVIDIA PyPI, Conda, and Docker repositories). No malicious patterns, obfuscation, or unauthorized data exfiltration attempts were detected. All findings are consistent with the skill's primary purpose of software deployment and diagnostic verification.

  • Socket1mo

    No alerts

  • Snyk1mo

    Risk: MEDIUM · 1 issue

Signed by skilld at ca9a15e. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated last month
version
26.10.00
Other metadata
metadata
{
  "author": "NVIDIA cuOpt Team",
  "tags": [
    "cuopt",
    "install",
    "deployment",
    "python",
    "server"
  ]
}

README badge

README badge for nvidia/skills/cuopt-install