JuliaSIMD / JuliaSIMD/LoopVectorization.jl

Boil down vmap! variants, extend to reduce & mapreduce

Abierto
#154 3 comentarios 0 reacciones 0 asignados Ver en GitHub
good first issue
Lenguaje dominante
Julia
Estrellas
789
Forks
73
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
julia
Área
performance
Tipo de issue
Refactorización
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.