JuliaSIMD / JuliaSIMD/LoopVectorization.jl
@turbo not doing LoopVectorization on Float64
- Lingua principale
- Julia
- Stelle
- 789
- Fork
- 73
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Seems to fail for Float64 and AbstractFloat but works for real and more general types.
Also, should it be able to work on structs as in the X1 example at the bottom.
```
X = randn(50_000_000)
float64( x::Float64 ) = sin(x)
abs_float( x::AbstractFloat ) = sin(x)
real( x::Real ) = sin(x)
any( x::Any ) = sin(x)
@turbo float64.(X) # LoopVectorization.check_args` on your inputs failed; running fallback `@inbounds @fastmath` loop instead
@turbo abs_float.(X) # LoopVectorization.check_args` on your inputs failed; running fallback `@inbounds @fastmath` loop instead
@turbo real.(X) # works
@turbo any.(X) # works
struct X1; x::Float64 end
fx1((;x)::X1) = sin(x)
x1 = repeat([X1(1.0)],1000_000)
@turbo fx1.( x1 ) # LoopVectorization.check_args` on your inputs failed; running fallback `@inbounds @fastmath` loop instead
```
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Start by reproducing the @turbo examples for Float64, AbstractFloat, Real, Any, and the X1 struct, focusing on the LoopVectorization.check_args failure. The issue names no files or tests, so trace the @turbo handling and check_args implementation from the repository entry points. Done means the supported behavior for these signatures and structs is established and covered by an appropriate regression test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- julia
- Ambito
- performance
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100