Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d29e37eaaa |
@ -67,6 +67,7 @@ include("numeric.jl")
|
|||||||
include("lib/real.jl")
|
include("lib/real.jl")
|
||||||
include("lib/array.jl")
|
include("lib/array.jl")
|
||||||
include("forward.jl")
|
include("forward.jl")
|
||||||
|
include("memory.jl")
|
||||||
|
|
||||||
"""
|
"""
|
||||||
hook(f, x) -> x′
|
hook(f, x) -> x′
|
||||||
|
24
src/tracker/memory.jl
Normal file
24
src/tracker/memory.jl
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
function mem(x::Array, seen)
|
||||||
|
x in seen && return 0
|
||||||
|
push!(seen, x)
|
||||||
|
return sizeof(x)
|
||||||
|
end
|
||||||
|
|
||||||
|
fields(x) = map(f -> isdefined(x, f) ? getfield(x, f) : nothing, fieldnames(typeof(x)))
|
||||||
|
|
||||||
|
function mem(x, seen)
|
||||||
|
isbits(x) && return sizeof(x)
|
||||||
|
x in seen && return 0
|
||||||
|
push!(seen, x)
|
||||||
|
sum(x -> mem(x, seen), fields(x))
|
||||||
|
end
|
||||||
|
|
||||||
|
mem(x) = mem(x, IdSet())
|
||||||
|
|
||||||
|
@init @require CuArrays="3a865a2d-5b23-5a0f-bc46-62713ec82fae" begin
|
||||||
|
function mem(x::CuArray, seen)
|
||||||
|
x in seen && return 0
|
||||||
|
push!(seen, x)
|
||||||
|
return sizeof(x)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user