@@ -44,17 +44,18 @@ EnzymeRules.inactive(::Type{StaticSize}, x...) = nothing
44
44
# https://github.com/EnzymeAD/Enzyme.jl/issues/1516
45
45
# On the CPU `autodiff_deferred` can deadlock.
46
46
# Hence a specialized CPU version
47
- function cpu_fwd (ctx, f, args... )
48
- EnzymeCore. autodiff (Forward, Const (f), Const{Nothing}, Const (ctx), args... )
47
+ function cpu_fwd (config, ctx, f, args... )
48
+ EnzymeCore. autodiff (EnzymeCore . set_runtime_activity ( Forward, config) , Const (f), Const{Nothing}, Const (ctx), args... )
49
49
return nothing
50
50
end
51
51
52
52
function gpu_fwd (ctx, f, args... )
53
- EnzymeCore. autodiff_deferred (Forward, Const (f), Const{Nothing}, Const (ctx), args... )
53
+ EnzymeCore. autodiff_deferred (EnzymeCore . set_runtime_activity ( Forward, config) , Const (f), Const{Nothing}, Const (ctx), args... )
54
54
return nothing
55
55
end
56
56
57
57
function EnzymeRules. forward (
58
+ config,
58
59
func:: Const{<:Kernel{CPU}} ,
59
60
:: Type{Const{Nothing}} ,
60
61
args... ;
@@ -63,12 +64,13 @@ function EnzymeRules.forward(
63
64
)
64
65
kernel = func. val
65
66
f = kernel. f
66
- fwd_kernel = similar (kernel, cpu_fwd)
67
+ fwd_kernel = similar (config, kernel, cpu_fwd)
67
68
68
69
fwd_kernel (f, args... ; ndrange, workgroupsize)
69
70
end
70
71
71
72
function EnzymeRules. forward (
73
+ config,
72
74
func:: Const{<:Kernel{<:GPU}} ,
73
75
:: Type{Const{Nothing}} ,
74
76
args... ;
@@ -77,7 +79,7 @@ function EnzymeRules.forward(
77
79
)
78
80
kernel = func. val
79
81
f = kernel. f
80
- fwd_kernel = similar (kernel, gpu_fwd)
82
+ fwd_kernel = similar (config, kernel, gpu_fwd)
81
83
82
84
fwd_kernel (f, args... ; ndrange, workgroupsize)
83
85
end
0 commit comments