cuOpt.jl is a wrapper for NVIDIA cuOpt, a GPU-accelerated Optimization Engine.
The package has two components:
- a thin wrapper around the complete C API
- an interface to MathOptInterface
This wrapper is developed and maintained by NVIDIA with help from the JuMP community.
For assistance, please post your questions on the JuMP community forum.
If you encounter a reproducible bug, feel free to open a GitHub issue.
cuOpt.jl
is licensed under the Apache License, Version 2.0.
Please refer to NVIDIA cuOpt system requirements.
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")
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"
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)
See the NVIDIA cuOpt documentation for more details.