[Libre-soc-dev] [RFC] SVP64 Vertical-First Mode loops

Richard Wilbur richard.wilbur at gmail.com
Thu Aug 19 23:41:16 BST 2021


> On Aug 18, 2021, at 18:13, lkcl <luke.leighton at gmail.com> wrote:
> 
> each row being a butterfly goes double the distance and therefore needs half the coefficients compared to the previous row.
> 
> * when you have 16 values you need twin mul-add on 8 values and therefore 8 coefficients
> * next row you have 2 batches of 8 values therefore the 4 coefficients can be used 2x
> * next row you have 4 batches of 4 values, 2 coefficients can be used 4x
> * next row 8 batches of 2 values, the 1 coefficient can be used 8x
> 
> 8 4 2 1 on batch sizes and num coefficients
> 1 2 4 8 times reuse on coefficients

Looks like, for this example,
N = 16 values,
number of unique coefficients = 8 + 4 + 2 + 1 = 15 = N - 1

That’s interesting.  The total number of coefficients = (N / 2) * log(base=2, N)

Number of reuses = (N / 2) * log(base=2, N) - (N - 1)
= 32 - 15 = 17




More information about the Libre-soc-dev mailing list