From e58559bc571a27a0d061748539c44f35f32e4638 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Wed, 13 May 2026 11:08:55 +0200 Subject: [PATCH 1/4] Test Mooncake + SVD on GPU --- test/mooncake/svd.jl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/mooncake/svd.jl b/test/mooncake/svd.jl index f096fdb8e..c2aaefb2e 100644 --- a/test/mooncake/svd.jl +++ b/test/mooncake/svd.jl @@ -20,4 +20,18 @@ for T in (BLASFloats..., GenericFloats...), n in (17, m, 23) TestSuite.test_mooncake_svd(AT, m; atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) end end + if CUDA.functional() && T ∈ BLASFloats + TestSuite.test_mooncake_svd(CuMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + if m == n + AT = Diagonal{T, CuVector{T}} + TestSuite.test_mooncake_svd(AT, m; atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end + end + if AMDGPU.functional() && T ∈ BLASFloats + TestSuite.test_mooncake_svd(ROCMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + if m == n + AT = Diagonal{T, ROCVector{T}} + TestSuite.test_mooncake_svd(AT, m; atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end + end end From b63f1137cf59819b6b0efa5b06494e6ad822e5df Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Wed, 13 May 2026 11:09:08 +0200 Subject: [PATCH 2/4] Test Mooncake + EIG on GPU --- test/mooncake/eig.jl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/mooncake/eig.jl b/test/mooncake/eig.jl index a0e606941..b2bbded45 100644 --- a/test/mooncake/eig.jl +++ b/test/mooncake/eig.jl @@ -18,4 +18,14 @@ for T in (BLASFloats..., GenericFloats...) AT = Diagonal{T, Vector{T}} TestSuite.test_mooncake_eig(AT, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) end + if CUDA.functional() && T ∈ BLASFloats + TestSuite.test_mooncake_eig(CuMatrix{T}, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) + AT = Diagonal{T, CuVector{T}} + TestSuite.test_mooncake_eig(AT, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) + end + if AMDGPU.functional() && T ∈ BLASFloats + TestSuite.test_mooncake_eig(ROCMatrix{T}, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) + AT = Diagonal{T, ROCVector{T}} + TestSuite.test_mooncake_eig(AT, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) + end end From a0744062bbb03bd938701e3efb3d74af695e0f1e Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Wed, 13 May 2026 11:09:16 +0200 Subject: [PATCH 3/4] Test Mooncake + EIGH on GPU --- test/mooncake/eigh.jl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/mooncake/eigh.jl b/test/mooncake/eigh.jl index e39f68316..dce1eee31 100644 --- a/test/mooncake/eigh.jl +++ b/test/mooncake/eigh.jl @@ -18,4 +18,14 @@ for T in (BLASFloats..., GenericFloats...) AT = Diagonal{T, Vector{T}} TestSuite.test_mooncake_eigh(AT, m; atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) end + if CUDA.functional() && T ∈ BLASFloats + TestSuite.test_mooncake_eigh(CuMatrix{T}, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) + AT = Diagonal{T, CuVector{T}} + TestSuite.test_mooncake_eigh(AT, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) + end + if AMDGPU.functional() && T ∈ BLASFloats + TestSuite.test_mooncake_eigh(ROCMatrix{T}, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) + AT = Diagonal{T, ROCVector{T}} + TestSuite.test_mooncake_eigh(AT, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) + end end From 51be0345381cdb74dd8cc1c8a56d7a0f4e474098 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Fri, 15 May 2026 07:56:12 -0400 Subject: [PATCH 4/4] Test Mooncake + LQ on GPU --- test/mooncake/lq.jl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/mooncake/lq.jl b/test/mooncake/lq.jl index 42d0fdb6b..266aa98c8 100644 --- a/test/mooncake/lq.jl +++ b/test/mooncake/lq.jl @@ -20,4 +20,18 @@ for T in (BLASFloats..., GenericFloats...), n in (17, m, 23) TestSuite.test_mooncake_lq(AT, (m, m); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) end end + if CUDA.functional() && T ∈ BLASFloats + TestSuite.test_mooncake_lq(CuMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + if m == n + AT = Diagonal{T, CuVector{T}} + TestSuite.test_mooncake_lq(AT, (m, m); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end + end + if AMDGPU.functional() && T ∈ BLASFloats + TestSuite.test_mooncake_lq(ROCMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + if m == n + AT = Diagonal{T, ROCVector{T}} + TestSuite.test_mooncake_lq(AT, (m, m); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end + end end