[FEA]: Generalize autotuning to dynamically generated kernels
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- backend, performance
Línea de trabajo
Empieza leyendo el punto de entrada exhaustive_search y el uso de _TimingCandidate descritos en el issue; después, sigue el flujo de cómo las configuraciones generan actualmente kernels, grids, hints y argumentos. El trabajo estará completo cuando exhaustive_search pueda admitir kernels y argumentos generados a partir de cada configuración, preservando el comportamiento existente de kernels fijos y los candidatos de autotuning.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is this a new feature, an improvement, or a change to existing functionality?
Improvement
How would you describe the priority of this feature request?
Low (would be nice)
Please provide a clear description of problem this feature solves
Currently, exhaustive_search takes a single fixed kernel and construct arguments from an arbitrary sequence of configurations. That it takes a fixed kernel makes it unusable in its current form if the config objects themselves generates the kernel.
Feature Description
I'm currently using cutile and metaprogramming to generate kernels, with much better success and less pain than other frameworks. However, I can't use exhaustive_search in its current form, but need to modify it to take kernel generating functions.
Describe your ideal solution
The proposal is essentially to change exhaustive_search, or add a separate case, where we generate the kernel candidate from a config, i.e:
...
for i, cfg in enumerate(search_space):
if not quiet and isatty:
progress(0, i, total, len(errors))
grid = grid_fn(cfg)
kernel = kernel_fn(cfg)
hints = hints_fn(cfg) if hints_fn is not None else {}
updated_kernel = kernel.replace_hints(**hints)
candidate = _TimingCandidate(
config=cfg,
grid=grid,
kernel=updated_kernel,
get_args=lambda _cfg=cfg: args_fn(_cfg),
)
...
Describe any alternatives you have considered
No response
Additional context
No response
Contributing Guidelines
- I agree to follow cuTile Python's contributing guidelines
- I have searched the open feature requests and have found no duplicates for this feature request
- Lenguaje dominante
- Python
- Estrellas
- 2.2k
- Forks
- 155
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 NVIDIA/cutile-python
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NVIDIA/cutile-python#105 · 2 comentarios ·
-
bug status: needs-triage
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
NVIDIA/cutile-python#102 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
NVIDIA/cutile-python#101 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
NVIDIA/cutile-python#97 · 1 comentario ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
NVIDIA/cutile-python#96 · 1 comentario ·
Todos los issues de NVIDIA/cutile-python
Issues similares
-
essnmx good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
-
[Feature] 奇物选择添加优先级 Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
syfoud/Simulated_Scepter#174 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Giskard-AI/giskard-oss#2840 · 1 comentario ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Abiertoarea: repo bug perceived difficulty: 2
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
yeti-platform/yeti#1380 ·