CUDA backend: no fallback kernels for `nonzero` and `masked_select`
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 64/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Bereich
- backend, machine-learning
Rechercherichtung
Lies zuerst die bestehenden CUDA-Fallback-Shims und finde heraus, wo aoti_torch_cuda_nonzero und aoti_torch_cuda_masked_select registriert oder als fehlend gemeldet werden; das Issue nennt diese Dateien nicht. Reproduziere den Fehler mit dem bereitgestellten Exportbeispiel und prüfe dann die bestehenden Fallback-Tests des CUDA-Backends oder ergänze Tests für beide direkten Aufrufe. Erledigt ist die Aufgabe, wenn beide Aufrufe über das CUDA-Backend abgesenkt werden, ohne dass der Fehler wegen des fehlenden Kernels auftritt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
What happens
A program that calls torch.nonzero or torch.masked_select directly cannot be lowered with the CUDA backend. Export stops with:
RuntimeError: missing fallback kernels (1 total): - aoti_torch_cuda_nonzero Please add them to the AOTI backend.
and the same with aoti_torch_cuda_masked_select. It fails loudly, never with wrong results. Plain boolean-mask indexing (x[x > 0]) exports fine, so only the direct calls hit it. Tools that trace models into explicit ops emit these direct calls for data-dependent shapes.
Repro
import torch
from executorch.backends.cuda.cuda_backend import CudaBackend
from executorch.backends.cuda.cuda_partitioner import CudaPartitioner
from executorch.exir import EdgeCompileConfig, to_edge_transform_and_lower
class M(torch.nn.Module):
def forward(self, x):
return torch.nonzero(x > 0).sum() # or torch.masked_select(x, x > 0).sum()
x = torch.tensor([[1.0, -2.0, 3.0], [-4.0, 5.0, -6.0]], device="cuda")
ep = torch.export.export(M().eval().cuda(), (x,))
to_edge_transform_and_lower(
ep,
partitioner=[CudaPartitioner([CudaBackend.generate_method_name_compile_spec("forward")])],
compile_config=EdgeCompileConfig(_check_ir_validity=False),
).to_executorch()
Tested with executorch 1.6.0+cu132 and torch 2.15.0+cu132 on an H100.
Ask
Add aoti_torch_cuda_nonzero and aoti_torch_cuda_masked_select shims to the CUDA backend, like the existing fallback shims.
Related: #24684.
- Vorherrschende Sprache
- Python
- Sterne
- 5.2k
- Forks
- 1.2k
- Ø Merge
- 1 T. 23 Std.
- Gemergte PRs (30 T.)
- 700
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus pytorch/executorch
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
pytorch/executorch#24434 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
pytorch/executorch#24410 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement triaged
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 68/100
pytorch/executorch#21640 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
pytorch/executorch#24766 ·
Maintainer antworten meist innerhalb von 1 Tag
-
No safe way to set the CPU thread count from Python: _unsafe_reset_threadpool after load_method crashes or hangs XNNPACKEvtl. vergeben @shoumikhin hat das heute übernommen. Offenbug
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
pytorch/executorch#24765 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in pytorch/executorch
Ähnliche Issues
-
ChatBedrockConverse changes the keys of JSON tool results to camelCase (`order_id` becomes `orderId`)Evtl. vergeben @geyazheng hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
langchain-ai/langchain-aws#1469 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
EESSI/docs#949 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
b4b usability
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
fix(schedule): align list_tasks since cursor filter boundary from strict > to >=Evtl. vergeben @bfs2021 hat das heute übernommen. Offenagent-ready bug p2 schedule
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
allenporter/supernote#540 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
frazane/scoringrules#164 ·
Maintainer antworten meist innerhalb von 1 Tag