[Proposal] Optimization for AoS with SIMD
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 20/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- wasm
- Área
- compilers, performance
Línea de trabajo
No se identifica ningún archivo, prueba ni punto de entrada. Empieza por determinar si la transformación corresponde al compilador, a Binaryen o al entorno de ejecución de la VM, y después define entradas AoS representativas y un benchmark SIMD. Se considera completado cuando se haya elegido una capa, se haya implementado una transformación de AoS a SoA o AoSoA que preserve la semántica y se haya demostrado la autovectorización.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Not sure where this should be best done - at the compiler level, at the binaryen level, or at the VM runtime level.
As the GC proposal adds structures and arrays, we technically have the ability to turn AoS into SoA or AoSoA (with fixed SIMD proposal).
Like (pseudocode):
class Vec3 {
f32 x;
f32 y;
f32 z;
};
const vels = Vec3[100];
f32 getVelX(i32 i) {
return vels[i].x;
}
into:
class Vec3 {
f32 x[4];
f32 y[4];
f32 z[4];
};
const vels = Vec3[(100 + 3) / 4];
f32 getVelX(i32 i) {
return vels[i / 4].x[i & 3];
}
And apply SIMD auto-vectorisation afterwards.
- Lenguaje dominante
- WebAssembly
- Estrellas
- 8.6k
- Forks
- 885
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 77
Guía de contribución
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 WebAssembly/binaryen
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
WebAssembly/binaryen#9135 · 1 comentario ·
-
Dificultad 2/5 Medio día Aptitud para principiantes 76/100
WebAssembly/binaryen#9018 · 3 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
WebAssembly/binaryen#9133 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
WebAssembly/binaryen#9123 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
WebAssembly/binaryen#9122 ·
Todos los issues de WebAssembly/binaryen
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
JakeChampion/lang#10213 ·
-
enhancement good first issue needs testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
bradcypert/plum#58 ·
-
flang:fir-hlfir
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
llvm/llvm-project#225935 ·
-
Hand Tail: Brass Herald Abiertoarea:cards hand-tail ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
fil-donadoni/tolaria#4446 ·