(mod: IRModule)
| 60 | |
| 61 | |
| 62 | def preprocess_pipeline(mod: IRModule) -> IRModule: |
| 63 | desired_layouts = {"relax.nn.conv2d": ["NCHW16c", "OIHW16o", "NCHW16c"]} |
| 64 | seq = tvm.transform.Sequential( |
| 65 | [ |
| 66 | tvm.tirx.transform.BindTarget(Target.current(allow_none=False)), |
| 67 | tvm.relax.transform.FoldConstant(), |
| 68 | tvm.relax.transform.DecomposeOpsForInference(), |
| 69 | tvm.relax.transform.FoldConstant(), |
| 70 | tvm.tirx.transform.BindTarget(tvm.target.Target.current(allow_none=False)), |
| 71 | tvm.relax.transform.ConvertLayout(desired_layouts), |
| 72 | tvm.relax.transform.Normalize(), |
| 73 | tvm.relax.transform.FoldConstant(), |
| 74 | tvm.relax.transform.LegalizeOps(), |
| 75 | tvm.relax.transform.LegalizeOps( |
| 76 | {"relax.nn.conv2d": legalize_adreno.conv2d_NCHWc_OIHWo} |
| 77 | ), |
| 78 | tvm.relax.transform.FoldConstant(), |
| 79 | tvm.relax.transform.AnnotateTIROpPattern(), |
| 80 | tvm.relax.transform.FuseOps(), |
| 81 | tvm.relax.transform.FuseTIR(), |
| 82 | tvm.relax.transform.DeadCodeElimination(), |
| 83 | tvm.relax.transform.Normalize(), |
| 84 | ] |
| 85 | ) |
| 86 | mod = seq(mod) |
| 87 | return mod |
| 88 | |
| 89 | |
| 90 | def postprocess_pipeline(mod: IRModule) -> IRModule: |
no test coverage detected
searching dependent graphs…