Sure. Here’s the stacktrace (middle section of items 39 and 44 not included due to character limits in discourse):
ERROR: Out of GPU memory trying to allocate 1.112 GiB
Effective GPU memory usage: 100.00% (12.000 GiB/12.000 GiB)
Memory pool usage: 8.306 GiB (11.344 GiB reserved)
Stacktrace:
[1] macro expansion
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\src\pool.jl:320 [inlined]
[2] macro expansion
@ .\timing.jl:382 [inlined]
[3] #_alloc#170
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\src\pool.jl:313 [inlined]
[4] #alloc#169
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\src\pool.jl:299 [inlined]
[5] alloc
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\src\pool.jl:293 [inlined]
[6] CuArray
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\src\array.jl:42 [inlined]
[7] CuArray
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\src\array.jl:125 [inlined]
[8] CuArray
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\src\array.jl:132 [inlined]
[9] with_workspace(f::CUDA.CUDNN.var"#1196#1200"{CUDA.CUDNN.cudnnTensorDescriptor, CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CUDA.CUDNN.cudnnTensorDescriptor, CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CUDA.CUDNN.cudnnConvolutionDescriptor, CUDA.CUDNN.cudnnFilterDescriptor, CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, Vector{CUDA.CUDNN.cudnnConvolutionBwdFilterAlgoPerfStruct}, Vector{Int32}, Int64}, eltyp::Type{UInt8}, size::CUDA.CUDNN.var"#workspaceSize#1199"{CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}}, fallback::Nothing; keep::Bool)
@ CUDA.APIUtils C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\lib\utils\call.jl:65
[10] with_workspace
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\lib\utils\call.jl:56 [inlined]
[11] #with_workspace#1
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\lib\utils\call.jl:53 [inlined]
[12] with_workspace (repeats 2 times)
@ C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\lib\utils\call.jl:53 [inlined]
[13] cudnnConvolutionBwdFilterAlgoPerf(xDesc::CUDA.CUDNN.cudnnTensorDescriptor, x::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, dyDesc::CUDA.CUDNN.cudnnTensorDescriptor, dy::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, convDesc::CUDA.CUDNN.cudnnConvolutionDescriptor, dwDesc::CUDA.CUDNN.cudnnFilterDescriptor, dw::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, allocateTmpBuf::Bool)
@ CUDA.CUDNN C:\Users\kaoid\.julia\packages\CUDA\Ey3w2\lib\cudnn\convolution.jl:254
[14] ∇conv_filter!(dw::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, x::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, dy::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, cdims::DenseConvDims{2, 2, 2, 4, 2}; alpha::Int64, beta::Int64, algo::Int64)
@ NNlibCUDA C:\Users\kaoid\.julia\packages\NNlibCUDA\gzTJY\src\cudnn\conv.jl:118
[15] ∇conv_filter!
@ C:\Users\kaoid\.julia\packages\NNlibCUDA\gzTJY\src\cudnn\conv.jl:107 [inlined]
[16] #∇conv_filter#213
@ C:\Users\kaoid\.julia\packages\NNlib\T3z9T\src\conv.jl:112 [inlined]
[17] ∇conv_filter
@ C:\Users\kaoid\.julia\packages\NNlib\T3z9T\src\conv.jl:107 [inlined]
[18] #333
@ C:\Users\kaoid\.julia\packages\NNlib\T3z9T\src\conv.jl:322 [inlined]
[19] unthunk
@ C:\Users\kaoid\.julia\packages\ChainRulesCore\C73ay\src\tangent_types\thunks.jl:204 [inlined]
[20] wrap_chainrules_output
@ C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\chainrules.jl:105 [inlined]
[21] map
@ .\tuple.jl:223 [inlined]
[22] map
@ .\tuple.jl:224 [inlined]
[23] wrap_chainrules_output
@ C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\chainrules.jl:106 [inlined]
[24] ZBack
@ C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\chainrules.jl:206 [inlined]
[25] Pullback
@ C:\Users\kaoid\.julia\packages\Flux\v79Am\src\layers\conv.jl:333 [inlined]
[26] (::typeof(∂(λ)))(Δ::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer})
@ Zygote C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\interface2.jl:0
[27] macro expansion
@ C:\Users\kaoid\.julia\packages\Flux\v79Am\src\layers\basic.jl:53 [inlined]
[28] Pullback
@ C:\Users\kaoid\.julia\packages\Flux\v79Am\src\layers\basic.jl:53 [inlined]
[29] (::typeof(∂(_applychain)))(Δ::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer})
@ Zygote C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\interface2.jl:0
[30] Pullback
@ C:\Users\kaoid\.julia\packages\Flux\v79Am\src\layers\basic.jl:51 [inlined]
[31] macro expansion
@ C:\Users\kaoid\.julia\packages\Flux\v79Am\src\layers\basic.jl:53 [inlined]
[32] Pullback
@ C:\Users\kaoid\.julia\packages\Flux\v79Am\src\layers\basic.jl:53 [inlined]
[33] (::typeof(∂(_applychain)))(Δ::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer})
@ Zygote C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\interface2.jl:0
[34] Pullback
@ C:\Users\kaoid\.julia\packages\Flux\v79Am\src\layers\basic.jl:51 [inlined]
[35] (::typeof(∂(λ)))(Δ::CuArray{Float32, 4, CUDA.Mem.DeviceBuffer})
@ Zygote C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\interface2.jl:0
[36] Pullback
@ C:\Users\kaoid\My Drive\Estudo\Poli\Pesquisa\Programas\QuickTO\QuickTO\utilities\ML utils\losses.jl:46 [inlined]
[37] (::typeof(∂(λ)))(Δ::Float32)
@ Zygote C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\interface2.jl:0
[38] (::Zygote.var"#60#61"{typeof(∂(λ))})(Δ::Float32)
@ Zygote C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\interface.jl:45
[39] withgradient(f::Function, args::Chain{Tuple{Chain{Tuple{Conv{2, 4, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, ChannelLayerNorm{Flux.Scale{typeof(identity), CuArray{Float32, 3, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 3, CUDA.Mem.DeviceBuffer}}, Float32}}}, Chain{Tuple{SkipConnection{Chain{Tuple{Conv{2, 4, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, var"#299#302", LayerNorm{typeof(identity), Flux.Scale{typeof(identity), CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Float32, 1}, Dense{typeof(relu), CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Dense{typeof(identity), CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Flux.Scale{typeof(identity), CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Bool}, var"#300#303", typeof(identity)}}, typeof(+)}}}, Chain{Tuple{SkipConnection{Chain{Tuple{Conv{2, 4, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, var"#299#302", LayerNorm{typeof(identity), Flux.Scale{typeof(identity), CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Float32, 1}, Dense{typeof(relu), CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}},
Dense{typeof(identity), CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Flux.Scale{typeof(identity), CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Bool}, var"#300#303", Dropout{Float32, Int64, CUDA.RNG}}}, typeof(+)}}}, Chain{Tuple{SkipConnection{Chain{Tuple{Conv{2, 4, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, var"#299#302", LayerNorm{typeof(identity), Flux.Scale{typeof(identity), CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Float32, 1}, Dense{typeof(relu), CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Dense{typeof(identity), CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Flux.Scale{typeof(identity), CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Bool}, var"#300#303", Dropout{Float32, Int64, CUDA.RNG}}} #300#303", Dropout{Float32, Int64, CUDA.RNG}}}, typeof(+)}}}, Chain{Tuple{ConvTranspose{2, 4, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, ConvTranspose{2, 4, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Conv{2, 2, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Conv{2, 2, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Conv{2, 2, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, typeof(σ)}}}})
@ Zygote C:\Users\kaoid\.julia\packages\Zygote\AS0Go\src\compiler\interface.jl:133
[40] GANgrads(metaData_::GANmetaData, genInput::Array{Float32, 4}, FEAinfo::Array{Float32, 4}, realTopology::Array{Float32, 4})
@ Main C:\Users\kaoid\My Drive\Estudo\Poli\Pesquisa\Programas\QuickTO\QuickTO\utilities\ML utils\losses.jl:45
[41] GANepoch!(metaData::GANmetaData, goal::Symbol)
@ Main C:\Users\kaoid\My Drive\Estudo\Poli\Pesquisa\Programas\QuickTO\QuickTO\utilities\ML utils\learning.jl:202
[42] fixedEpochGANs(metaData::GANmetaData)
@ Main C:\Users\kaoid\My Drive\Estudo\Poli\Pesquisa\Programas\QuickTO\QuickTO\utilities\ML utils\learning.jl:153
[43] macro expansion
@ C:\Users\kaoid\.julia\packages\Suppressor\tQJeL\src\Suppressor.jl:98 [inlined]
[44] trainGANs(; genOpt_::Flux.Optimise.Adam, discOpt_::Flux.Optimise.Adam, genName_::String, discName_::String, metaDataName::String, originalFolder::String, epochs::Int64, valFreq::Int64, architectures::Tuple{Chain{Tuple{Chain{Tuple{Conv{2, 4, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, ChannelLayerNorm{Flux.Scale{typeof(identity), CuArray{Float32, 3, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 3, CUDA.Mem.DeviceBuffer}}, Float32}}}, Chain{Tuple{SkipConnection{Chain{Tuple{Conv{2, 4, typeof(identity), CuArray{Float32, 4, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, var"#299#302", LayerNorm{typeof(identity), Flux.Scale{typeof(identity), CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Float32, 1}, Dense{typeof(relu), CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Dense{typeof(identity), CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, Flux.Scale{typeof(identity), CuArray{Float32, 1, CUDA.Mem.DeviceBuffer},
Bool}, var"#300#303", typeof(identity)}}, typeof(+)}}}, Chain{Tuple{SkipConnection{Chain{Tuple{Conv{2, 4, A.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, BatchNorm{typeof(identity), CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Float32, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}, typeof(leakyrelu), typeof(flatten)}}, Chain{Tuple{Dense{typeof(identity), CuArray{Float32, 2, CUDA.Mem.DeviceBuffer}, CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}}}}}}})
@ Main C:\Users\kaoid\My Drive\Estudo\Poli\Pesquisa\Programas\QuickTO\QuickTO\utilities\ML utils\learning.jl:411
[45] top-level scope
@ .\timing.jl:262 [inlined]
[46] top-level scope
@ c:\Users\kaoid\My Drive\Estudo\Poli\Pesquisa\Programas\QuickTO\QuickTO\topoGAN.jl:0