From 51c314cb1f647cafa9348c9efde7b03b46375292 Mon Sep 17 00:00:00 2001 From: "William S. Moses" Date: Tue, 1 Oct 2024 23:43:11 -0400 Subject: [PATCH 1/5] Mark assert applicable as non-differentiable --- Project.toml | 7 +++++++ ext/FFTWEnzymeExt.jl | 8 ++++++++ 2 files changed, 15 insertions(+) create mode 100644 ext/FFTWEnzymeExt.jl diff --git a/Project.toml b/Project.toml index 4eb2e76..73269a1 100644 --- a/Project.toml +++ b/Project.toml @@ -10,8 +10,15 @@ MKL_jll = "856f044c-d86e-5d09-b602-aeab76dc8ba7" Preferences = "21216c6a-2e73-6563-6e65-726566657250" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +[weakdeps] +Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + +[extensions] +FFTWEnzymeExt = "Enzyme" + [compat] AbstractFFTs = "1.5" +Enzyme = "0.12, 0.13" FFTW_jll = "3.3.9" LinearAlgebra = "<0.0.1, 1" MKL_jll = "2019.0.117, 2020, 2021, 2022, 2023, 2024, 2025" diff --git a/ext/FFTWEnzymeExt.jl b/ext/FFTWEnzymeExt.jl new file mode 100644 index 0000000..b0137cf --- /dev/null +++ b/ext/FFTWEnzymeExt.jl @@ -0,0 +1,8 @@ +module FFTWEnzymeExt + +using Enzyme, FFTW + +Enzyme.EnzymeRules.inactive_noinl(typeof(assert_applicable), x...) = true + +end # module + From ad4b47bbf9d46a0113207fa631a8a9efbf248a0f Mon Sep 17 00:00:00 2001 From: "William S. Moses" Date: Tue, 1 Oct 2024 23:53:15 -0400 Subject: [PATCH 2/5] fixup --- ext/FFTWEnzymeExt.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/FFTWEnzymeExt.jl b/ext/FFTWEnzymeExt.jl index b0137cf..dbd29cf 100644 --- a/ext/FFTWEnzymeExt.jl +++ b/ext/FFTWEnzymeExt.jl @@ -2,7 +2,7 @@ module FFTWEnzymeExt using Enzyme, FFTW -Enzyme.EnzymeRules.inactive_noinl(typeof(assert_applicable), x...) = true +Enzyme.EnzymeRules.inactive_noinl(typeof(FFTW.assert_applicable), x...) = true end # module From b1eae21e376213cf2be978c721c7ef07da0c7c31 Mon Sep 17 00:00:00 2001 From: "William S. Moses" Date: Tue, 1 Oct 2024 23:53:33 -0400 Subject: [PATCH 3/5] fixup --- ext/FFTWEnzymeExt.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/FFTWEnzymeExt.jl b/ext/FFTWEnzymeExt.jl index dbd29cf..f05cd96 100644 --- a/ext/FFTWEnzymeExt.jl +++ b/ext/FFTWEnzymeExt.jl @@ -2,7 +2,7 @@ module FFTWEnzymeExt using Enzyme, FFTW -Enzyme.EnzymeRules.inactive_noinl(typeof(FFTW.assert_applicable), x...) = true +Enzyme.EnzymeRules.inactive_noinl(::typeof(FFTW.assert_applicable), x...) = true end # module From 538a311ba634719b8d2e460074a1d52341464517 Mon Sep 17 00:00:00 2001 From: "William S. Moses" Date: Mon, 26 May 2025 15:26:37 -0500 Subject: [PATCH 4/5] mark time limit as inactive --- ext/FFTWEnzymeExt.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/FFTWEnzymeExt.jl b/ext/FFTWEnzymeExt.jl index f05cd96..9c0e39a 100644 --- a/ext/FFTWEnzymeExt.jl +++ b/ext/FFTWEnzymeExt.jl @@ -4,5 +4,7 @@ using Enzyme, FFTW Enzyme.EnzymeRules.inactive_noinl(::typeof(FFTW.assert_applicable), x...) = true +Enzyme.EnzymeRules.inactive_noinl(::typeof(FFTW.unsafe_set_timelimit), x...) = true + end # module From fb6ecef2943094cdde8f0257a1e08da62388ef3d Mon Sep 17 00:00:00 2001 From: William Moses Date: Mon, 26 May 2025 16:21:36 -0500 Subject: [PATCH 5/5] Update Project.toml --- Project.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Project.toml b/Project.toml index 73269a1..63c8a8c 100644 --- a/Project.toml +++ b/Project.toml @@ -10,6 +10,9 @@ MKL_jll = "856f044c-d86e-5d09-b602-aeab76dc8ba7" Preferences = "21216c6a-2e73-6563-6e65-726566657250" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" +[extras] +Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + [weakdeps] Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9"