cuOpt.jl
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
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.