Wednesday, 2023-05-03

programmerjakemarkos: maddsubrs really needs to account for the high half of the product, because, for elwid=16 (meaning XLEN=16) and SH=14 (iirc what arm's 16-bit insn uses), the current pseudo-code cuts off soo many bits by ignoring the high half of the product that it only leaves 2 bits(!) of product...i'm sure you can agree that 2-bit output isn't very useful for video-codec DCTs...00:41
programmerjakeluke: if you and markos are ok with it, i can try to fix that, it'll likely be even smaller than the current pseudocode00:43
programmerjake2 bits because it sticks the product in a 16-bit integer, adds to it (which wraps, so no extra bits there), then shifts right by 1400:45
programmerjakethe c code doesn't have that problem because in c everything promotes to int for arithmetic00:46
*** xornina <xornina!~xornina@154.39.248.194.static.cust.telenor.com> has joined #libre-soc01:40
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has quit IRC05:41
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc05:42
ghostmansd[m]lkcl, thanks for the start! I'll check today's evening.06:37
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC06:45
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc06:46
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC07:22
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc07:32
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC07:34
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc07:34
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC07:45
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc07:46
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC07:47
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc08:00
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC08:06
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc08:07
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC09:02
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc09:08
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC09:21
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc09:21
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC09:23
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc09:24
lkclprogrammerjake, no - i have said already: please leave it to markos.09:26
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC09:28
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc09:29
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC09:31
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc09:31
programmerjakek, i'm planning on working on the fcvt/fmv instructions in the simulator next (note the bug has too many instructions in it with all the existing int/fp conversions in PowerISA and needs to be split or have subtasks, afaict it's like 15 nearly completely independent instructions)09:32
programmerjake#107209:33
lkcleek!10:01
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC10:21
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc10:22
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC10:31
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has joined #libre-soc10:41
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has quit IRC10:45
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc11:16
*** octavius <octavius!~octavius@92.40.168.114.threembb.co.uk> has joined #libre-soc11:54
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC12:25
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc12:26
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC12:36
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc12:37
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC12:40
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc12:40
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC13:01
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc13:01
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC13:10
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc13:10
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC13:15
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc13:25
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC13:43
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc13:49
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC14:18
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc14:20
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC14:38
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc14:39
*** xornina <xornina!~xornina@154.39.248.194.static.cust.telenor.com> has quit IRC14:40
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC14:50
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc14:51
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC14:56
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc14:56
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC15:20
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has joined #libre-soc15:22
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has quit IRC16:21
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has joined #libre-soc16:21
*** octavius <octavius!~octavius@92.40.168.114.threembb.co.uk> has quit IRC17:08
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has quit IRC17:35
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has joined #libre-soc17:39
*** klys <klys!~mdasoh@show.op8.us> has quit IRC18:05
*** klys <klys!~mdasoh@show.op8.us> has joined #libre-soc18:08
markos_lkcl, I may propose another instruction to complement the one-coeff butterfly instruction, it will probably be simpler19:07
markos_working out the details now19:07
markos_so one could use those two together to produce the 2-coeff butterfly19:07
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC19:14
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc19:27
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC19:45
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc19:58
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC20:04
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc20:18
programmerjakeriscv announced Zfa, i looked through it and it turns out we either don't currently need or have better equivalents of all operations proposed20:49
lkclhttps://github.com/riscv/riscv-isa-manual/blob/6599b4300f3694456c7f58c8f7c270ba4c5aab70/src/zfa.tex21:42
lkclonly 32 constants21:42
lkclyep agreed. bare minimum additions.21:44
lkclmarkos_, awesome. knock yourself out, and we'll go over them.21:44
markos_just tested it, the first doesn't need to change at all, the second is similar, same args, but slightly different behaviour, will commit tomorrow because I'm tired now21:48
lkclok no rush21:53
programmerjakelkcl: i spotted some errors in conferences/siliconsalon2023/siliconsalon2023.tex, can i fix them or are you busy using it rn? 2 errors: FMAC should be just MAC when talking about integer ops, x86 equivalent of dsld is named shld22:26
programmerjakei'll just push my changes to a branch for now22:27
lkclgo for it, i can update the PDF22:29
programmerjakealso, you may want to add slides about how bigint mul can have 64-bit obs but be executed in a 256-bit alu for 4x speedup22:30
lkcllet me know when as the talk was about 4 hours ago, there's still time to replace the PDF22:30
lkclforgot about that, it was a bit rushed this morning22:30
programmerjakeok, so no new slides tgen22:30
lkclfeel free to add one if you think it appropriate. texstudio does conversion to PDF - press F522:31
programmerjakewell, if you already presented it imho we really shouldn't do more than typo fixes since people will expect it to be substantially unchanged22:33
programmerjakecan copy to a new file if we want to substantially modify it for next time22:33
programmerjakeso, i'll just push to master then22:34
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC22:39
programmerjakepushed: https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=347b76c4d5842e1f4898943553687d1dece6db3f;hp=6106d0201bda697ba96c419081e2e596523e3c6d22:41
programmerjakei didn't check the pdf as i'm editing from my phone but expect it to be fine22:44
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc22:53
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC22:57
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc23:13
lkcl:)23:30
lkclok will check23:30
lkclhttps://ftp.libre-soc.org/siliconsalon2023.pdf23:31
programmerjakeoh, one other important note: bigint algorithms are generally either O(N) or O(N*(log N)^k) for some constant k, they're only O(N^2) at very small sizes (a few words)23:51
programmerjakehttps://en.wikipedia.org/wiki/Multiplication_algorithm#Computational_complexity_of_multiplication23:55
programmerjakedivision, nth-roots can all be expressed as O(log(N)^k*M(N)) where M(N) is how long it takes to multiply23:57
programmerjakeso your statement that bigint algorithms are O(N^2) is misleading or just plain wrong23:58

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