Structural Generality
As discussed in the LinAlg-Tensors design discussion, the necessary first steps are for IREE to have much more structural generality between its frontend and backend. This projects track the specific issues involved in reaching this goal.
Using the resnet50 IR as the working example: https://gist.github.com/benvanik/9a94c3a4b23d4ebbd4e4c23ccdd20377
Tasks related to CPU code generation, typically Linalg -> Loops -> LLVM in the pipeline.
Tasks related to GPU code generation, typically Linalg -> Loops -> GPU -> SPIR-V in the pipeline.
Code generation tasks common to all hardware/accelerators; typically TF -> HLO -> Linalg in the pipeline.
Interoperability features with the TensorFlow modeling system such as Colab templates/kernels, tools for exporting models, and runtime integration.
Work related to improvements in the various MLIR dialects and transformations used by the IREE compiler with projects such as expanded op support and new frontend/backend dialects.
Runtime C and C++ API development and language/framework adaptation (Python, Javascript, etc).
Work related to improving the performance and code size of the IREE runtime and HAL.
The creation or porting of sample models and creation of sample apps. The goal is to push the bounds of the framework to expose issues with representation, compiler optimizations, and runtime performance.
Tasks related to improving build, testing, benchmarking, and CI support.
Work related to TF, XLA HLO, IREE, and SPIR-V optimization focused on producing better generated code.