You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am building an application that stores a lot of integers with a low integer value (from 1 to 64 at most). I wanted to leverage this package to load in SIMD chunks the integers. My problem is that when I want to use those chunks as indices in the form Vec{N,Int32} or Vec{N,UInt8} then vgather it is not working.
MethodError: no method matching vgather(::Vector{Float64}, ::Vec{4, Int32})
Closest candidates are:
vgather(::Union{Base.ReinterpretArray{T, 1, T2, A} where {T2, A<:Union{DenseVector{T2}, SubArray{T2, 1, P, I, true} where {P, I<:Union{Tuple{Vararg{Real}}, Tuple{AbstractUnitRange, Vararg{Any}}}}}}, SubArray{T, 1, P, I, true} where {P, I<:Union{Tuple{Vararg{Real}}, Tuple{AbstractUnitRange, Vararg{Any}}}}, DenseVector{T}}, ::Vec{N, Int64}) where {N, T<:Union{Float32, Float64, Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8}} at ~/.julia/packages/SIMD/myoU9/src/arrayops.jl:157
vgather(::Union{Base.ReinterpretArray{T, 1, T2, A} where {T2, A<:Union{DenseVector{T2}, SubArray{T2, 1, P, I, true} where {P, I<:Union{Tuple{Vararg{Real}}, Tuple{AbstractUnitRange, Vararg{Any}}}}}}, SubArray{T, 1, P, I, true} where {P, I<:Union{Tuple{Vararg{Real}}, Tuple{AbstractUnitRange, Vararg{Any}}}}, DenseVector{T}}, ::Vec{N, Int64}, ::Vec{N, Bool}) where {N, T<:Union{Float32, Float64, Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8}} at ~/.julia/packages/SIMD/myoU9/src/arrayops.jl:157
vgather(::Union{Base.ReinterpretArray{T, 1, T2, A} where {T2, A<:Union{DenseVector{T2}, SubArray{T2, 1, P, I, true} where {P, I<:Union{Tuple{Vararg{Real}}, Tuple{AbstractUnitRange, Vararg{Any}}}}}}, SubArray{T, 1, P, I, true} where {P, I<:Union{Tuple{Vararg{Real}}, Tuple{AbstractUnitRange, Vararg{Any}}}}, DenseVector{T}}, ::Vec{N, Int64}, ::Vec{N, Bool}, ::Val{Aligned}) where {N, T<:Union{Float32, Float64, Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8}, Aligned} at ~/.julia/packages/SIMD/myoU9/src/arrayops.jl:157
Stacktrace:
[1] top-level scope
@ In[49]:4
[2] eval
@ ./boot.jl:368 [inlined]
[3] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
@ Base ./loading.jl:1428
This makes me use much more memory than I would like storing the indices from which I load in idx_slice to an unreasonable Int type (for the amount of reals I might be gathering from).
The text was updated successfully, but these errors were encountered:
davidbp
changed the title
Support gather with all Int types
Support vgather with all Int types
Sep 2, 2022
Hello,
I am building an application that stores a lot of integers with a low integer value (from 1 to 64 at most). I wanted to leverage this package to load in SIMD chunks the integers. My problem is that when I want to use those chunks as indices in the form
Vec{N,Int32}
orVec{N,UInt8}
thenvgather
it is not working.Problem: It seems
vgather
only works with Int64MWE
The following code works:
But the same code with Int32 (or other Int element types) does not work
This makes me use much more memory than I would like storing the indices from which I load in
idx_slice
to an unreasonable Int type (for the amount of reals I might be gathering from).The text was updated successfully, but these errors were encountered: