Hi Robin,

> Was this with --param=partial-vector-usage=1 or something else?  I'd 
> really like to see an example of a loop where this is worse than e.g. an 
> LMUL4 loop with small VL.  Maybe that would help us steer the 
> implementation and codegen.

We tried adding a -param=vect-partial-vector-usage=3 option, requiring
full vectors in the main loop and LMUL<=1 partial vectors in the
epilogue.  (Yes we didn't use length control for the main loop.  I had
a bad memory.)

Actually we were comparing "M8/M4 main loop + M1 epilogue" with the
plain -mrvv-max-lmul=m1 (not m4 or m8), and the regressions refer to
results of that comparsion.  We didn't perform that kind of test, but I
guess the m1 epilogue scheme would not be worse than plain m4 or m8 on
our design.

The reason why we use plain m1 as the reference is that m1 actually
performs pretty well for many cases on our non-Ovlt design.  However we
wanted to do better than m1, especially for scenarios we can almost be
sure that would be a performance gain (e.g. fixed-length loops that can
naturally fit into larger vectors, which the earlier m1-dynamic scheme
was mainly targeting).

Regards,
Bohan

Reply via email to