[Libre-soc-dev] complex numbers as matrices

Luke Kenneth Casson Leighton lkcl at lkcl.net
Sat Jun 26 02:24:32 BST 2021

On 6/26/21, Jacob Lifshay <programmerjake at gmail.com> wrote:

> Yup, it has the same arithmetic ops, *however* it takes twice as much
> storage for A and you'd have to constantly regenerate the matrix A
> from a vec2. efficient? not likely.

with the a and b being replicated in a regular pattern actual copies
are completely unnecessary.

the REMAP schedule can "pretend" by simply pointing back at the
"duplicated" element.

thus there is exactly the same space used as if the operations were
performed manually through explicit 32 bit v3.0B instructions.

just as with all matrix REMAP operations the schedule can be arranged
such that the result is used for temporary accumulators.

normal matrix multiply you are taught to multiply and add up on a per
result coordinate basis.

this is terrible for pipelining.

by rearranging the for loops, swapping outer with inner, a schedule is
created which completes one part of the result by the time the next
outer loop works round.

all in-place, no temporaries, no wasted regfile space.


More information about the Libre-soc-dev mailing list