[Libre-soc-bugs] [Bug 1155] O(n^2) multiplication REMAP mode(s)

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sat Dec 23 19:13:57 GMT 2023


https://bugs.libre-soc.org/show_bug.cgi?id=1155

--- Comment #25 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Jacob Lifshay from comment #20)

> if all 4 options with zero or one axis selected are redundant, then we can
> save a bit and the encoding can be as follows:
> 
> 00 x + y
> 01 x + z
> 10 y + z
> 11 x + y + z
> 
> basically we remove the bit for z and set it to 1 if x or y are set,
> otherwise set z to 0 and x and y to 1.

damnit damnit, just realised that actually for the *matrix* style
(2D/3D) schedule, summing is just as useful *even of triangles*,
plus actually producing *triangle* schedules (without summing)
is also useful.

whiiich... takes up the entirety of "permute=0b110/111"... arg arg...

ok so what i am currently thinking is:

* mode=0b00 is current "Matrix" mode 
* mode=0b11 is *still matrix schedule* but is "summation" (x+y+z) BUT..

... under *sub*-modes it can go into "Triangular" (Pascal's Triangle).

where mode=0b00 you would get:

0  4 8  12
1  5 9  13
2  6 10 14
3  7 11 15

instead you would get:

0  4 8  12
   5 9  13
     10 14
        15

(or maybe)

0  
1  5
2  6 10
3  7 11 15

so N*(N+1)/2 numbers instead of N*N but they are *still* in NxN form

then within this, when x=1 or y=1 or z=1, this triggers the "triangular"

thoughts?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list