Greetings,
I’m trying to implement relay passes targeting operations which are offloaded to our custom accelerator. Of course, I’m trying to fit it into the UMA way of doing, looking at the Ethos U implementation for inspiration (which I’m assuming was the leading inspiration for UMA anyway). While investigating how to correctly target the offloaded operations, we are seeing that the “Compiler” attribute is properly set, but the “Composite” attribute (as it is used by the Ethos U implementation) gets lost. More specifically, it gets lost during Defunctionalization. This “Composite” attribute seems crucial for further relay passes. This might also have an effect on UMA ConvertLayout relay pass - #2 by shoskens
Is this behavior intentional? Is the Defunctionalization pass strictly necessary? Why does the second-order program, which gets defunctionalized, exist in the first place?