NVIDIA / NVIDIA/cuopt

[DOC] Add a description for each parameter in `cuopt_cli`

Open
#1,030 7 comments 0 reactions 1 assignee View on GitHub

@tmckayus is already working on this.

Since Apr 2, 2026.

awaiting response doc
Dominant language
Cuda
Stars
1k
Forks
233
Avg merge
4d 4h
Merged PRs (30d)
95

Description

When calling the cuopt_cli, most parameters have an empty description on what it does. Additionally, the user does not know the range of values a parameter can assume, hence, can it can pass invalid values to the solver. This might prevents the user to properly tune it or enable the required features for their application.

❯ cuopt_cli                                                   
filename: 1 argument(s) expected. 0 provided.
Usage: cuopt_cli [--help] [--version] [--initial-solution VAR] [--relaxation] [--presolve] [--pdlp-precision VAR] [--iteration-limit VAR] [--pdlp-solver-mode VAR] [--method VAR] [--num-cpu-threads VAR] [--augmented VAR] [--folding VAR] [--dualize VAR] [--ordering VAR] [--barrier-dual-initial-point VAR] [--mip-cut-passes VAR] [--mip-mixed-integer-rounding-cuts VAR] [--mip-mixed-integer-gomory-cuts VAR] [--mip-knapsack-cuts VAR] [--mip-clique-cuts VAR] [--mip-strong-chvatal-gomory-cuts VAR] [--mip-reduced-cost-strengthening VAR] [--num-gpus VAR] [--mip-batch-pdlp-strong-branching VAR] [--presolve VAR] [--mip-determinism-mode VAR] [--random-seed VAR] [--mip-reliability-branching VAR] [--time-limit VAR] [--work-limit VAR] [--absolute-dual-tolerance VAR] [--relative-dual-tolerance VAR] [--absolute-primal-tolerance VAR] [--relative-primal-tolerance VAR] [--absolute-gap-tolerance VAR] [--relative-gap-tolerance VAR] [--mip-absolute-tolerance VAR] [--mip-relative-tolerance VAR] [--mip-integrality-tolerance VAR] [--mip-absolute-gap VAR] [--mip-relative-gap VAR] [--primal-infeasible-tolerance VAR] [--dual-infeasible-tolerance VAR] [--mip-cut-change-threshold VAR] [--mip-cut-min-orthogonality VAR] [--infeasibility-detection VAR] [--strict-infeasibility VAR] [--per-constraint-residual VAR] [--save-best-primal-so-far VAR] [--first-primal-feasible VAR] [--mip-scaling VAR] [--mip-heuristics-only VAR] [--log-to-console VAR] [--crossover VAR] [--eliminate-dense-columns VAR] [--cudss-deterministic VAR] [--dual-postsolve VAR] [--log-file VAR] [--solution-file VAR] [--user-problem-file VAR] [--presolve-file VAR] filename

Positional arguments:
  filename                           input mps file [required]

Optional arguments:
  -h, --help                         shows help message and exits 
  -v, --version                      prints version information and exits 
  --initial-solution                 path to the initial solution .sol file [nargs=0..1] [default: ""]
  --relaxation                       solve the LP relaxation of the MIP 
  --presolve                         enable/disable presolve (default: true for MIP problems, false for LP problems) 
  --pdlp-precision                   PDLP precision mode. default: native type, single: FP32 internally, double: FP64 explicitly, mixed: mixed-precision SpMV (FP32 matrix, FP64 vectors). [nargs=0..1] [default: "-1"]
  --iteration-limit                  [nargs=0..1] [default: 2147483647]
  --pdlp-solver-mode                 [nargs=0..1] [default: 4]
  --method                           [nargs=0..1] [default: 0]
  --num-cpu-threads                  [nargs=0..1] [default: -1]
  --augmented                        [nargs=0..1] [default: -1]
  --folding                          [nargs=0..1] [default: -1]
  --dualize                          [nargs=0..1] [default: -1]
  --ordering                         [nargs=0..1] [default: -1]
  --barrier-dual-initial-point       [nargs=0..1] [default: -1]
  --mip-cut-passes                   [nargs=0..1] [default: 10]
  --mip-mixed-integer-rounding-cuts  [nargs=0..1] [default: -1]
  --mip-mixed-integer-gomory-cuts    [nargs=0..1] [default: -1]
  --mip-knapsack-cuts                [nargs=0..1] [default: -1]
  --mip-clique-cuts                  [nargs=0..1] [default: -1]
  --mip-strong-chvatal-gomory-cuts   [nargs=0..1] [default: -1]
  --mip-reduced-cost-strengthening   [nargs=0..1] [default: -1]
  --num-gpus                         [nargs=0..1] [default: 1]
  --mip-batch-pdlp-strong-branching  [nargs=0..1] [default: 0]
  --presolve                         [nargs=0..1] [default: -1]
  --mip-determinism-mode             [nargs=0..1] [default: 0]
  --random-seed                      [nargs=0..1] [default: -1]
  --mip-reliability-branching        [nargs=0..1] [default: -1]
  --time-limit                       [nargs=0..1] [default: inf]
  --work-limit                       [nargs=0..1] [default: inf]
  --absolute-dual-tolerance          [nargs=0..1] [default: 0.0001]
  --relative-dual-tolerance          [nargs=0..1] [default: 0.0001]
  --absolute-primal-tolerance        [nargs=0..1] [default: 0.0001]
  --relative-primal-tolerance        [nargs=0..1] [default: 0.0001]
  --absolute-gap-tolerance           [nargs=0..1] [default: 0.0001]
  --relative-gap-tolerance           [nargs=0..1] [default: 0.0001]
  --mip-absolute-tolerance           [nargs=0..1] [default: 0.0001]
  --mip-relative-tolerance           [nargs=0..1] [default: 0.0001]
  --mip-integrality-tolerance        [nargs=0..1] [default: 1e-05]
  --mip-absolute-gap                 [nargs=0..1] [default: 1e-10]
  --mip-relative-gap                 [nargs=0..1] [default: 0.0001]
  --primal-infeasible-tolerance      [nargs=0..1] [default: 1e-10]
  --dual-infeasible-tolerance        [nargs=0..1] [default: 1e-10]
  --mip-cut-change-threshold         [nargs=0..1] [default: -1]
  --mip-cut-min-orthogonality        [nargs=0..1] [default: 0.5]
  --infeasibility-detection          [nargs=0..1] [default: false]
  --strict-infeasibility             [nargs=0..1] [default: false]
  --per-constraint-residual          [nargs=0..1] [default: false]
  --save-best-primal-so-far          [nargs=0..1] [default: false]
  --first-primal-feasible            [nargs=0..1] [default: false]
  --mip-scaling                      [nargs=0..1] [default: true]
  --mip-heuristics-only              [nargs=0..1] [default: false]
  --log-to-console                   [nargs=0..1] [default: true]
  --crossover                        [nargs=0..1] [default: false]
  --eliminate-dense-columns          [nargs=0..1] [default: true]
  --cudss-deterministic              [nargs=0..1] [default: false]
  --dual-postsolve                   [nargs=0..1] [default: true]
  --log-file                         [nargs=0..1] [default: ""]
  --solution-file                    [nargs=0..1] [default: ""]
  --user-problem-file                [nargs=0..1] [default: ""]
  --presolve-file                    [nargs=0..1] [default: ""]

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.