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++.

소스 정보

저장소
autohandai/community-skills
최근 소스 활동
2026년 6월 30일 03:25
감지된 SKILL.md 언어
영어
스타
11
포크
3

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
18 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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.
GitHub에서 보기