SoA should allow arbitrary initialization of matrix if it isn't elementwise accessed thereafter
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- cpp, ocaml
- Área
- compilers, performance
Línea de trabajo
No se nombran archivos, pruebas ni puntos de entrada. Empieza rastreando la optimización del patrón de memoria y su heurística de acceso elemento a elemento; después, examina cómo se genera el código de inicialización de matrices. Se considera terminado cuando la construcción de matrices no elemento a elemento puede usar la representación SoA solicitada cuando no hay accesos posteriores elemento a elemento, incluidas las construcciones que usan bucles.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Currently, the memory pattern optimization relies on all functions being inlined and then searches for elementwise accesses as its heuristic to disable function promotion.
It would be really nice if we instead allowed things like
transformed parameters {
matrix[N,M] foo = some_function(N, M, other_arguments) + possibly_other_expressions;
}
to be code generated to something like auto foo = to_soa(some_function(...) ...) when there are no further elementwise accesses of foo, even if the code in some_function does use for-loops to construct it. This is sort of on-the-way to something like a comprehension, but I believe it is implementable right now for many models.
- Lenguaje dominante
- OCaml
- Estrellas
- 162
- Forks
- 60
- Merge medio
- 2 d 22 h
- PR fusionados (30 d)
- 14
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin 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 stan-dev/stanc3
-
optimization performance robustness
Dificultad 5/5 Más de una semana Aptitud para principiantes 8/100
stan-dev/stanc3#1761 · 6 comentarios ·
Los mantenedores suelen responder en 1 día
-
feature
Dificultad 4/5 1-2 días Aptitud para principiantes 52/100
stan-dev/stanc3#1757 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
cleanup help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 22/100
Los mantenedores suelen responder en 1 día
-
cpp-codegen feature performance
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
stan-dev/stanc3#1722 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
feature optimization
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
Los mantenedores suelen responder en 1 día
Todos los issues de stan-dev/stanc3
Issues similares
-
mlir
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
llvm/llvm-project#241070 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
from-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
bug scope:codegen
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug sev-3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
better error message error not reported I/O ICE low priority semantics
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día