Friday, 2022-03-25

programmerjakelkcl, does remap also remap bitmask bit indexes just like registers? e.g. if r3 == 0x1, VL=4 and I do sv.add/mask=r3 r4.v, r8.v, r12.v with remap set to run in reverse, does r4 get written or r7 get written?03:17
programmerjakeimho remap should remap bitmask bit indexes since they are just like remapping CR registers.03:18
*** henriok_ is now known as henriok04:14
*** alMalsamo is now known as lumberjack12308:37
lkclprogrammerjake, the offset (srcoffset, dstoffset) is what gets recomputed, and the offset is what is used to get the register or the predicate mask bit09:49
programmerjakek, so it does what i thought it should09:50
lkclyes basically09:51
lkclwhere it gets complicated is for DCT/FFT, where the REMAP algorithm is not one-to-one or onto09:52
lkclat which point it's probably best to put in the spec that masked DCT/FFT REMAP is "undefined"09:52
lkclthere's a power-of-two limitation anyway09:53
programmerjakeimho since the mask matches the registers, masking should be fine with DCT/FFT, all we do is ignore instructions where their corresponding mask bit is 009:54
lkclMatrix REMAP is similarly shot to hell because of the modulo arithmetic.  yes you can do reversing (on each individual for-loop)09:54
lkclbut even trying to decide which bit of the predicate should be used becomes meaningless09:54
lkcl*and*...09:55
lkclsrcoffs/dstoffs can for all three REMAP algorithms exceed 64 even though VL cannot!!09:55
programmerjakewhy would you need to reverse to find the predicate bit, we decided to use predicate bit matches the registers used....09:55
programmerjakeyou know what registers you're using after remap, use that to find the predicate bit09:56
programmerjakesimple...09:56
lkclbecause in the case of FFT and DCT there are 5 registers involved (3 in 2 out) and they have utterly different indices after remap09:57
programmerjakeimho if you need to compute the inverse function of the remap algorithm, you're probably approaching it the wrong way09:57
lkclit's not possible. they are not one-to-one or onto09:57
programmerjakewell...you just take those utterly different indexes after remap and use them to access the corresponding predicate bits...09:58
programmerjakeif remap says "access element 27" then we use the reg with element 27 and predicate bit 2709:58
lkcleven for MATRIX where the context for one of the REMAP'd indices is the X axis and the other is the Y axis?09:59
programmerjakeeven if we can't figure out which original element got remapped to 2709:59
programmerjakesure...I can't think of why you'd want predication with matrix, but that makes it easier for us10:00
programmerjakeoh, wait, i know why you'd want predication with matrixes...10:00
lkclfor matrices you need there to be NxM bits where NxM is the size of the destination10:01
lkclor to decide it's for the source, or one of the sources10:01
lkclall of which is... a bit much10:01
programmerjakegpu stuff where each SIMT thread is doing a matrix op. the predication would be 1 predicate bit per 2d matrix, so we'd need to do some predicate expansion in sw to get it to work10:01
programmerjakebasically a vector of 2d matrixes10:01
programmerjakewell...we'd just pick RT as the one we have predicate bits match...or for twin predication the spec already specifies10:04
lkclmmm.... ok, if i start thinking about this it'll prevent me from completing the FPGA milestone for the NGI POINTER Contract10:05
programmerjakeok, go work on fpga stuff then...10:06
lkclcan you raise it as a bugreport and cross-reference to the REMAP page?10:06
programmerjakei need to go to sleep myself...i got highly distracted by trying to make code that generates pretty ascii-art graphs of tree reductions10:07
lkclheh :)10:08
lkcli did an SVG version for that10:08
lkclfor DCT10:08
lkclit uses, iirc, the exact same "yield-generator"10:08
programmerjakei've gone hog-wild and am making functions to convert any branch-free program into a tree graph showing data-flow through registers10:10
* lkcl brain-melt :)10:11
programmerjakeit supports general N-in M-out instructions10:11
programmerjakekinda similar to how fpga layout and routing works10:11
lkclooOoo10:11
lkclbtw do let people know about this https://groupgets.com/campaigns/1003-clear-the-open-source-fpga-asic-by-chipignite10:12
programmerjakeneat!10:14
programmerjakewell, i'm going to sleep now...stayed up too late...I may not have any time to work on libre-soc on friday after I sleep because of this, sorry13:17
lkclheh no problem14:28
zemayehello, I have a question about the dev set up. my host system is debian 11 and the dev-env-scripts set up debian 10 chroot with debootstrap. I see theres a lot of emphasis on having the same dev environment. Should I reinstall my host system as debian 10 (buster)?17:20
zemayeWatched Luke's setup video and the answer appears to be yes. https://libre-soc.org/HDL_workflow/devscripts/17:43
lkclzemaye you don't need to reinstall your host system17:53

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!