[ET-VK] TagMemoryMetaPass skips a tensor that sits in a list alongside None
Los mantenedores suelen responder en 1 día
Evaluación
Este issue todavía no se ha evaluado.
Descripción
🐛 Describe the bug
is_tensor_arg_node() and is_non_constant_tensor_node() in backends/vulkan/utils.py only recognise a list argument when every entry is a tensor node. An argument that mixes tensor nodes with None is therefore treated as a non-tensor and skipped entirely by TagMemoryMetaPass, so the tensors inside it never get a storage or memory-layout representation.
index.Tensor is the case that surfaces it: x[:, :, idx] reaches the edge dialect as index.Tensor(x, [None, None, idx]), and idx lives in a list whose other entries are None. Any op implementation that then asserts on the layout of that tensor fails, because nothing assigned it one.
This is easy to miss because the op that exposed it can be routed around. #22481 makes index.Tensor work on any axis by forcing CONTIGUOUS_BUFFER for higher-rank self, which sidesteps the tagging gap rather than closing it. The gap is still there for the next operator that takes an optional-tensor list.
A fix is a helper along the lines of
def tensor_nodes_in_arg(arg):
"""The tensor nodes of an argument, skipping Nones."""
used everywhere the tagging pass walks a list argument. Lists that are entirely tensors, which is every other operator today, would behave exactly as before.
Originally found while working on #22406, which is being closed in favour of #22481; filing separately so the finding is not lost with it.
Versions
Reproduces on main (a6b115bff6).
cc @SS-JIA @manuelcandales @digantdesai @cbilgin
- Lenguaje dominante
- Python
- Estrellas
- 5.1k
- Forks
- 1.2k
- Merge medio
- 2 d 9 h
- PR fusionados (30 d)
- 632
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 pytorch/executorch
-
Portable remainder kernel: wrong sign for integers and float64 rounded to floatPosiblemente ocupada @usmanmateen la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
pytorch/executorch#23682 ·
Los mantenedores suelen responder en 1 día
-
enhancement triaged
Dificultad 2/5 Medio día Aptitud para principiantes 68/100
pytorch/executorch#21640 ·
Los mantenedores suelen responder en 1 día
-
Portable floor_divide returns non-whole numbers for floats and wrong values for a zero divisorPosiblemente ocupada @usmanmateen la tomó hace 1 día. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
pytorch/executorch#23684 ·
Los mantenedores suelen responder en 1 día
-
torch.var_mean and torch.std_mean fail in to_edge: aten.var_mean.correction is not core ATen and has no core decompositionPosiblemente ocupada @usmanmateen la tomó hace 1 día. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
pytorch/executorch#23680 ·
Los mantenedores suelen responder en 1 día
-
Prompts of max_seq_len tokens fail to prefill: export_llm bounds the KV-cache token input at max_seq_len - 1 but publishes get_max_seq_len = max_seq_lenPosiblemente ocupada @alpharomercoma la tomó hace 1 día. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 20/100
pytorch/executorch#23678 ·
Los mantenedores suelen responder en 1 día
Todos los issues de pytorch/executorch
Issues similares
-
needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
darnitdevorg/darnit#587 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 1 día
-
accessibility good first issue
Dificultad 1/5 1-3 horas Aptitud para principiantes 92/100
Los mantenedores suelen responder en 1 día
-
llm translation
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
bug bug-hunt
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día