programmerjake | markos: 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 |
---|---|---|
programmerjake | luke: if you and markos are ok with it, i can try to fix that, it'll likely be even smaller than the current pseudocode | 00:43 |
programmerjake | 2 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 14 | 00:45 |
programmerjake | the c code doesn't have that problem because in c everything promotes to int for arithmetic | 00:46 |
*** xornina <xornina!~xornina@154.39.248.194.static.cust.telenor.com> has joined #libre-soc | 01:40 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has quit IRC | 05:41 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 05: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 IRC | 06:45 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 06:46 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 07:22 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 07:32 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 07:34 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 07:34 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 07:45 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 07:46 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 07:47 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 08:00 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 08:06 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 08:07 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC | 09:02 | |
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc | 09:08 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 09:21 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 09:21 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 09:23 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 09:24 | |
lkcl | programmerjake, no - i have said already: please leave it to markos. | 09:26 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 09:28 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 09:29 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 09:31 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 09:31 | |
programmerjake | k, 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 | #1072 | 09:33 |
lkcl | eek! | 10:01 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 10:21 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 10:22 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 10:31 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has joined #libre-soc | 10:41 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has quit IRC | 10:45 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 11:16 | |
*** octavius <octavius!~octavius@92.40.168.114.threembb.co.uk> has joined #libre-soc | 11:54 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 12:25 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 12:26 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 12:36 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 12:37 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 12:40 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 12:40 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 13:01 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 13:01 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 13:10 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 13:10 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 13:15 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 13:25 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 13:43 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 13:49 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 14:18 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 14:20 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 14:38 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 14:39 | |
*** xornina <xornina!~xornina@154.39.248.194.static.cust.telenor.com> has quit IRC | 14:40 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 14:50 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 14:51 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 14:56 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has joined #libre-soc | 14:56 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.195.231.113> has quit IRC | 15:20 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has joined #libre-soc | 15:22 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has quit IRC | 16:21 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has joined #libre-soc | 16:21 | |
*** octavius <octavius!~octavius@92.40.168.114.threembb.co.uk> has quit IRC | 17:08 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has quit IRC | 17:35 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@5.32.74.194> has joined #libre-soc | 17:39 | |
*** klys <klys!~mdasoh@show.op8.us> has quit IRC | 18:05 | |
*** klys <klys!~mdasoh@show.op8.us> has joined #libre-soc | 18:08 | |
markos_ | lkcl, I may propose another instruction to complement the one-coeff butterfly instruction, it will probably be simpler | 19:07 |
markos_ | working out the details now | 19:07 |
markos_ | so one could use those two together to produce the 2-coeff butterfly | 19:07 |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC | 19:14 | |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc | 19:27 | |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC | 19:45 | |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc | 19:58 | |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC | 20:04 | |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc | 20:18 | |
programmerjake | riscv announced Zfa, i looked through it and it turns out we either don't currently need or have better equivalents of all operations proposed | 20:49 |
lkcl | https://github.com/riscv/riscv-isa-manual/blob/6599b4300f3694456c7f58c8f7c270ba4c5aab70/src/zfa.tex | 21:42 |
lkcl | only 32 constants | 21:42 |
lkcl | yep agreed. bare minimum additions. | 21:44 |
lkcl | markos_, 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 now | 21:48 |
lkcl | ok no rush | 21:53 |
programmerjake | lkcl: 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 shld | 22:26 |
programmerjake | i'll just push my changes to a branch for now | 22:27 |
lkcl | go for it, i can update the PDF | 22:29 |
programmerjake | also, 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 speedup | 22:30 |
lkcl | let me know when as the talk was about 4 hours ago, there's still time to replace the PDF | 22:30 |
lkcl | forgot about that, it was a bit rushed this morning | 22:30 |
programmerjake | ok, so no new slides tgen | 22:30 |
lkcl | feel free to add one if you think it appropriate. texstudio does conversion to PDF - press F5 | 22:31 |
programmerjake | well, if you already presented it imho we really shouldn't do more than typo fixes since people will expect it to be substantially unchanged | 22:33 |
programmerjake | can copy to a new file if we want to substantially modify it for next time | 22:33 |
programmerjake | so, i'll just push to master then | 22:34 |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC | 22:39 | |
programmerjake | pushed: https://git.libre-soc.org/?p=libreriscv.git;a=commitdiff;h=347b76c4d5842e1f4898943553687d1dece6db3f;hp=6106d0201bda697ba96c419081e2e596523e3c6d | 22:41 |
programmerjake | i didn't check the pdf as i'm editing from my phone but expect it to be fine | 22:44 |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc | 22:53 | |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has quit IRC | 22:57 | |
*** yambo <yambo!~yambo@069-145-120-113.biz.spectrum.com> has joined #libre-soc | 23:13 | |
lkcl | :) | 23:30 |
lkcl | ok will check | 23:30 |
lkcl | https://ftp.libre-soc.org/siliconsalon2023.pdf | 23:31 |
programmerjake | oh, 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 |
programmerjake | https://en.wikipedia.org/wiki/Multiplication_algorithm#Computational_complexity_of_multiplication | 23:55 |
programmerjake | division, nth-roots can all be expressed as O(log(N)^k*M(N)) where M(N) is how long it takes to multiply | 23:57 |
programmerjake | so your statement that bigint algorithms are O(N^2) is misleading or just plain wrong | 23:58 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!