[Libre-soc-isa] [Bug 701] document Matrix REMAP in SVP64

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Mon Nov 6 19:37:23 GMT 2023


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

--- Comment #11 from Andrey Miroshnikov <andrey at technepisteme.xyz> ---

Added links to setvl and remapyield pages:
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=b1af6290493d5e24b66a697e18c48198dae336c0

Added side-by-side outer and inner product indices table (maybe unnecessary,
we'll see):
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=e753285cd38279c477ebd4a20d9cc56ab0fb7201
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=f0f633cf4c971a0719859dcdd33ef170eb5f408a

Worked example drawings (to show why outer product is inefficient):
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=ec354c22512c8d7ba90ee86b2a566bff198cb045
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=5b92098f9f10fa004274e1e549e9634a8683219e
(These diagrams were done earlier for my understanding, so adding them to the
page was trivial)

Fixed permute table:
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=f38a4ebf02eace64055088c15e44034ed5ab11fd

(I may move the whole SVSHAPE SPR section to the appendix as it's too detailed.
Still would prefer to keep it, as it aids with some understanding).

How to compute the SVxd/SVyd/SVzd parameters (to make sure I can adjust the
example for any matrix):
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=e27736d030ed3a806a67652bac3fd3f436aba04e
There's probably more to it than that, but for the basic examples I will be
doing those rules are sufficient for now.

svremp insn breakdown and simulator example (terrible example of putting two
separate changes in one commit, I noticed too late)
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=05ccb75bebd8956aa3f0361bcea8c34e6a86d04b
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=c4ef47abccbb5519ffc6b2c8ad1f9d3348dd0b41

None of my explanations cover SVSHAPE1/2/3, but I'm guessing their are set by
the svremap instruction?
The sole svshape instruction specifies REMAP mode 0, which only deals with
SVSHAPE0 to my understanding.

A section on the indices generate by remapyield.py, and how those correspond to
the actual indices of the operand and result matrices. Section for now
incomplete.
https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=4be5bec8309348e84bfd3c35df0aebc1a82c5ac7

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


More information about the Libre-SOC-ISA mailing list