clifford changed the topic of #yosys to: Yosys Open SYnthesis Suite: http://www.clifford.at/yosys/ -- Channel Logs: https://irclog.whitequark.org/yosys
tpb has quit [Remote host closed the connection]
tpb has joined #yosys
emeb has quit [Quit: Leaving.]
emeb_mac has joined #yosys
N2TOH_ is now known as N2TOH
BinaryLust has joined #yosys
emeb_mac has quit [Ping timeout: 265 seconds]
emeb_mac has joined #yosys
Degi has quit [Ping timeout: 246 seconds]
Degi has joined #yosys
rlee287 has quit [Quit: Konversation terminated!]
bouliiii has quit [Ping timeout: 245 seconds]
heijligen has quit [Read error: Connection reset by peer]
heijligen has joined #yosys
<cr1901_modern> daveshah: I made a mistake with my PR. Quelle surprise. https://github.com/SymbiFlow/prjtrellis/pull/142
<tpb> Title: Update environment.sh by cr1901 · Pull Request #142 · SymbiFlow/prjtrellis · GitHub (at github.com)
dys has quit [Ping timeout: 256 seconds]
citypw has joined #yosys
parport0 has quit [Ping timeout: 256 seconds]
emeb_mac has quit [Quit: Leaving.]
parport0 has joined #yosys
dys has joined #yosys
jakobwenzel has joined #yosys
bouliiii has joined #yosys
kraiskil has joined #yosys
Asu has joined #yosys
jakobwenzel has quit [Quit: jakobwenzel]
BinaryLust has quit [Ping timeout: 272 seconds]
vidbina has joined #yosys
bouliiii has quit [Ping timeout: 245 seconds]
jakobwenzel has joined #yosys
vidbina has quit [Ping timeout: 240 seconds]
kgugala has quit [Ping timeout: 256 seconds]
kgugala_ has joined #yosys
vidbina has joined #yosys
az0re has quit [Remote host closed the connection]
<ZirconiumX> echo 'REEBE: NOP qverpgbel vf n ut jbexvat pbcl! Erzbir nop/ naq er-eha "znxr".' | tr 'A-Za-z' 'N-ZA-Mn-za-m'
<ZirconiumX> Claire has a sense of humour, it seems
<daveshah> This is actually for a good reason
<daveshah> It's so "ERROR" doesn't appear when make echos the command, unless there actually is an error
<ZirconiumX> Mmm
<ZirconiumX> But you can equally get Make to not echo the command, so
<daveshah> I remember this being discussed before, but I can't remember where
<ZirconiumX> (@ prefix)
<daveshah> Yosys uses this, but it is disabled in verbose mode, iirc
rswarbrick has joined #yosys
X-Scale` has joined #yosys
anticw has quit [Ping timeout: 256 seconds]
X-Scale has quit [Ping timeout: 272 seconds]
X-Scale` is now known as X-Scale
anticw has joined #yosys
Asu has quit [Remote host closed the connection]
Asu has joined #yosys
Asu has quit [Remote host closed the connection]
Asu has joined #yosys
anticw has quit [Ping timeout: 256 seconds]
anticw has joined #yosys
jakobwenzel has quit [Remote host closed the connection]
anticw has quit [Ping timeout: 246 seconds]
anticw has joined #yosys
rswarbrick has quit [Remote host closed the connection]
citypw has quit [Ping timeout: 240 seconds]
emeb has joined #yosys
anticw has quit [Ping timeout: 246 seconds]
anticw has joined #yosys
rswarbrick has joined #yosys
jfcaron has joined #yosys
anticw has quit [Ping timeout: 240 seconds]
anticw has joined #yosys
<rswarbrick> ZirconiumX: Hi there! Can we follow up quickly on PR #2083 here?
<ZirconiumX> Sure
<rswarbrick> Can you explain exactly what you measured? Those numbers definitely look worse with -DYOSYS_NO_IDS_REFCNT, but that seems slightly surprising to me (with or without the patch in the PR).
<ZirconiumX> Execution time
<ZirconiumX> Unfortunately I'm under WSL, so I can't run it under perf
<ZirconiumX> (otherwise I would)
<rswarbrick> That's not what I meant. Did you compile the same code with and without the flag? And was that with or without the patch in the PR?
<ZirconiumX> Same code with and without the flag
<ZirconiumX> Didn't touch the patch, since I had a hunch it wasn't necessary
<ZirconiumX> Number of instructions has little correlation with speed
<rswarbrick> Ok, so I think you've just proved that this benchmark isn't affected by time spent refcounting.
<rswarbrick> Re # insns / speed: Yes, until you get an icache miss. yosys is 8MB, so this is actually relevant, I thin
<rswarbrick> *think
<ZirconiumX> ...no
<rswarbrick> Can you explain what the "...no" is in answer to?
<ZirconiumX> If instruction count had any relation to speed then Rust code would not be competitive with C, for example
<ZirconiumX> But because we live in a world with superscalar out of order execution, giant caches and latency hiding, I really don't see it as a problem
anticw has quit [Ping timeout: 260 seconds]
<ZirconiumX> The entirety of the Yosys executable could fit in my processor's cache
<ZirconiumX> And it won't all be used at once
anticw has joined #yosys
<rswarbrick> Oh, so you have an 8MB L1 icache and then a separate dcache? That's quite a bit bigger than my laptop.
<ZirconiumX> It doesn't need to all fit in L1
<rswarbrick> ... but if it doesn't then you get cache misses. Which cost time.
<ZirconiumX> I feel like you're arguing on what you *think* the problem is
<rswarbrick> I think you're arguing about what you think I'm trying to improve :-D
<ZirconiumX> The SNES core is a pretty major workout for Yosys
<ZirconiumX> At 19.4k LUT4s
<ZirconiumX> If reference counting had any significant effect on the performance of Yosys, that would surely amplify it
<ZirconiumX> But nothing changes
<rswarbrick> Wait a sec...
<ZirconiumX> 27.2k cells, all of which need names (strings!)
<rswarbrick> My motivation here is that the code does less stuff with the patch. This may or may not improve wall-clock times today, but it definitely won't hurt, and makes things simpler over time. You're right that wall-clock times are the right thing to balance against "should we make the code more complicated".
<ZirconiumX> Regardless of my own feelings on the patch, it'll still get vetoed by Claire
<rswarbrick> I would argue that your benchmarking shows that we should never use YOSYS_NO_IDS_REFCNT (for safety, since the performance cost is tiny) and that we may as well pass the smart pointers by reference to avoid +1 -1 round-trips.
<rswarbrick> Ok. In which case, I hope she can weigh in on what she thinks the right approach is between do nothing / do something clever. I agree that the patch at the PR at the moment is neither of the two!
<ZirconiumX> If it was my own code, I would probably merge your patch, tbh
<rswarbrick> Thanks for your vote of confidence on the PR :-p
<ZirconiumX> Though I'd be even more in favour of "use less IdStrings" over this
anticw has quit [Ping timeout: 256 seconds]
anticw has joined #yosys
<rswarbrick> Yeah. I guess I understand the value of interning stuff into a symbol table, though, so I'm not completely sure.
<ZirconiumX> The main aim is to speed up equality tests
<rswarbrick> I've worked on a compiler in the past: I do understand what a symbol table does! :-)
<rswarbrick> You also get a total ordering on symbols (operator<), which can be handy.
<rswarbrick> e.g. you can compare sets of symbols for equality by first sorting (by the cheap integer comparison) and then ticking them off one-by-one.
<rswarbrick> In a very different world, Maxima (a computer algebra system) uses this as a trick for efficiently representing multivariate polynomials!
<ZirconiumX> In my own world - chess - we use sequential probability ratio tests to decide if something is better or not, but I haven't quite got the infrastructure to do that for FPGAs
<rswarbrick> Hmm, that's a new phrase to me. /me goes googling...
<sorear> oh you worked on maxima? need
<rswarbrick> sorear: Not recently, but I spent quite a bit of time on it 10 years ago or so.
anticw has quit [Ping timeout: 256 seconds]
anticw has joined #yosys
vidbina has quit [Ping timeout: 246 seconds]
anticw has quit [Ping timeout: 256 seconds]
kraiskil has quit [Ping timeout: 260 seconds]
anticw has joined #yosys
dys has quit [Ping timeout: 244 seconds]
emeb_mac has joined #yosys
kraiskil has joined #yosys
anticw has quit [Ping timeout: 272 seconds]
anticw has joined #yosys
anticw has quit [Ping timeout: 260 seconds]
anticw has joined #yosys
jakobwenzel has joined #yosys
marex-cloud has quit [Ping timeout: 256 seconds]
kraiskil has quit [Ping timeout: 256 seconds]
rjeli has quit [Ping timeout: 240 seconds]
emilazy has quit [Ping timeout: 272 seconds]
kraiskil has joined #yosys
mithro has quit [Read error: Connection reset by peer]
bubble_buster has quit [Ping timeout: 240 seconds]
emilazy has joined #yosys
bubble_buster has joined #yosys
rswarbrick has quit [Ping timeout: 260 seconds]
mithro has joined #yosys
anticw has quit [Ping timeout: 256 seconds]
anticw has joined #yosys
emilazy has quit [Ping timeout: 272 seconds]
bubble_buster has quit [Ping timeout: 260 seconds]
az0re has joined #yosys
mithro has quit [Ping timeout: 260 seconds]
bubble_buster has joined #yosys
emilazy has joined #yosys
rjeli has joined #yosys
anticw has quit [Ping timeout: 256 seconds]
mithro has joined #yosys
anticw has joined #yosys
kraiskil has quit [Ping timeout: 264 seconds]
anticw has quit [Remote host closed the connection]
anticw has joined #yosys
jfcaron has quit [Quit: Leaving]
jfcaron has joined #yosys
BinaryLust has joined #yosys
mirage335 has quit [Ping timeout: 265 seconds]
mirage335 has joined #yosys
mirage335 has quit [Ping timeout: 246 seconds]
DaKnig has quit [Ping timeout: 272 seconds]
DaKnig has joined #yosys
DaKnig is now known as DaKnig
strobokopp has joined #yosys
mirage335 has joined #yosys
jakobwenzel has quit [Quit: jakobwenzel]
simeonm has quit [Ping timeout: 265 seconds]
BinaryLust has quit [Ping timeout: 260 seconds]
simeonm has joined #yosys
Asu has quit [Ping timeout: 256 seconds]
jfcaron has quit [Ping timeout: 265 seconds]
emeb has left #yosys [#yosys]