relax
relax copied to clipboard
[ROADMAP] Milestones
Functionality and Robustness
- [x] M0: relax lowest form ⇒ VM
- [x] M0b: IRBuilder/mutator interface initial finalization
- [x] M0c: build mixed TIR/Relax IRModule
- [x] M1: MVP lowering mechanism
- [x] M1a: lower a program with call_dps, packedfunc only
- [x] M1b: lower a program with call_dps + tir
- [x] M1c: be able to build a IRModule that contains mixed relax and tir func
- [x] M2: Code robustification and cleanup
- [x] M2a: Sync with upstream meta-schedule, with a clean parser implementation
- [x] M2b: BlockBuilder and Normalizer cleanup
- [x] M2c: ExprMutator cleanup
- [x] M2d: Refactor the MVP lowering mechanism
- [x] M2e: End to end build flow IRModule => runtime.Module
- [x] M2f: Migrate relax passes to Pass Manager infra
- [ ] M3: End to end workload
- [x] M3a: EmitTE mechanism for building workloads using TE and topi
- [x] M3b: end to end inference workload through EmitTE
- [ ] M3c: op => tir lowering rough sketch
- [ ] M3d: op reg + op gradient
- [x] M3e: end to end fine-tuning workload
Passes and Performance
Can be done in parallel after M2
- [ ] Memory optimization and match graph runtime strategy for static shape
- [x] AutoTIR integration
- [ ] Fusion choices
For M2, we might want to migrate current passes to the existing Pass Manager infra; For M3d and M3e, I am wondering what the plan is for AD algorithm, would it be a easy task?
For M2, we might want to migrate current passes to the existing Pass Manager infra; For M3d and M3e, I am wondering what the plan is for AD algorithm, would it be a easy task?
Sounds good, I think we can migrate the passes to the Pass Manager Infra after M2. For the AD plan, I think in the short term, we want to write a relax gradient pass to generate the backward pass to demonstrate the transformer fine-tuning workload; in the long term, we want to enable AD on the TIR level. cc @altanh
Would be good to add the "relax gradient pass" as a separate entry since I guess it will take some time.