Closed zygmuntszpak closed 1 year ago
The Project.toml file lists compatibility with TiledIteration 4.0 but the current implementation needs to be refactored to support it. At the moment using the latest version of TiledIteration makes several tests fail. For example:
Project.toml
TiledIteration 4.0
1d: Error During Test at /home/zygmunt/.julia/dev/ImageFiltering/test/nd.jl:14 Got exception outside of a @test TaskFailedException Stacktrace: [1] wait @ ./task.jl:345 [inlined] [2] threading_run(fun::ImageFiltering.var"#160#threadsfor_fun#51"{ImageFiltering.var"#160#threadsfor_fun#50#52"{CPU1{ImageFiltering.Algorithm.FIRTiled{1}}, Vector{Float64}, OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}, Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, NoPad{Pad{1}}, Vector{Tuple{UnitRange{Int64}}}, Vector{Tuple{Vector{Float64}, Vector{Float64}}}, UnitRange{Int64}}}, static::Bool) @ Base.Threads ./threadingconstructs.jl:38 [3] macro expansion @ ./threadingconstructs.jl:89 [inlined] [4] _imfilter_tiled_threads!(r1::CPU1{ImageFiltering.Algorithm.FIRTiled{1}}, out::Vector{Float64}, A::OffsetVector{Float64, Vector{Float64}}, k1::OffsetVector{Float64, Vector{Float64}}, kt::Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, border::NoPad{Pad{1}}, tileinds_all::Vector{Tuple{UnitRange{Int64}}}, tiles::Vector{Tuple{Vector{Float64}, Vector{Float64}}}) @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:900 [5] _imfilter_tiled!(r::CPUThreads{ImageFiltering.Algorithm.FIRTiled{1}}, out::Vector{Float64}, A::OffsetVector{Float64, Vector{Float64}}, kernel::Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, border::NoPad{Pad{1}}, tiles::Vector{Tuple{Vector{Float64}, Vector{Float64}}}, indsout::Tuple{Base.OneTo{Int64}}) @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:896 [6] imfilter!(r::CPUThreads{ImageFiltering.Algorithm.FIRTiled{1}}, out::Vector{Float64}, A::OffsetVector{Float64, Vector{Float64}}, kernel::Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, border::NoPad{Pad{1}}, inds::Tuple{Base.OneTo{Int64}}) @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:778 [7] imfilter! @ ~/.julia/dev/ImageFiltering/src/imfilter.jl:775 [inlined] [8] imfilter! @ ~/.julia/dev/ImageFiltering/src/imfilter.jl:716 [inlined] [9] imfilter!(r::CPUThreads{ImageFiltering.Algorithm.FIRTiled{1}}, out::Vector{Float64}, img::UnitRange{Int64}, kernel::Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, border::Pad{0}) @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:703 [10] imfilter!(out::Vector{Float64}, img::UnitRange{Int64}, kernel::Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, border::Pad{0}, alg::ImageFiltering.Algorithm.FIRTiled{1}) @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:612 [11] imfilter! @ ~/.julia/dev/ImageFiltering/src/imfilter.jl:606 [inlined] [12] imfilter @ ~/.julia/dev/ImageFiltering/src/imfilter.jl:27 [inlined] [13] imfilter(::Type{Float64}, ::UnitRange{Int64}, ::Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, ::String) @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:22 [14] imfilter @ ~/.julia/dev/ImageFiltering/src/imfilter.jl:18 [inlined] [15] imfilter(::UnitRange{Int64}, ::Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}) @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:5 [16] macro expansion @ ~/.julia/dev/ImageFiltering/test/nd.jl:61 [inlined] [17] macro expansion @ /media/zygmunt/big/Julia/share/julia/stdlib/v1.8/Test/src/Test.jl:1360 [inlined] [18] top-level scope @ ~/.julia/dev/ImageFiltering/test/nd.jl:15 [19] include(fname::String) @ Base.MainInclude ./client.jl:476 [20] top-level scope @ ~/.julia/dev/ImageFiltering/test/runtests.jl:37 [21] include(fname::String) @ Base.MainInclude ./client.jl:476 [22] top-level scope @ none:6 [23] eval @ ./boot.jl:368 [inlined] [24] exec_options(opts::Base.JLOptions) @ Base ./client.jl:276 [25] _start() @ Base ./client.jl:522 nested task error: MethodError: no method matching _imfilter_tiled_swap!(::CPU1{ImageFiltering.Algorithm.FIRTiled{1}}, ::Vector{Float64}, ::Tuple{OffsetVector{Float64, Vector{Float64}}}, ::NoPad{Pad{1}}, ::Tuple{TiledIteration.TileBuffer{Float64, 1, 1}, OffsetVector{Float64, Vector{Float64}}}) Closest candidates are: _imfilter_tiled_swap!(::Any, ::Any, ::Tuple{Any}, ::Any, ::Tuple{TiledIteration.TileBuffer, Array}) at ~/.julia/dev/ImageFiltering/src/imfilter.jl:925 _imfilter_tiled_swap!(::Any, ::Any, ::Tuple{Any, Any, Vararg{Any}}, ::Any, ::Tuple{TiledIteration.TileBuffer, Array}) at ~/.julia/dev/ImageFiltering/src/imfilter.jl:914 Stacktrace: [1] _imfilter_tiled_swap!(r::CPU1{ImageFiltering.Algorithm.FIRTiled{1}}, out::Vector{Float64}, kernel::Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, border::NoPad{Pad{1}}, tmp::Tuple{TiledIteration.TileBuffer{Float64, 1, 1}, Vector{Float64}}) @ ImageFiltering ~/.julia/dev/ImageFiltering/src/imfilter.jl:921 [2] macro expansion @ ~/.julia/dev/ImageFiltering/src/imfilter.jl:906 [inlined] [3] (::ImageFiltering.var"#160#threadsfor_fun#51"{ImageFiltering.var"#160#threadsfor_fun#50#52"{CPU1{ImageFiltering.Algorithm.FIRTiled{1}}, Vector{Float64}, OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}, Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, NoPad{Pad{1}}, Vector{Tuple{UnitRange{Int64}}}, Vector{Tuple{Vector{Float64}, Vector{Float64}}}, UnitRange{Int64}}})(tid::Int64; onethread::Bool) @ ImageFiltering ./threadingconstructs.jl:84 [4] #160#threadsfor_fun @ ./threadingconstructs.jl:51 [inlined] [5] (::Base.Threads.var"#1#2"{ImageFiltering.var"#160#threadsfor_fun#51"{ImageFiltering.var"#160#threadsfor_fun#50#52"{CPU1{ImageFiltering.Algorithm.FIRTiled{1}}, Vector{Float64}, OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}, Tuple{OffsetVector{Float64, Vector{Float64}}, OffsetVector{Float64, Vector{Float64}}}, NoPad{Pad{1}}, Vector{Tuple{UnitRange{Int64}}}, Vector{Tuple{Vector{Float64}, Vector{Float64}}}, UnitRange{Int64}}}, Int64})() @ Base.Threads ./threadingconstructs.jl:30
closed by #255
The
Project.toml
file lists compatibility withTiledIteration 4.0
but the current implementation needs to be refactored to support it. At the moment using the latest version of TiledIteration makes several tests fail. For example: