From 27d952ef6d0a496327b1cd552fd9489f977bbecd Mon Sep 17 00:00:00 2001 From: David Widmann Date: Mon, 6 Feb 2023 10:08:05 +0100 Subject: [PATCH 1/2] Load only LogDensityProblemsAD and weak dependency in extension --- ext/EnzymeExt.jl | 8 +++----- ext/ForwardDiffBenchmarkToolsExt.jl | 4 +--- ext/ForwardDiffExt.jl | 9 +++------ ext/ReverseDiffExt.jl | 9 +++------ ext/TrackerExt.jl | 8 +++----- ext/ZygoteExt.jl | 8 +++----- src/LogDensityProblemsAD.jl | 2 ++ 7 files changed, 18 insertions(+), 30 deletions(-) diff --git a/ext/EnzymeExt.jl b/ext/EnzymeExt.jl index 28afd40..12eca7b 100644 --- a/ext/EnzymeExt.jl +++ b/ext/EnzymeExt.jl @@ -3,12 +3,10 @@ Gradient AD implementation using Enzyme. """ module EnzymeExt -using LogDensityProblems: logdensity -using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED -using UnPack: @unpack +using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED, logdensity +using LogDensityProblemsAD.UnPack: @unpack -import LogDensityProblems: logdensity_and_gradient -import LogDensityProblemsAD: ADgradient +import LogDensityProblemsAD: ADgradient, logdensity_and_gradient if EXTENSIONS_SUPPORTED import Enzyme else diff --git a/ext/ForwardDiffBenchmarkToolsExt.jl b/ext/ForwardDiffBenchmarkToolsExt.jl index 2237f0d..037ba83 100644 --- a/ext/ForwardDiffBenchmarkToolsExt.jl +++ b/ext/ForwardDiffBenchmarkToolsExt.jl @@ -5,9 +5,7 @@ Loaded when both ForwardDiff and BenchmarkTools are loaded. """ module ForwardDiffBenchmarkToolsExt -using DocStringExtensions: SIGNATURES -using LogDensityProblems: dimension, logdensity_and_gradient -using LogDensityProblemsAD: ADgradient, EXTENSIONS_SUPPORTED +using LogDensityProblemsAD: ADgradient, EXTENSIONS_SUPPORTED, SIGNATURES, dimension, logdensity_and_gradient if EXTENSIONS_SUPPORTED using BenchmarkTools: @belapsed diff --git a/ext/ForwardDiffExt.jl b/ext/ForwardDiffExt.jl index 223e027..7530dd2 100644 --- a/ext/ForwardDiffExt.jl +++ b/ext/ForwardDiffExt.jl @@ -3,13 +3,10 @@ Gradient AD implementation using ForwardDiff. """ module ForwardDiffExt -using DocStringExtensions: SIGNATURES -using LogDensityProblems: dimension, logdensity -using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED -using UnPack: @unpack +using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED, SIGNATURES, dimension, logdensity +using LogDensityProblemsAD.UnPack: @unpack -import LogDensityProblems: logdensity_and_gradient -import LogDensityProblemsAD: ADgradient +import LogDensityProblemsAD: ADgradient, logdensity_and_gradient if EXTENSIONS_SUPPORTED import ForwardDiff import ForwardDiff: DiffResults diff --git a/ext/ReverseDiffExt.jl b/ext/ReverseDiffExt.jl index 6e416fc..64393a8 100644 --- a/ext/ReverseDiffExt.jl +++ b/ext/ReverseDiffExt.jl @@ -3,13 +3,10 @@ Gradient AD implementation using ReverseDiff. """ module ReverseDiffExt -using DocStringExtensions: SIGNATURES -using LogDensityProblems: dimension, logdensity -using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED -using UnPack: @unpack +using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED, SIGNATURES, dimension, logdensity +using LogDensityProblemsAD.UnPack: @unpack -import LogDensityProblems: logdensity_and_gradient -import LogDensityProblemsAD: ADgradient +import LogDensityProblemsAD: ADgradient, logdensity_and_gradient if EXTENSIONS_SUPPORTED import ReverseDiff import ReverseDiff: DiffResults diff --git a/ext/TrackerExt.jl b/ext/TrackerExt.jl index f355d3d..4d90c99 100644 --- a/ext/TrackerExt.jl +++ b/ext/TrackerExt.jl @@ -3,12 +3,10 @@ Gradient AD implementation using Tracker. """ module TrackerExt -using LogDensityProblems: logdensity -using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED -using UnPack: @unpack +using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED, logdensity +using LogDensityProblemsAD.UnPack: @unpack -import LogDensityProblems: logdensity_and_gradient -import LogDensityProblemsAD: ADgradient +import LogDensityProblemsAD: ADgradient, logdensity_and_gradient if EXTENSIONS_SUPPORTED import Tracker else diff --git a/ext/ZygoteExt.jl b/ext/ZygoteExt.jl index 5386700..5898d0a 100644 --- a/ext/ZygoteExt.jl +++ b/ext/ZygoteExt.jl @@ -3,12 +3,10 @@ Gradient AD implementation using Zygote. """ module ZygoteExt -using LogDensityProblems: logdensity -using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED -using UnPack: @unpack +using LogDensityProblemsAD: ADGradientWrapper, EXTENSIONS_SUPPORTED, logdensity +using LogDensityProblemsAD.UnPack: @unpack -import LogDensityProblems: logdensity_and_gradient -import LogDensityProblemsAD: ADgradient +import LogDensityProblemsAD: ADgradient, logdensity_and_gradient if EXTENSIONS_SUPPORTED import Zygote else diff --git a/src/LogDensityProblemsAD.jl b/src/LogDensityProblemsAD.jl index 57bbb13..dbcaf04 100644 --- a/src/LogDensityProblemsAD.jl +++ b/src/LogDensityProblemsAD.jl @@ -9,6 +9,8 @@ using DocStringExtensions: SIGNATURES import LogDensityProblems: logdensity, logdensity_and_gradient, capabilities, dimension using LogDensityProblems: LogDensityOrder +import UnPack + ##### ##### AD wrappers --- interface and generic code From a843b918b2899a61c15fecf63356c4ed47d5cb26 Mon Sep 17 00:00:00 2001 From: David Widmann Date: Mon, 6 Feb 2023 10:08:58 +0100 Subject: [PATCH 2/2] Bump version --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index b550fd3..2168d46 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "LogDensityProblemsAD" uuid = "996a588d-648d-4e1f-a8f0-a84b347e47b1" authors = ["Tamás K. Papp "] -version = "1.2.0" +version = "1.2.1" [deps] DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"