Support a training pipeline via onnx-mlir

<aside> 👉 This is an actual research quesiton being answered/optimised at Gensyn right now. Strong submissions will be considered for positions on the team.

</aside>

Goals:

Given a generic onnx model/graph as an input, you are asked to transform that onnx graph into a training-based onnx Rrepresentation that is then ingested inonnx-mlir (MLIR). You should describe your approach in detail, document your transformations/conversions, and include sanity checks for testing the validity of your conversions. The Final IR needs to be explicit such that all operations related to an entire training process (forwards propagation + loss function computation + backwards propagation with optimizer updates) are part of the IR via annotation (foward_conv, backward_conv , etc.) or have explicit calls in terms of numerical operations (reduce, add, multiply, dot)

Inputs: Onnx Graphs

Outputs: Your custom Training IR + Documentation + Outputs

Requirements

Acceptance Criteria

High-Level Criteria

Implementation Criteria