From ae0d9a84d57ef288324f9d0abec1e0a00b9861ce Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Mon, 22 Dec 2025 08:37:15 -0500 Subject: [PATCH 1/2] Actually test GPU QR/LQ --- test/lq.jl | 6 +-- test/runtests.jl | 123 +++++++++++++++++++++++------------------------ 2 files changed, 63 insertions(+), 66 deletions(-) diff --git a/test/lq.jl b/test/lq.jl index 6829e935..f9eedd5f 100644 --- a/test/lq.jl +++ b/test/lq.jl @@ -18,7 +18,7 @@ for T in (BLASFloats..., GenericFloats...), n in (37, m, 63) TestSuite.seed_rng!(123) if T ∈ BLASFloats if CUDA.functional() - CUDA_LQ_ALGS = LQViaTransposedQR.(CUSOLVER_HouseholderLQ(; positive = false), CUSOLVER_HouseholderLQ(; positive = true)) + CUDA_LQ_ALGS = LQViaTransposedQR.((CUSOLVER_HouseholderQR(; positive = false), CUSOLVER_HouseholderQR(; positive = true))) TestSuite.test_lq(CuMatrix{T}, (m, n); test_pivoted = false, test_blocksize = false) TestSuite.test_lq_algs(CuMatrix{T}, (m, n), CUDA_LQ_ALGS) if n == m @@ -27,9 +27,9 @@ for T in (BLASFloats..., GenericFloats...), n in (37, m, 63) end end if AMDGPU.functional() - ROC_LQ_ALGS = LQViaTransposedQR.(ROCSOLVER_HouseholderLQ(; positive = false), ROCSOLVER_HouseholderLQ(; positive = true)) + ROC_LQ_ALGS = LQViaTransposedQR.((ROCSOLVER_HouseholderQR(; positive = false), ROCSOLVER_HouseholderQR(; positive = true))) TestSuite.test_lq(ROCMatrix{T}, (m, n); test_pivoted = false, test_blocksize = false) - TestSuite.test_lq_algs(ROCMatrix{T}, (m, n), CUDA_LQ_ALGS) + TestSuite.test_lq_algs(ROCMatrix{T}, (m, n), ROC_LQ_ALGS) if n == m TestSuite.test_lq(Diagonal{T, ROCVector{T}}, m; test_pivoted = false, test_blocksize = false) TestSuite.test_lq_algs(Diagonal{T, ROCVector{T}}, m, (DiagonalAlgorithm(),)) diff --git a/test/runtests.jl b/test/runtests.jl index 392bd490..e95d1df0 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -2,73 +2,70 @@ using SafeTestsets # don't run all tests on GPU, only the GPU # specific ones -is_buildkite = get(ENV, "BUILDKITE", "false") == "true" -if !is_buildkite - @safetestset "Algorithms" begin - include("algorithms.jl") - end - @safetestset "Projections" begin - include("projections.jl") - end - @safetestset "Truncate" begin - include("truncate.jl") - end - @safetestset "QR / LQ Decomposition" begin - include("qr.jl") - include("lq.jl") - end - @safetestset "Singular Value Decomposition" begin - include("svd.jl") - end - @safetestset "Hermitian Eigenvalue Decomposition" begin - include("eigh.jl") - end - @safetestset "General Eigenvalue Decomposition" begin - include("eig.jl") - end - @safetestset "Generalized Eigenvalue Decomposition" begin - include("gen_eig.jl") - end - @safetestset "Schur Decomposition" begin - include("schur.jl") - end - @safetestset "Polar Decomposition" begin - include("polar.jl") - end - @safetestset "Image and Null Space" begin - include("orthnull.jl") - end - @safetestset "Mooncake" begin - include("mooncake.jl") - end - @safetestset "ChainRules" begin - include("chainrules.jl") +@safetestset "Algorithms" begin + include("algorithms.jl") +end +@safetestset "Projections" begin + include("projections.jl") +end +@safetestset "Truncate" begin + include("truncate.jl") +end +@safetestset "QR / LQ Decomposition" begin + include("qr.jl") + include("lq.jl") +end +@safetestset "Singular Value Decomposition" begin + include("svd.jl") +end +@safetestset "Hermitian Eigenvalue Decomposition" begin + include("eigh.jl") +end +@safetestset "General Eigenvalue Decomposition" begin + include("eig.jl") +end +@safetestset "Generalized Eigenvalue Decomposition" begin + include("gen_eig.jl") +end +@safetestset "Schur Decomposition" begin + include("schur.jl") +end +@safetestset "Polar Decomposition" begin + include("polar.jl") +end +@safetestset "Image and Null Space" begin + include("orthnull.jl") +end +@safetestset "Mooncake" begin + include("mooncake.jl") +end +@safetestset "ChainRules" begin + include("chainrules.jl") +end +@safetestset "MatrixAlgebraKit.jl" begin + @safetestset "Code quality (Aqua.jl)" begin + using MatrixAlgebraKit + using Aqua + Aqua.test_all(MatrixAlgebraKit) end - @safetestset "MatrixAlgebraKit.jl" begin - @safetestset "Code quality (Aqua.jl)" begin - using MatrixAlgebraKit - using Aqua - Aqua.test_all(MatrixAlgebraKit) - end - @safetestset "Code linting (JET.jl)" begin - using MatrixAlgebraKit - using JET - JET.test_package(MatrixAlgebraKit; target_defined_modules = true) - end + @safetestset "Code linting (JET.jl)" begin + using MatrixAlgebraKit + using JET + JET.test_package(MatrixAlgebraKit; target_defined_modules = true) end +end - using GenericLinearAlgebra - @safetestset "Singular Value Decomposition" begin - include("genericlinearalgebra/svd.jl") - end - @safetestset "Hermitian Eigenvalue Decomposition" begin - include("genericlinearalgebra/eigh.jl") - end +using GenericLinearAlgebra +@safetestset "Singular Value Decomposition" begin + include("genericlinearalgebra/svd.jl") +end +@safetestset "Hermitian Eigenvalue Decomposition" begin + include("genericlinearalgebra/eigh.jl") +end - using GenericSchur - @safetestset "General Eigenvalue Decomposition" begin - include("genericschur/eig.jl") - end +using GenericSchur +@safetestset "General Eigenvalue Decomposition" begin + include("genericschur/eig.jl") end using CUDA From a995946f572da2ed278741a4dc38ab3d3517ade5 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Mon, 22 Dec 2025 15:01:19 +0100 Subject: [PATCH 2/2] Run only the LQ/QR testsuites on BK --- test/runtests.jl | 122 ++++++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 59 deletions(-) diff --git a/test/runtests.jl b/test/runtests.jl index e95d1df0..37796e2a 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,71 +1,75 @@ using SafeTestsets +is_buildkite = get(ENV, "BUILDKITE", "false") == "true" # don't run all tests on GPU, only the GPU # specific ones -@safetestset "Algorithms" begin - include("algorithms.jl") -end -@safetestset "Projections" begin - include("projections.jl") -end -@safetestset "Truncate" begin - include("truncate.jl") -end -@safetestset "QR / LQ Decomposition" begin - include("qr.jl") - include("lq.jl") -end -@safetestset "Singular Value Decomposition" begin - include("svd.jl") -end -@safetestset "Hermitian Eigenvalue Decomposition" begin - include("eigh.jl") -end -@safetestset "General Eigenvalue Decomposition" begin - include("eig.jl") -end -@safetestset "Generalized Eigenvalue Decomposition" begin - include("gen_eig.jl") -end -@safetestset "Schur Decomposition" begin - include("schur.jl") -end -@safetestset "Polar Decomposition" begin - include("polar.jl") -end -@safetestset "Image and Null Space" begin - include("orthnull.jl") -end -@safetestset "Mooncake" begin - include("mooncake.jl") -end -@safetestset "ChainRules" begin - include("chainrules.jl") -end -@safetestset "MatrixAlgebraKit.jl" begin - @safetestset "Code quality (Aqua.jl)" begin - using MatrixAlgebraKit - using Aqua - Aqua.test_all(MatrixAlgebraKit) +if !is_buildkite + @safetestset "Algorithms" begin + include("algorithms.jl") end - @safetestset "Code linting (JET.jl)" begin - using MatrixAlgebraKit - using JET - JET.test_package(MatrixAlgebraKit; target_defined_modules = true) + @safetestset "Projections" begin + include("projections.jl") + end + @safetestset "Truncate" begin + include("truncate.jl") + end + @safetestset "Singular Value Decomposition" begin + include("svd.jl") + end + @safetestset "Hermitian Eigenvalue Decomposition" begin + include("eigh.jl") + end + @safetestset "General Eigenvalue Decomposition" begin + include("eig.jl") + end + @safetestset "Generalized Eigenvalue Decomposition" begin + include("gen_eig.jl") + end + @safetestset "Schur Decomposition" begin + include("schur.jl") + end + @safetestset "Polar Decomposition" begin + include("polar.jl") + end + @safetestset "Image and Null Space" begin + include("orthnull.jl") + end + @safetestset "Mooncake" begin + include("mooncake.jl") + end + @safetestset "ChainRules" begin + include("chainrules.jl") + end + @safetestset "MatrixAlgebraKit.jl" begin + @safetestset "Code quality (Aqua.jl)" begin + using MatrixAlgebraKit + using Aqua + Aqua.test_all(MatrixAlgebraKit) + end + @safetestset "Code linting (JET.jl)" begin + using MatrixAlgebraKit + using JET + JET.test_package(MatrixAlgebraKit; target_defined_modules = true) + end end -end -using GenericLinearAlgebra -@safetestset "Singular Value Decomposition" begin - include("genericlinearalgebra/svd.jl") -end -@safetestset "Hermitian Eigenvalue Decomposition" begin - include("genericlinearalgebra/eigh.jl") + using GenericLinearAlgebra + @safetestset "Singular Value Decomposition" begin + include("genericlinearalgebra/svd.jl") + end + @safetestset "Hermitian Eigenvalue Decomposition" begin + include("genericlinearalgebra/eigh.jl") + end + + using GenericSchur + @safetestset "General Eigenvalue Decomposition" begin + include("genericschur/eig.jl") + end end -using GenericSchur -@safetestset "General Eigenvalue Decomposition" begin - include("genericschur/eig.jl") +@safetestset "QR / LQ Decomposition" begin + include("qr.jl") + include("lq.jl") end using CUDA