<whitequark[cis]>
what makes more sense is keep trying seeds (in parallel) until you hit the constraint
<whitequark[cis]>
then the goal setting is done exactly the same as before
<adamgreig[m]>
depends what you want to know and how much you trust the timing analysis I guess, heh
<adamgreig[m]>
I think in principle you're completely right
<zyp[m]>
I think for CI purposes it can be good to know the spread to get an idea of how a change affects timing
<adamgreig[m]>
but I still am happy spending an extra minute of cpu time getting some details on what the distribution looks like
<ravenslofty[m]>
...I mean, yes, there kind of is
<adamgreig[m]>
and no harm picking the best seed having done that and buying yourself a little extra margin against bad timing analysis I guess... perhaps that's faulty reasoning though
<ravenslofty[m]>
And I do also feel like there's some Fmax to be gained in nextpnr having improved STA
<adamgreig[m]>
crzwdjk: I should point out that this has nothing to do with abc9 though, that happens deterministically in yosys, but if you had a distribution of 100 runs of nextpnr before and after abc9, it would make a more informed comparison than just a single point
<crzwdjk>
How big does the spread tend to be?
<ravenslofty[m]>
mumbles about Yosys also having a quiet, undocumented option to fuck around with things
<ravenslofty[m]>
Here's spread of Fmax over 50 seeds for a work thing I was doing earlier
<adamgreig[m]>
I've had some cases where it's like 40MHz between best and worst and others are like 2MHz, and that's all on fairly small ice40 or ecp5
<ravenslofty[m]>
I think the main thing is that bad luck is absolutely a thing with nextpnr
<crzwdjk>
At least it doesn't depend on the phase of the moon I suppose
<ravenslofty[m]>
we use our own RNG
bob_twinkles[m] has joined #amaranth-lang
<bob_twinkles[m]>
does it depend on the platform/libc version or does yosys/abc use their own RNG implementation everywhere?
<ravenslofty[m]>
Though there aren't many passes which need to use it in Yosys
<ravenslofty[m]>
nextpnr is a lot more RNG-dependent
<crzwdjk>
Those spreads seem pretty significant so I guess I do need to add something to try different seeds because I'm getting like 34 MHz fmax where I need 33 and I've already run into the occasional timing failure because of that.
<adamgreig[m]>
the nice thing about running them in parallel is if you have like an 8-core cpu you can basically try 8 seeds in the same time it took to try 1, which gives you better odds of at least not getting unlucky
<adamgreig[m]>
and if you have 128 cores available then even better :p
<crzwdjk>
These days everyone has at least 2-4 cores available, even my crappy arm laptop
<crzwdjk>
Seems like a valid parallelization strategy
<adamgreig[m]>
still, would be even nicer if nextpnr could do it and thus skip the duplicated work and process starting overhead and such
<ravenslofty[m]>
there's really not that much duplicated work in nextpnr
<adamgreig[m]>
yea, I'm sure it's tiny compared to the actual p&r work
<adamgreig[m]>
but still, gotta start up a process, read the design in, load the fpga library, ????, I don't really know what else :P
<_whitenotifier-f>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 58cebf7 - Deploying to main from @ amaranth-lang/amaranth@f9da3c0d166dd2be189945dca5a94e781e74afeb 🚀
alanvgreen has quit [Server closed connection]
alanvgreen has joined #amaranth-lang
mwk has quit [Server closed connection]
mwk has joined #amaranth-lang
swym4 has quit [Server closed connection]
swym4 has joined #amaranth-lang
Psentee has quit [Server closed connection]
Psentee has joined #amaranth-lang
sauce has quit [Server closed connection]
sauce has joined #amaranth-lang
cr1901 has quit [Server closed connection]
cr1901 has joined #amaranth-lang
tucanae47 has quit [Read error: Connection reset by peer]
tucanae47 has joined #amaranth-lang
marcan has quit [Server closed connection]
marcan has joined #amaranth-lang
ovf has quit [Server closed connection]
ovf has joined #amaranth-lang
notgull has quit [Ping timeout: 240 seconds]
notgull has joined #amaranth-lang
DX-MON has quit [Server closed connection]
DX-MON has joined #amaranth-lang
jjsuperpower has quit [Ping timeout: 260 seconds]
Wolfvak has quit [Server closed connection]
Wolfvak has joined #amaranth-lang
qookie has quit [Server closed connection]
qookie has joined #amaranth-lang
cr1901 has quit [Read error: Connection reset by peer]