cuopt-installation-developer
$
npx mdskill add NVIDIA/skills/cuopt-installation-developerBuild cuOpt from source and run tests for development.
- Enables developers to compile cuOpt and execute test suites.
- Requires Linux, CUDA toolkit, and driver compatibility checks.
- Distinguishes between upstream contribution and local modification goals.
- Delivers a functional dev environment ready for code changes.
SKILL.md
.github/skills/cuopt-installation-developerView on GitHub ↗
--- name: cuopt-installation-developer version: "26.06.00" description: Developer installation — build cuOpt from source, run tests. Use when the user wants to set up a dev environment to contribute or modify cuOpt. --- # cuOpt Installation — Developer Set up an environment to **build cuOpt from source** and run tests. For contribution behavior and PRs, see the developer skill after the build works. ## When to use this skill - User wants to *build* cuOpt (clone, build deps, build, tests). - Not for *using* cuOpt (pip/conda) — use the user installation skill instead. ## Required questions (environment) Ask these if not already clear: 1. **OS and GPU** — Linux? Which CUDA version (e.g. 12.x)? 2. **Goal** — Contributing upstream, or local fork/modification? 3. **Component** — C++/CUDA core, Python bindings, server, docs, or CI? <!-- skill-evolution:start — driver/toolkit CUDA mismatch surfaced at runtime --> ## Validate CUDA/driver compatibility before building Before creating the conda env or running `./build.sh`, check that the conda env's CUDA toolkit **major** version matches what the installed driver supports. CUDA guarantees minor-version compatibility within a major (e.g. CUDA 12.9 runtime works on a driver that tops out at CUDA 12.8), but a major-version jump does not (e.g. CUDA 13.x runtime on a CUDA-12-only driver). A major mismatch builds successfully but fails at runtime inside RMM with: ``` RMM failure ... cudaMallocAsync not supported with this CUDA driver/runtime version ``` Steps: 1. Query the driver's max CUDA: `nvidia-smi` → top-right "CUDA Version:" field. Note the **major** version (e.g. `12.8` → major 12). 2. List available env files: `ls conda/environments/all_cuda-*_arch-$(uname -m).yaml`. Each filename encodes the CUDA version (e.g. `all_cuda-129_...` = CUDA 12.9, `all_cuda-131_...` = CUDA 13.1). 3. Pick an env whose CUDA **major** is ≤ the driver's max CUDA major. The env's minor version may exceed the driver's minor version — that's supported. 4. If a `.cuopt_env*` was already built against an incompatible major CUDA, create a new env against a compatible toolkit and `./build.sh clean` before rebuilding — do not reuse cached build artifacts across CUDA major versions. Do this check before starting the build — a full build takes tens of minutes and the failure only appears when tests run. <!-- skill-evolution:end --> ## Typical setup (conceptual) 1. **Clone** the cuOpt repo (and submodules if any). 2. **Build dependencies** — CUDA toolkit, compiler, CMake; see repo docs for the canonical list. 3. **Configure and build** — e.g. top-level `build.sh` or CMake; Debug/Release. 4. **Run tests** — e.g. `pytest` for Python, `ctest` or project test runner for C++. 5. **Optional** — Python env for bindings; pre-commit or style checks. Use the repository’s own documentation (README, CONTRIBUTING, or docs/) for exact commands and versions. ## After setup Once the developer can build and run tests, use **cuopt-developer** for behavior rules, code patterns, and contribution workflow (DCO, PRs).
More from NVIDIA/skills
- accessing-mlflowQuery and browse evaluation results stored in MLflow. Use when the user wants to look up runs by invocation ID, compare metrics across models, fetch artifacts (configs, logs, results), or set up the MLflow MCP server. ALWAYS triggers on mentions of MLflow, experiment results, run comparison, invocation IDs in the context of results, or MLflow MCP setup.
- ad-add-fusion-transformation>
- ad-conf-check>
- ad-graph-dump>
- ad-model-onboard>
- ad-pipeline-failure-pr>
- add-benchmark>
- aiq-deploy|
- aiq-research|
- byobCreate custom LLM evaluation benchmarks using the BYOB decorator framework. Use when the user wants to (1) create a new benchmark from a dataset, (2) pick or write a scorer, (3) compile and run a BYOB benchmark, (4) containerize a benchmark, or (5) use LLM-as-Judge evaluation. Triggers on mentions of BYOB, custom benchmark, bring your own benchmark, scorer, or benchmark compilation.