From 7d61334e14ba8c3ca0c4ce3ae89c6ddcec6a3235 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas Date: Thu, 16 Oct 2025 01:31:11 -0400 Subject: [PATCH 1/2] Fix CUDSS extension for v0.5 and v0.6 compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updates the ArrayInterfaceCUDSSExt to use the modern CUDSS API. The deprecated CudssMatrix type has been replaced with standard CUDA.CuVector types, which is the current API pattern in CUDSS v0.5+. Changes: - Replace CudssMatrix with CUDA.CuVector in lu_instance - Add CUDA as explicit extension dependency - Add CUDSS v0.5 and v0.6 to compatibility bounds - Bump version to 7.20.1 Fixes the runtime incompatibility introduced by the breaking changes in CUDSS v0.5 and v0.6 where CudssMatrix was removed in favor of standard CUDA.jl types (CuVector). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Project.toml | 6 +++--- ext/ArrayInterfaceCUDSSExt.jl | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Project.toml b/Project.toml index 31c4bf0b..8b2db7c3 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "ArrayInterface" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.20.0" +version = "7.20.1" [deps] Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" @@ -24,7 +24,7 @@ Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" -ArrayInterfaceCUDSSExt = "CUDSS" +ArrayInterfaceCUDSSExt = ["CUDSS", "CUDA"] ArrayInterfaceChainRulesCoreExt = "ChainRulesCore" ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" @@ -39,7 +39,7 @@ Adapt = "4" BandedMatrices = "1" BlockBandedMatrices = "0.13" CUDA = "5" -CUDSS = "0.2, 0.3, 0.4" +CUDSS = "0.2, 0.3, 0.4, 0.5, 0.6" ChainRules = "1" ChainRulesCore = "1" ChainRulesTestUtils = "1" diff --git a/ext/ArrayInterfaceCUDSSExt.jl b/ext/ArrayInterfaceCUDSSExt.jl index 01fb2395..e6a4908d 100644 --- a/ext/ArrayInterfaceCUDSSExt.jl +++ b/ext/ArrayInterfaceCUDSSExt.jl @@ -2,14 +2,18 @@ module ArrayInterfaceCUDSSExt using ArrayInterface using CUDSS +using CUDA function ArrayInterface.lu_instance(A::CUDSS.CuSparseMatrixCSR) ArrayInterface.LinearAlgebra.checksquare(A) - fact = CudssSolver(A, "G", 'F') T = eltype(A) - n = size(A,1) - x = CudssMatrix(T, n) - b = CudssMatrix(T, n) + n = size(A, 1) + + # Use standard CUDA types (CuVector) instead of deprecated CudssMatrix + x = CUDA.CuVector{T}(undef, n) + b = CUDA.CuVector{T}(undef, n) + + fact = CudssSolver(A, "G", 'F') cudss("analysis", fact, x, b) fact end From 4581303da98286defa6b6cb88ec13ad5dbfa8f98 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Oct 2025 01:33:10 -0400 Subject: [PATCH 2/2] Update Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 8b2db7c3..8557c2f5 100644 --- a/Project.toml +++ b/Project.toml @@ -39,7 +39,7 @@ Adapt = "4" BandedMatrices = "1" BlockBandedMatrices = "0.13" CUDA = "5" -CUDSS = "0.2, 0.3, 0.4, 0.5, 0.6" +CUDSS = "0.5, 0.6" ChainRules = "1" ChainRulesCore = "1" ChainRulesTestUtils = "1"