Using Mat-Mul Instructions, like Arm SME and Intel AMX
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 18/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- cpp
- Área
- hpc, performance
Línea de trabajo
Comienza revisando la reducción propuesta en dos etapas mediante multiplicaciones matriz-vector y las restricciones de Arm SME e Intel AMX descritas en el issue. Después, inspecciona el pull request de SimSIMD referenciado para conocer el contexto de implementación relacionado. Se consideraría terminado contar con una implementación definida y comparada mediante benchmarks de este enfoque, pero el issue no especifica archivos ni pruebas del repositorio.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Array reductions can be represented as a two-stage pipeline built on top of matrix-vector multiplications, where the vector is made of all ones.
Let's say our hardware supports fast 16 by 16 matrix multiplications with a single instruction. We can reshape the input array of length $N$ as a matrix of $16$ rows and $N/16$ columns, and use a tiled matrix-multiplication instruction sliding through that wide matrix, multiplying it by a $16$-element vector of ones, and accumulating into $16$ other floats.
In reality, we can't user Intel AMX with float32 inputs, but we can use Arm SME, and later apply similar techniques to SimSIMD.
- Lenguaje dominante
- C++
- Estrellas
- 119
- Forks
- 10
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ashvardanian/ParallelReductionsBenchmark
-
Add Python benchmarks for the new CUDA DSL/JITQuizá libre de nuevo @AnshSinghSonkhia la tomó hace 450 días y no hay ningún pull request abierto. Abiertogood first issue help wanted
ashvardanian/ParallelReductionsBenchmark#9 · 2 comentarios · 1 asignado ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
POSIX thread-pool for NUMAAbiertoenhancement good first issue
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
ashvardanian/ParallelReductionsBenchmark#7 · 1 reacción ·
-
Add support for partial buildsAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
ashvardanian/ParallelReductionsBenchmark#1 · 1 comentario · 1 reacción ·
Todos los issues de ashvardanian/ParallelReductionsBenchmark
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
README: CI link/badge checkAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
SCIInstitute/SCIRun#2842 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
agent:Windows bug code-review LOW testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
Los mantenedores suelen responder en 1 día
-
Translate gcc cheat sheet to frAbiertogood first issue help wanted language:fr translation
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
mrvi0/cli-cheatsheet#160 ·