tenstorrent / tt-metal

:metal: TT-NN operator library, and TT-Metalium low level kernel programming model.
Apache License 2.0
303 stars 26 forks source link

Complex backward ops Blockers #9806

Open Aswinmcw opened 1 week ago

Aswinmcw commented 1 week ago

Complex binary ops are need to be merged to TTNN

Issues: Complex ops are implemented in two methods. One is using separate Complex structure and another one is using regular tensor by splitting into two like a tensor of [1,1,32,64] contains the first [1,1,32,32] as real part and the next [1,1,32,32] as imaginary part. We need clarification on how to proceed with this.

eyonland commented 3 days ago

@arakhmati and I took a look at this together. We are going to keep ComplexTensor as-is for now. In the future ComplexTensor itself needs to be updated a bit differently but the general idea is about right. However the code within the #define CHECK_FOR_COMPLEX looks like garbage to both of us. We like ComplexTensor implementations but we both really do not like this other ugly looking code that uses the splitting like you described. This code will end up being hard to maintain. I would rather us re-code these ups with the ComplexTensor. Can you help me understand the scope creep here?