Many "pure" implementations of ONNX operators currently use big blocks of CPP tasklets. This has several issues:
- It is not portable.
- It is a blocking point for analysis and transformations.
- It is a blocking point for our symbolic autodiff module and would require a manual implementation of the backward pass of these ops.
Ideally, we would want to represent all supported operators using pure SDFG elements and elementary, small tasklets that can be differentiated symbolically and analyzed by DaCe transformations.
Many "pure" implementations of ONNX operators currently use big blocks of CPP tasklets. This has several issues:
Ideally, we would want to represent all supported operators using pure SDFG elements and elementary, small tasklets that can be differentiated symbolically and analyzed by DaCe transformations.