Sunday, 2023-11-26

*** tpb <[email protected]> has joined #yosys00:00
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:226:251c:b8f8:8826:7f04> has joined #yosys01:39
*** cr1901 <cr1901!~cr1901@2601:8d:8600:226:5021:bd23:1d17:ff62> has quit IRC (Read error: Connection reset by peer)01:39
*** cr1901_ is now known as cr190101:55
*** lexano <[email protected]> has quit IRC (Ping timeout: 264 seconds)07:55
*** lexano <[email protected]> has joined #yosys08:08
*** ec <ec!~ec@gateway/tor-sasl/ec> has quit IRC (Remote host closed the connection)09:44
*** ec <ec!~ec@gateway/tor-sasl/ec> has joined #yosys09:44
*** nelgau <[email protected]> has quit IRC (Read error: Connection reset by peer)13:39
*** nelgau <[email protected]> has joined #yosys13:40
cr1901lofty: https://github.com/cr1901/sentinel/actions/runs/6993303260/job/19025827724#step:16:16 Looks like I might have to disable the demo for now LOL (looks like "it depends on the yosys binary" whether the design fits or not)14:49
loftycr1901: hmm...14:50
cr1901I'll spin up a container at home and see if I can dup. At the very least, a Windoze build of yosys with the most recent commit as of 12 hours ago doesn't change the LC count from what I expect (1276)14:52
cr1901Okay, I can thankfully duplicate in a container. And thankfully outside of the container I get the expected 1276 LUT count16:16
cr1901now to figure out the differences between oss-cad-suite and "the yosys I compile once per week"16:16
cr1901(Obligatory I should probably just switch to yowasp, but I still need a bunch of external tools so it'll be a weird hybrid of tools needed)16:17
cr1901Mine: UC Berkeley, ABC 1.01 (compiled Oct 14 2023 11:21:23)16:19
cr1901CAD Suite: UC Berkeley, ABC 1.01 (compiled Nov 24 2023 01:45:46)16:19
cr1901How do I get the commit hash from yosys-abc?16:20
cr1901Of course. It's the same ABC I have installed locally. Fabulous: https://github.com/YosysHQ/oss-cad-suite-build/actions/runs/6992668184/job/19024546417#step:5:8516:49
cr1901So same yosys, same ABC, same OS, gives different results16:49
cr1901lofty: I have some logs if you're curious. I guess abc9 is using a different random seed/algorithm when compiled for the OSS Cad Suite versus mine. 1/217:02
cr1901The logs are virtually identical until abc9 runs17:02
cr1901at which point the abc9 I'm using in CI starts performing a bit worse than the one I have locally17:02
loftycr1901: are you explicitly calling abc9?17:03
cr1901No, I ran yosys17:03
loftyhow did you run yosys17:03
cr1901Gimme a sec to paste17:04
cr1901http://gopher.wdj-consulting.com:70/paste/a355c2e9-47cd-41e5-a36d-959fbdac9c9d.txt17:04
cr1901script17:04
cr1901"$YOSYS" -q -l top.rpt top.ys17:04
cr1901I should prob check if the ilang files are identical17:05
loftycr1901: I see the problem17:06
loftyabc9-by-default is not in oss cad suite17:06
loftyso this is the ABC dff flow17:06
loftynot the ABC9 dff flow17:06
cr1901ABC dff can be combined with ABC9 flow?17:07
loftyno17:08
loftythey run different flows17:08
loftythis is not ABC9, this is ABC17:08
cr1901Well both logs say "executing ABC9"17:08
cr19011/2*17:08
cr1901Why didn't it error out when the ABC9 flow was called if it doesn't exist in oss-cad-suite?17:09
loftybecause the ABC9 flow was not called17:09
cr1901Huh, weird17:11
loftyas I said: <lofty> abc9-by-default is not in oss cad suite17:11
loftyso this is abc-by-default17:11
cr1901(Both logs say "Executing ABC9", so that's why I'm confused)17:11
cr1901want me to upload them?17:12
loftysure.17:12
cr1901Good: http://gopher.wdj-consulting.com:70/paste/50e0c6e1-80ad-4644-a6b8-05f05a51c250.txt17:12
cr1901Bad (OSS Cad Suite, I have replaced paths to be identical to Good to reduce noise)): http://gopher.wdj-consulting.com:70/paste/d4488bed-af3c-44a9-ab60-e3231890d80e.txt17:13
loftyOkay, I do see one big change between the two17:14
loftygood is compiled with clang; bad is compiled with gcc17:15
cr1901Reverse, but yes17:15
loftyand, well, Yosys is known to have some small variances between compilers17:15
cr1901I was afraid of that.17:16
loftyOr perhaps ABC does, but either way17:17
cr1901In other words, I'm running too close to the ragged edge of disaster17:18
* lofty smiles thinly17:18
loftyit could be worse17:18
loftyI could be pulling out the very last idea I have to optimise things >.>17:19
cr1901There might be some low-hanging fruit left I can do, but I'm pretty set on locking the core as-is for now. I'm tired and want a break from working on it.17:20
cr1901I'll probably allow "continue-on-failure" in CI for now17:21
loftyI completely understand17:21
cr1901Yea, I am _not_ out of ideas. I am out of fuel :P.17:21
cr1901I am _not_ out of ideas on my end*17:21
loftyI guess I have a few tricks left, maybe17:22
lofty(maybe)17:22
cr1901(Really, a big problem is RV's insistence that illegal opcodes have to be handled. There's SO GD many of them17:22
loftyisn't that why SERV *doesn't* handle them? :p17:23
cr1901Yea, I actually keep forgetting that SERV doesn't handle them. But by the time I first realized that, I'd already put all the illegal crap in the decoder and didn't feel like ripping it out lol17:24
loftyIt's a little amusing to me that you're not the only microcoded RV core that I know of17:24
cr1901Someone on a retro discord I passively watch is doing one in TTL chips IIRC17:25
loftyhttps://github.com/brouhaha/glacial17:25
cr1901Oh, Eric has been well aware of Sentinel for months. I use his microcode assembler17:26
cr1901Like hell I was writing my own17:26
cr1901https://github.com/brouhaha/m5meta17:26
loftyI would probably have used near's `bass` assembler if I was doing this, but yeah17:27
loftycr1901: I mean, I have the ultimate last-ditch optimisation technique, but it's a little hard to take seriously :p17:34
cr1901I will live with the breakage for now, thanks :P17:34
cr1901https://github.com/cr1901/sentinel/issues/2 This will have to do for now.18:03
cr1901lofty: >Figure out why clang and gcc abc are diverging, if possible. <-- Just on a lark, is there anything I can do here, like run abc with debug options to see into it's internal state a bit?18:04
loftycr1901: truthfully, I don't know, but there's `abc9.debug` as a scratchpad bool, which should preserve the intermediate files going to and from ABC18:11
loftychecking if those match up seems like a good start18:11
loftybeware that ABC is a *mess* of undefined behaviour though18:11
cr1901Is that equivalent to -nocleanup or should it be used in conjunction?18:13
cr1901And also: Basically, will I be wasting Alan's time if I open an issue after doing some debugging?18:13
loftycr1901: abc9.debug implies -nocleanup19:06
loftyand no, I don't think you'll be wasting Alan's time19:06
Myrl-sakiHow do I use CSDECODE? Does it count as like tristate, or?22:33
Myrl-saki(For reading, specifically)22:39
Myrl-saki(I want to get rid of the output multiplexer, because that seems to be part of my critical path.)23:05
*** nonchip <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)23:21
*** nonchip <[email protected]> has joined #yosys23:21

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