JuliaSIMD / JuliaSIMD/LoopVectorization.jl
Boil down vmap! variants, extend to reduce & mapreduce
- Lingua principale
- Julia
- Stelle
- 789
- Fork
- 73
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
There's a whole menagerie of `vmap`-related functions exported, corresponding to mutating/non-mutating, temporal/non-temporal stores, and singlethreaded/multithreaded. Eight versions of the same function are maintainable, but if some other boolean switch is added, that's sixteen, which could get unwieldy. Wrapper types might allow for a more Julian interface - something like
```
map!(Threaded(+), Nontemporal(out), a, b)
```
to replace
```
vmapntt!(+, out, a, b)
```
The introduction of `Threaded(f)` could be extended to `reduce` & `mapreduce` for a simple multithreaded reduction interface.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Start by reading the existing exported vmap-related entry points, including vmapntt!, along with the reduce and mapreduce interfaces. Define how wrapper types such as Threaded and Nontemporal should replace the current variants, then verify that the consolidated map! API and threaded reductions preserve the existing behavior.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- julia
- Ambito
- performance
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100