-
Notifications
You must be signed in to change notification settings - Fork 9
Closed
Description
This continues the issue reported in SciML/OrdinaryDiffEq.jl#1989
With two threads, I get
julia> using Pkg; Pkg.activate(temp = true); Pkg.add(["StaticArrays", "StrideArrays", "FastBroadcast"])
Activating new project at `/tmp/jl_uPbM8G`
Resolving package versions...
Updating `/tmp/jl_uPbM8G/Project.toml`
[7034ab61] + FastBroadcast v0.2.6
[90137ffa] + StaticArrays v1.6.2
[d1fa6d79] + StrideArrays v0.1.25
...
julia> using StaticArrays, FastBroadcast
julia> src = [SVector(1.0), SVector(2.0)]; dst = zero(src)
2-element Vector{SVector{1, Float64}}:
[0.0]
[0.0]
julia> @.. broadcast=false thread=true dst = src
2-element Vector{SVector{1, Float64}}:
[1.0]
[2.0]
julia> using StrideArrays
julia> @.. broadcast=false thread=true dst = src
ERROR: MethodError: no method matching vmaterialize!(::PtrArray{SVector{1, Float64}, 1, (1,), Tuple{Int64}, Tuple{Nothing}, Tuple{StaticInt{1}}}, ::Base.Broadcast.Broadcasted{StrideArrays.CartesianStyle{Tuple{Int64}, 1}, Nothing, typeof(identity), Tuple{PtrArray{SVector{1, Float64}, 1, (1,), Tuple{Int64}, Tuple{Nothing}, Tuple{StaticInt{1}}}}}, ::Val{:StrideArrays}, ::Val{(true, 0, 0, 0, true, 4, 32, 15, 64, 0x0000000000000001, 0, false)}, ::Val{((true,),)})
Closest candidates are:
vmaterialize!(::Union{LinearAlgebra.Adjoint{T, A}, LinearAlgebra.Transpose{T, A}}, ::BC, ::Val{Mod}, ::Val{UNROLL}, ::Val{dontbc}) where {T<:Union{Bool, Float16, Float32, Float64, Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8, SIMDTypes.Bit}, N, A<:AbstractArray{T, N}, BC<:Union{Base.Broadcast.Broadcasted, LoopVectorization.Product}, Mod, UNROLL, dontbc}
@ LoopVectorization ~/.julia/packages/LoopVectorization/Eyk3M/src/broadcast.jl:682
vmaterialize!(::AbstractArray{T, N}, ::BC, ::Val{Mod}, ::Val{UNROLL}, ::Val{dontbc}) where {T<:Union{Bool, Float16, Float32, Float64, Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8, SIMDTypes.Bit}, N, BC<:Union{Base.Broadcast.Broadcasted, LoopVectorization.Product}, Mod, UNROLL, dontbc}
@ LoopVectorization ~/.julia/packages/LoopVectorization/Eyk3M/src/broadcast.jl:673
vmaterialize!(::Any, ::Any, ::Val{Mod}, ::Val{UNROLL}) where {Mod, UNROLL}
@ LoopVectorization ~/.julia/packages/LoopVectorization/Eyk3M/src/broadcast.jl:753
...
Stacktrace:
[1] vmaterialize!
@ ~/.julia/packages/LoopVectorization/Eyk3M/src/broadcast.jl:759 [inlined]
[2] _materialize!
@ ~/.julia/packages/StrideArrays/lTVQX/src/broadcast.jl:205 [inlined]
[3] materialize!
@ ~/.julia/packages/StrideArrays/lTVQX/src/broadcast.jl:212 [inlined]
[4] fast_materialize!
@ ~/.julia/packages/FastBroadcast/gaWkO/src/FastBroadcast.jl:47 [inlined]
[5] _batch_broadcast_fn
@ ~/.julia/packages/FastBroadcast/gaWkO/src/FastBroadcast.jl:81 [inlined]
[6] macro expansion
@ ~/.julia/packages/Polyester/mtqKq/src/batch.jl:158 [inlined]
[7] _batch_no_reserve
@ ~/.julia/packages/Polyester/mtqKq/src/batch.jl:111 [inlined]
[8] batch
@ ~/.julia/packages/Polyester/mtqKq/src/batch.jl:322 [inlined]
[9] batch
@ ~/.julia/packages/Polyester/mtqKq/src/batch.jl:289 [inlined]
[10] fast_materialize_threaded!(dst::Vector{SVector{1, Float64}}, #unused#::Static.False, bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, typeof(identity), Tuple{Vector{SVector{1, Float64}}}}, dstaxes::Tuple{Base.OneTo{Int64}})
@ FastBroadcast ~/.julia/packages/FastBroadcast/gaWkO/src/FastBroadcast.jl:91
[11] fast_materialize!(#unused#::Static.True, #unused#::Static.False, dst::Vector{SVector{1, Float64}}, bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, typeof(identity), Tuple{Vector{SVector{1, Float64}}}})
@ FastBroadcast ~/.julia/packages/FastBroadcast/gaWkO/src/FastBroadcast.jl:74
[12] top-level scope
@ REPL[6]:1This uses FastBroadcast.jl v0.2.6 including your fix from SciML/FastBroadcast.jl#47, @chriselrod
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels