Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
7173e43
initial
klamike Mar 8, 2026
3503f8c
typo
klamike Mar 8, 2026
848d623
more typos
klamike Mar 8, 2026
e6da03c
closer to seq
klamike Mar 8, 2026
deb8ecd
contiguous bx buffer
klamike Mar 9, 2026
45f9c93
it seems we do need atomix
klamike Mar 9, 2026
e6aa6d4
batch nlp with madipmoperator
klamike Mar 9, 2026
c31eefa
support cuda
klamike Mar 9, 2026
f16f44e
fixmes
klamike Mar 9, 2026
94f3de2
20,000 tests
klamike Mar 9, 2026
2212ec4
refactor batch kkt
klamike Mar 9, 2026
9c7d0e8
rm old kkt.jl
klamike Mar 9, 2026
97bbcb2
git sources
klamike Mar 9, 2026
a724fef
[temp] disable testing on `lts` so `[sources]` table is used
klamike Mar 9, 2026
975f40c
no normal yet
klamike Mar 9, 2026
0113832
`using`?
klamike Mar 9, 2026
1d467b3
delete 19,000 tests
klamike Mar 9, 2026
2c9a9f6
rm old helper
klamike Mar 9, 2026
2dab051
just use `julia-runtest`
klamike Mar 9, 2026
0ff744b
refactor `update_termination_criteria`
klamike Mar 9, 2026
665ba00
improve the performance of `get_inf_compl!`/`update_termination_crite…
klamike Mar 10, 2026
32edff1
precompute views
klamike Mar 10, 2026
3a4927f
remove unused views
klamike Mar 10, 2026
c317f14
prettier status
klamike Mar 12, 2026
f6c5173
target `ger!`
klamike Mar 12, 2026
32bbea3
add gather mul fused kernel
klamike Mar 12, 2026
180bd6c
typo
klamike Mar 12, 2026
287f8bc
use `mk/paramnlp` for now
klamike Mar 14, 2026
266341e
add MT (batched VT) and VT (batched T) to abstractbatchmpcsolver
klamike Mar 24, 2026
0f10879
get rid of muladd
klamike Mar 24, 2026
b4480a6
use matrix throughout
klamike Mar 27, 2026
fb9fbca
move to BatchQuadraticModels
klamike Mar 27, 2026
d251246
kernels for reduce_rhs!, finish_aug_solve!
klamike Mar 27, 2026
78a2794
more kernels
klamike Mar 27, 2026
8baa4a0
remove device sync
klamike Mar 27, 2026
96e753d
view system
klamike Mar 27, 2026
7dea242
split state initialization into helper
klamike Mar 27, 2026
52dc15f
check structure with optional skip
klamike Mar 27, 2026
acc0e2e
use BQM's mapreduce for max, min, sum
klamike Mar 27, 2026
8a29e71
remove _DefaultFH
klamike Mar 30, 2026
0b09974
remove unused test file
klamike Mar 30, 2026
2ff5a98
typos
klamike Mar 30, 2026
ff70944
use S from nlpmodel
klamike Mar 30, 2026
6860103
don't modify inactive kkt
klamike Mar 31, 2026
4537ed4
simplify factorize_system since we can't nest between factorize and s…
klamike Mar 31, 2026
1ceeba2
typos
klamike Mar 31, 2026
fa1f4d5
rewrite tests
klamike Mar 31, 2026
f315c26
fix allocations
klamike Mar 31, 2026
e22a8ac
remove dead code
klamike Mar 31, 2026
748f372
fix race in gpu compact
klamike Mar 31, 2026
135f822
merge with main
klamike Apr 28, 2026
26e00d2
Merge branch 'main' into mk/nativebatch
klamike Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-22.04]
julia-version: ['lts', '1']
julia-version: ['1']
julia-arch: [x64]
steps:
- uses: actions/checkout@v4
Expand Down
9 changes: 2 additions & 7 deletions .github/workflows/gpu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
labels: cuda
strategy:
matrix:
julia-version: ['lts', '1']
julia-version: ['1']
julia-arch: [x64]
hsl-version: ['2025.7.11']

Expand All @@ -29,10 +29,5 @@ jobs:
with:
channel: ${{ matrix.julia-version }}
- uses: julia-actions/julia-buildpkg@latest
- name: Test MadIPM.jl
shell: julia --color=yes {0}
run: |
using Pkg
Pkg.develop(path=".")
Pkg.test("MadIPM")
- uses: julia-actions/julia-runtest@latest

21 changes: 18 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
name = "MadIPM"
uuid = "4406d55e-1099-4ca6-ac6a-6cf051b10024"
authors = ["François Pacaud <francoispacaud8@gmail.com>", "Alexis Montoison <amontoison@anl.gov>"]
version = "0.2.0"
authors = ["François Pacaud <francoispacaud8@gmail.com>", "Alexis Montoison <amontoison@anl.gov>"]

[deps]
BatchQuadraticModels = "412afcf0-3ec6-4826-be17-8d792afa05a8"
LDLFactorizations = "40e66cde-538c-5869-a4ad-c39174c6795b"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
MadNLP = "2621e9c9-9eb4-46b1-8089-e8c72242dfb6"
Expand All @@ -13,17 +14,25 @@ QuadraticModels = "f468eda6-eac5-11e8-05a5-ff9e497bcd19"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"

[weakdeps]
Atomix = "a9b6321e-bd34-4604-b9c9-b65b8de01458"
CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba"
CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e"
KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c"
MadNLPGPU = "d72a61cc-809d-412f-99be-fd81f4b8a598"
MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"

[sources]
BatchQuadraticModels = {rev = "main", url = "https://github.com/klamike/BatchQuadraticModels.jl.git"}

[extensions]
MadIPMCUDAExt = ["CUDA", "KernelAbstractions", "MadNLPGPU"]
MadIPMCUDAExt = ["Atomix", "CUDA", "CUDSS", "KernelAbstractions", "MadNLPGPU"]
MadIPMMathOptInterfaceExt = "MathOptInterface"

[compat]
Atomix = "1"
BatchQuadraticModels = "0.1"
CUDA = "5.4.0"
CUDSS = "0.6"
KernelAbstractions = "0.9"
LDLFactorizations = "0.10.1"
LinearAlgebra = "1.10"
Expand All @@ -39,8 +48,14 @@ Test = "1.10"
julia = "1.10"

[extras]
Atomix = "a9b6321e-bd34-4604-b9c9-b65b8de01458"
CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba"
CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e"
KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c"
MadNLPGPU = "d72a61cc-809d-412f-99be-fd81f4b8a598"
MadNLPTests = "b52a2a03-04ab-4a5f-9698-6a2deff93217"
MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["CUDA", "KernelAbstractions", "MadNLPTests", "MadNLPGPU", "MathOptInterface", "Test"]
test = ["Atomix", "CUDA", "CUDSS", "KernelAbstractions", "MadNLPTests", "MadNLPGPU", "MathOptInterface", "Test"]
13 changes: 11 additions & 2 deletions ext/MadIPMCUDAExt/MadIPMCUDAExt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,25 @@ module MadIPMCUDAExt
using LinearAlgebra
using SparseArrays
using NLPModels
using BatchQuadraticModels
using QuadraticModels
using CUDA
using CUDA.CUSPARSE
using CUDSS
using KernelAbstractions
import Atomix
import QuadraticModels: SparseMatrixCOO
import LinearAlgebra: BlasFloat
import MadIPM
import MadNLP

include("cuda_wrapper.jl")
include("operators.jl")
include("cuda_wrapper.jl")
include("cuda_batch_kernels.jl")

function MadIPM._csc_with_nzval(A::CUSPARSE.CuSparseMatrixCSC, nzval, n)
return CUSPARSE.CuSparseMatrixCSC(A.colPtr, A.rowVal, nzval, (n, n))
end

@kernel function _fill_sparse_structure!(rows, cols, Ap, Aj, Ax)
i = @index(Global, Linear)
Expand Down Expand Up @@ -138,4 +148,3 @@ function Base.convert(::Type{QuadraticModel{T, S}}, qp::QuadraticModel{T}) where
end

end

Loading
Loading