When we do GEMM, the inner loop will be like this:
C[ramp((((x.inner*8) + y.outer)*128), 1, 128)] = (C[ramp((((x.inner*8) + y.outer)*128), 1, 128)] + (x128(A[((x.inner*8) + k)])*B[ramp(((y.outer + (k*8))*128), 1, 128)]))
When we do VisitExpr, we could only get Mul / Add of RHS. i.e. (C[ramp((((x.inner*8) + y.outer)128), 1, 128)], + , (x128(A[((x.inner8) + k)])B[ramp(((y.outer + (k8))*128), 1, 128)])).
I want to know whether we have one way to get C[ramp((((x.inner*8) + y.outer)*128), 1, 128)]
in the left hand side.
Asking the question, just because I want to check the IR pattern of GEMV and do something. From the doc: https://docs.tvm.ai/tutorials/language/tensorize.html?highlight=tensorize I know we could recognize this pattern using tensorize. But I want to know in the CodeGen part, whether we could check the pattern?
@tqchen @yzhliu @vinx13 and anyone could answer this question? Thanks.