JuliaSIMD / JuliaSIMD/LoopVectorization.jl
Loop IR interface
- Dominant language
- Julia
- Stars
- 789
- Forks
- 73
- PR merge metrics
- No merged PRs in 30d
Description
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?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.