Skip to main content

nvidia-cuopt-numerical-optimization-api-c

LP, MILP, and QP (beta) with cuOpt — C API only. Use when the user is embedding LP, MILP, or QP in C/C++.

Quellinformationen

Repository
autohandai/community-skills
Letzte Quellaktivität
30. Juni 2026 um 03:25
Erkannte Sprache von SKILL.md
Englisch
Sterne
11
Forks
3

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
18 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
nvidia-cuopt-numerical-optimization-api-c
description
LP, MILP, and QP (beta) with cuOpt — C API only. Use when the user is embedding LP, MILP, or QP in C/C++.
license
Apache-2.0 AND CC-BY-4.0
metadata
{"version":"26.08.00","author":"NVIDIA"}
# cuOpt Numerical Optimization — C API Solve LP, MILP, and QP problems via the cuOpt C API. The same library, headers, build pattern, and core calls (`cuOptCreate*Problem`, `cuOptSolve`, `cuOptGetObjectiveValue`) apply across all three; QP extends the API with quadratic-objective creation calls. Confirm problem type and formulation (variables, objective, constraints, variable types) before coding. This skill is **C only**. ## Quick Reference: C API ```c #include <cuopt/linear_programming/cuopt_c.h> // CSR format for constraints cuopt_int_t row_offsets[] = {0, 2, 4}; cuopt_int_t col_indices[] = {0, 1, 0, 1}; cuopt_float_t values[] = {2.0, 3.0, 4.0, 2.0}; char var_types[] = {CUOPT_CONTINUOUS, CUOPT_INTEGER}; cuOptCreateRangedProblem( num_constraints, num_variables, CUOPT_MINIMIZE, 0.0, objective_coefficients, row_offsets, col_indices, values, constraint_lower, constraint_upper, var_lower, var_upper, var_types, &problem ); cuOptSolve(problem, settings, &solution); cuOptGetObjectiveValue(solution, &obj_value); ``` ## QP via C API (beta) QP uses the same library, include/lib paths, and build pattern as LP/MILP — only the problem-creation call differs (it accepts a quadratic objective). See the cuOpt C headers (`cpp/include/cuopt/linear_programming/`) for the QP-specific creation/solve calls and the repo docs at `docs/cuopt/source/cuopt-c/lp-qp-milp/` for end-to-end QP examples. **QP rules:** - **MINIMIZE only** (`CUOPT_MINIMIZE`). To maximize `f(x)`, negate objective coefficients and Q entries. - **Continuous variables only** — set `CUOPT_CONTINUOUS` for every variable; integer QP is not supported. - **Q should be PSD** for a convex problem. ## Debugging (MPS / C) **MPS parsing:** Required sections in order: NAME, ROWS, COLUMNS, RHS, (optional) BOUNDS, ENDATA. Integer markers: `'MARKER'`, `'INTORG'`, `'INTEND'`. **OOM or slow:** Check problem size (variables, constraints); use sparse matrix; set time limit and gap tolerance. ## Examples - [examples.md](resources/examples.md) — LP/MILP with build instructions - [assets/README.md](assets/README.md) — Build commands for all reference code below - [lp_basic](assets/lp_basic/) — Simple LP: create problem, solve, get solution - [lp_duals](assets/lp_duals/) — Dual values and reduced costs - [lp_warmstart](assets/lp_warmstart/) — PDLP warmstart (see README) - [milp_basic](assets/milp_basic/) — Simple MILP with integer variable - [milp_production_planning](assets/milp_production_planning/) — Production planning with resource constraints - [mps_solver](assets/mps_solver/) — Solve from MPS file via `cuOptReadProblem` For **CLI** (MPS files), use `cuopt_cli` and product docs. ## Escalate For contribution or build-from-source, use product or repo documentation.
Auf GitHub ansehen