JuliaSIMD / JuliaSIMD/LoopVectorization.jl
Loop IR interface
- Lingua principale
- Julia
- Stelle
- 789
- Fork
- 73
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
As far as I understand, LoopVectorization will parse a Julia `Expr` to an internal IR which is the `LoopSet` (or something other types in https://github.com/JuliaSIMD/LoopVectorization.jl/blob/f2e60386486074140c1eeb4fe5a87b2b330997b8/src/modeling/graphs.jl#L1)
I'm currently trying to simplify the kernel code generation code in BQCESubroutine: https://github.com/QuantumBFS/BQCESubroutine.jl/tree/master/src/codegen
by writing a Loop IR in Expronicon.jl: https://github.com/Roger-luo/Expronicon.jl
I'm wondering if there would be some docs from LoopVectorization or interfaces that allow me to use the internal IR in LoopVectorization directly (or let LoopVectorization to share a Loop IR with other packages) so that I could provide you more information.
e.g in BQCESubroutine, what it tries to do is to generate subspace matrix multiplication routines for a matrix expression that may only contain `sin`, `cos`, `exp` so that I will be able to
simplify the kernel using rewrite engine based on this assumption, and sometimes one can put assumptions on the element types in their DSL without going through type inference too.
But I currently need to do a manual loop unroll etc. after this simplification pass, so I'm thinking maybe exposing some interface of the internal IR would make meta programming generated for loops perform faster?
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Start with the LoopSet and related IR definitions in src/modeling/graphs.jl, then review the kernel-generation code in BQCESubroutine.jl and the proposed Expronicon.jl integration. Determine whether the internal IR has a usable interface for external packages or what an exposed interface would need to support. Done means a concrete, documented interface or documentation decision addressing the integration request.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- julia
- Ambito
- compilers
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100