From c1755572b3e162244a2183b8c0ed1c7958afd191 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Mon, 23 Mar 2026 12:23:10 +0100 Subject: [PATCH 1/3] Try Enzyme tests with CUDA --- test/enzyme/eig.jl | 3 +++ test/enzyme/eigh.jl | 3 +++ test/enzyme/lq.jl | 3 +++ test/enzyme/orthnull.jl | 3 +++ test/enzyme/polar.jl | 3 +++ test/enzyme/projections.jl | 4 ++++ test/enzyme/qr.jl | 3 +++ test/enzyme/svd.jl | 3 +++ 8 files changed, 25 insertions(+) diff --git a/test/enzyme/eig.jl b/test/enzyme/eig.jl index 1404d751c..57efa81f4 100644 --- a/test/enzyme/eig.jl +++ b/test/enzyme/eig.jl @@ -18,4 +18,7 @@ for T in (BLASFloats..., GenericFloats...) AT = Diagonal{T, Vector{T}} TestSuite.test_enzyme_eig(AT, m; atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) end + if CUDA.functional() + TestSuite.test_enzyme_eig(CuMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end end diff --git a/test/enzyme/eigh.jl b/test/enzyme/eigh.jl index 05ae7f384..a1984d944 100644 --- a/test/enzyme/eigh.jl +++ b/test/enzyme/eigh.jl @@ -18,4 +18,7 @@ for T in (BLASFloats..., GenericFloats...) AT = Diagonal{T, Vector{T}} TestSuite.test_enzyme_eigh(AT, m; atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) end + if CUDA.functional() + TestSuite.test_enzyme_eigh(CuMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end end diff --git a/test/enzyme/lq.jl b/test/enzyme/lq.jl index 7c747529d..c10aadcba 100644 --- a/test/enzyme/lq.jl +++ b/test/enzyme/lq.jl @@ -18,4 +18,7 @@ for T in (BLASFloats..., GenericFloats...), n in (17, m, 23) AT = Diagonal{T, Vector{T}} m == n && TestSuite.test_enzyme_lq(AT, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) end + if CUDA.functional() + TestSuite.test_enzyme_lq(CuMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end end diff --git a/test/enzyme/orthnull.jl b/test/enzyme/orthnull.jl index 086873d3f..aa8ac967a 100644 --- a/test/enzyme/orthnull.jl +++ b/test/enzyme/orthnull.jl @@ -18,4 +18,7 @@ for T in (BLASFloats..., GenericFloats...), n in (17, m, 23) AT = Diagonal{T, Vector{T}} m == n && TestSuite.test_enzyme_orthnull(AT, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) end + if CUDA.functional() + TestSuite.test_enzyme_orthnull(CuMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end end diff --git a/test/enzyme/polar.jl b/test/enzyme/polar.jl index 183086adb..1843ecd5d 100644 --- a/test/enzyme/polar.jl +++ b/test/enzyme/polar.jl @@ -18,4 +18,7 @@ for T in (BLASFloats..., GenericFloats...), n in (17, m, 23) AT = Diagonal{T, Vector{T}} #m == n && TestSuite.test_enzyme_polar(AT, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) end + if CUDA.functional() + TestSuite.test_enzyme_polar(CuMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end end diff --git a/test/enzyme/projections.jl b/test/enzyme/projections.jl index 52b222a52..4d4d71ad0 100644 --- a/test/enzyme/projections.jl +++ b/test/enzyme/projections.jl @@ -18,4 +18,8 @@ for T in (BLASFloats..., GenericFloats...) TestSuite.test_enzyme_projections(T, (m, m); atol, rtol) TestSuite.test_enzyme_projections(Diagonal{T, Vector{T}}, (m, m); atol, rtol) end + if CUDA.functional() + TestSuite.test_enzyme_projections(CuMatrix{T}, (m, m); atol, rtol) + TestSuite.test_enzyme_projections(Diagonal{T, CuVector{T}}, (m, m); atol, rtol) + end end diff --git a/test/enzyme/qr.jl b/test/enzyme/qr.jl index 2d8b9e7e1..3d3116a1f 100644 --- a/test/enzyme/qr.jl +++ b/test/enzyme/qr.jl @@ -18,4 +18,7 @@ for T in (BLASFloats..., GenericFloats...), n in (17, m, 23) AT = Diagonal{T, Vector{T}} m == n && TestSuite.test_enzyme_qr(AT, (m, m); atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) end + if CUDA.functional() + TestSuite.test_enzyme_qr(CuMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end end diff --git a/test/enzyme/svd.jl b/test/enzyme/svd.jl index bef41e5c7..64feccfb4 100644 --- a/test/enzyme/svd.jl +++ b/test/enzyme/svd.jl @@ -18,4 +18,7 @@ for T in (BLASFloats..., GenericFloats...), n in (17, m, 23) AT = Diagonal{T, Vector{T}} m == n && TestSuite.test_enzyme_svd(AT, m; atol = m * m * TestSuite.precision(T), rtol = m * m * TestSuite.precision(T)) end + if CUDA.functional() + TestSuite.test_enzyme_svd(CuMatrix{T}, (m, n); atol = m * n * TestSuite.precision(T), rtol = m * n * TestSuite.precision(T)) + end end From 6d3b6c3fd4fd5213149960e607e3d57758a86d41 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Sun, 19 Jul 2026 11:43:20 +0200 Subject: [PATCH 2/3] Extend timeout --- .buildkite/pipeline.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 11944ebb2..9242522d6 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -14,7 +14,7 @@ steps: agents: queue: "cuda" if: build.message !~ /\[skip tests\]/ - timeout_in_minutes: 30 + timeout_in_minutes: 90 - label: "Julia LTS -- CUDA" plugins: @@ -28,7 +28,7 @@ steps: agents: queue: "cuda" if: build.message !~ /\[skip tests\]/ - timeout_in_minutes: 30 + timeout_in_minutes: 90 - label: "Julia v1 -- AMDGPU" plugins: From 3417daefe6038ef86e8ad16d111815a1fdec4d9b Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Tue, 4 Aug 2026 16:19:16 +0200 Subject: [PATCH 3/3] Try with updated ETU branch --- test/Project.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/Project.toml b/test/Project.toml index a518221ac..2566413dd 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -22,6 +22,7 @@ Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [sources] MatrixAlgebraKit = {path = ".."} +EnzymeTestUtils = {url = "https://github.com/EnzymeAD/Enzyme.jl/", rev = "ksh/cu2vec", subdir = "lib/EnzymeTestUtils"} [compat] Aqua = "0.6, 0.7, 0.8" @@ -33,3 +34,4 @@ StableRNGs = "1" Test = "1" TestExtras = "0.3.2" Zygote = "0.7" +