JuliaSIMD / JuliaSIMD/LoopVectorization.jl

Boil down vmap! variants, extend to reduce & mapreduce

Aperta
#154 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub
good first issue
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.