cuOpt.jl

cuOpt.jl is a wrapper for NVIDIA cuOpt, a GPU-accelerated Optimization Engine.

The package has two components:

Affiliation

This wrapper is developed and maintained by NVIDIA with help from the JuMP community.

Getting Help

For assistance, please post your questions on the JuMP community forum.

If you encounter a reproducible bug, feel free to open a GitHub issue.

License

cuOpt.jl is licensed under the Apache License, Version 2.0.

System Requirements

Please refer to NVIDIA cuOpt system requirements.

Installation

To use cuOpt.jl, you must first separately install cuOpt.

Installing cuOpt requires Linux.

Please refer to the NVIDIA cuOpt documentation for installation instructions.

Please ensure the library path for libcuopt.so is added to LD_LIBRARY_PATH.

Once cuOpt is installed, add cuOpt.jl as follows:

import Pkg
Pkg.add("cuOpt")

Colab

To install cuOpt on Google Colab, do:

julia> cmd = run(`pip install --extra-index-url=https://pypi.nvidia.com libcuopt-cu12==25.8.\* nvidia-cuda-runtime-cu12==12.8.\*`);

julia> ENV["LD_LIBRARY_PATH"] = "/usr/lib64-nvidia;/usr/local/lib/python3.11/dist-packages/libcuopt/lib64"

Use with JuMP

To use NVIDIA cuOpt with JuMP, use cuOpt.Optimizer:

using JuMP, cuOpt
model = Model(cuOpt.Optimizer)
@variable(model, x >= 0)
@variable(model, 0 <= y <= 3)
@objective(model, Min, 12x + 20y)
@constraint(model, 6x + 8y >= 100)
@constraint(model, 7x + 12y >= 120)
optimize!(model)

Documentation

See the NVIDIA cuOpt documentation for more details.