Add runtime execution IR, automatic operator fusion, and plan cache
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 20/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- rust
- Ambito
- backend, compilers, performance
Direzione di ricerca
Inizia con la child issue #46 sull’IR di esecuzione differita e sui confini di materializzazione, quindi segui l’ordine delle dipendenze fino alla #47 per la legalità della fusione, il lowering di CubeCL e il caching limitato. Usa il percorso non fuso come oracolo differenziale. Il lavoro è completato quando i criteri di accettazione elencati sono soddisfatti, incluso il comportamento osservabile della cache, i fallback sicuri, la crescita limitata e la disabilitazione della diagnostica.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Objective
Represent deferred Array expressions in a backend-neutral execution IR, fuse compatible operator chains at runtime, and cache compiled CubeCL plans without changing observable ndarray semantics.
Procedure
- Define typed IR nodes, shapes, dtypes, dependencies, device placement, and materialization boundaries.
- Define legality rules for elementwise fusion first; reductions/transforms require explicit legality tests before inclusion.
- Build deterministic plan keys from operation graph, dtype/shape specialization, runtime/backend, and compiler version.
- Compile and cache fused CubeCL kernels with bounded cache size and invalidation.
- Fall back to unfused execution for unsupported graphs with a visible diagnostic.
Acceptance criteria
- A chain of at least three compatible operations executes as one compiled kernel after planning.
- Fused and unfused paths pass the same property/conformance tests, including errors and broadcasting.
- Side-effect, aliasing, ordering, and materialization boundaries prevent illegal fusion.
- Cache keys are deterministic; hits, misses, compilation time, eviction, and fallback are observable.
- Cache growth is bounded and stale/incompatible artifacts are rejected.
- Fusion can be disabled for diagnosis and parity testing.
Parent: #33
Tembo-sized implementation issues
- #46 — deferred execution IR and materialization boundaries
- #47 — fusion legality, CubeCL lowering, and bounded cache
Dependency order: #46 → #47. The unfused path must remain enabled as an independent differential oracle.
Tembo program boundary
This parent is a non-executable acceptance rollup. Tembo must be assigned to the child issues, and may not close this issue from a child PR.
automation:
eligible: false
executor_profile: tembo
readiness: rollup
primary_repository: TinyChain-Inc/ha-ndarray
base_branch: main
writable_scope: []
prerequisites: ["#46", "#47"]
concurrency_group: cubecl-fusion-rollup
required_commands: []
external_actions: none
draft_pr_only: true
completion_authority: human
- Lingua principale
- Rust
- Stelle
- 3
- Fork
- 2
- Merge medio
- 1h 19m
- PR unite (30g)
- 1
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TinyChain-Inc/ha-ndarray
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
TinyChain-Inc/ha-ndarray#50 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
TinyChain-Inc/ha-ndarray#49 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
TinyChain-Inc/ha-ndarray#48 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
TinyChain-Inc/ha-ndarray#47 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
TinyChain-Inc/ha-ndarray#46 ·
Tutte le issue di TinyChain-Inc/ha-ndarray
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
aws-samples/sample-pacer#76 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
axodotdev/cargo-dist#2523 ·
I maintainer di solito rispondono entro 2 giorni