00:00
tpb has quit [Remote host closed the connection]
00:00
tpb has joined #yosys
00:07
lumo_e has quit [Ping timeout: 245 seconds]
00:48
lexano has quit [Ping timeout: 260 seconds]
06:15
FabM has joined #yosys
06:15
FabM has joined #yosys
06:15
FabM has quit [Changing host]
07:37
strobo has quit [Read error: Connection reset by peer]
07:43
strobo has joined #yosys
09:56
notgull has quit [Ping timeout: 260 seconds]
10:01
notgull has joined #yosys
10:43
nak has quit [Ping timeout: 255 seconds]
11:13
mwk_ is now known as mwk
11:39
<
povik >
re: do abc choices improve synthesis
11:40
<
povik >
on the epfl benchmarks the answer appears to be no, they make it worse on average
11:40
<
povik >
at least if we go by the simple lut area/depth metrics
11:41
<
povik >
partly it's because with choices abc doesn't do what it calls "best cut extension", what would be the "E:" pass in the verbose output
11:42
<
povik >
if i disable that on the choiceless mapping, the gap closes somewhat, at least where i tried that
12:02
<
povik >
lofty: where toymap doesn't match epfl reference results by depth, i can't reproduce that locally with abc
12:03
<
povik >
e.g. for the 'lookahead xy router', i get depth 11 with plain toymap and locally running abc's `if -K 6` after reading in the aiger
12:03
<
povik >
but the epfl reference has 7 for depth
12:04
<
lofty >
povik: here's the thing: choices should never make a solution worse >.>
12:05
<
povik >
of course in principle, but the presence of choices disables other things in abc making the result worse, it seems
12:05
<
povik >
or not even in principle if choices make heuristics take unlucky decisions
12:06
<
povik >
i'm interested in the practical here...
12:07
<
lofty >
povik: oh; run `if -K 6`
*twice* to get 7 levels
12:07
<
povik >
huh, how does that make a difference?
12:07
<
povik >
reproduced here
12:07
<
povik >
> The network was strashed and balanced before FPGA mapping.
12:07
<
povik >
ah, here's my answer
12:07
<
povik >
that shows up only if i run it twice
12:07
<
lofty >
It's to do with the balancing, I think
12:08
<
povik >
yeah, that would make perfect sense
12:08
<
povik >
i suspected as much because i saw that message before
12:08
<
povik >
but i don't understand the triggers of the balancing pass
12:09
<
povik >
since it doesn't run with the first `if` invocation...
12:10
<
lofty >
I think based on the "strashed" part of it: when it has a network made of LUTs, it first turns that back into an AIG through strashing
12:11
<
lofty >
and then performs...SOP balancing, I guess?
12:11
<
povik >
Abc_NtkBalance
12:11
<
povik >
is what it is
12:13
<
povik >
`balance; if -K 6` reproduces 7 too
12:14
<
lofty >
the benchmark numbers they have are pretty crazy in the best results list
12:16
<
lofty >
povik: if I may ask, what's your methodology for comparing with and without choices?
12:16
<
povik >
it's in the gist
12:16
<
povik >
`write_aiger meh.aig; read_aiger meh.aig;`
12:16
<
povik >
is how i drop the choices
12:16
<
povik >
and then in the `if` output
12:16
<
povik >
> Node = 1019. Ch = 0. Total mem = 0.19 MB. Peak cut mem = 0.00 MB.
12:17
<
povik >
Ch=0 confirms they were lost
12:19
<
lofty >
povik: okay, I tried that, however there's something which bothers me
12:20
<
lofty >
compare the output of the two scripts:
12:20
<
lofty >
- read router.aig; dch; if -K 6 -v
12:20
<
lofty >
- read router.aig; dch; write_aiger meh.aig; read_aiger meh.aig; if -K 6 -v
12:21
<
povik >
what should i be looking for?
12:21
<
lofty >
The first is PPPFAA; the second is PPPEFEAEAE
12:21
<
povik >
yeah, hence my earlier comment
12:21
<
povik >
13:41 < povik> partly it's because with choices abc doesn't do what it calls "best cut extension", what would be the "E:" pass in the verbose output
12:22
<
povik >
you can disable that with -q i think?
12:22
<
povik >
no, something else
12:23
<
povik >
with -r choiceless still comes out on top
12:32
<
lofty >
It never ceases to amuse me how the solution to "ABC performs badly" is "do more ABC"
12:33
<
povik >
is that in regards to something particular you just discovered? :D
12:33
<
lofty >
the baseline synth script is "run if like eight times, I dunno"
12:34
<
povik >
ah, so people in the know understand `if; if` is better than `if`
12:35
<
lofty >
One of the best-performing ABC scripts we have is, uh, flow3
12:35
<
lofty >
(yosys -p "scratchpad -get abc9.script.flow3")
15:04
FabM has quit [Ping timeout: 246 seconds]
15:44
lexano has joined #yosys
18:01
myon98_ has quit [*.net *.split]
18:03
myon98_ has joined #yosys
19:03
Adrien[m] has quit [Quit: Idle timeout reached: 172800s]
19:18
xiretza[cis] has quit [Quit: Idle timeout reached: 172800s]
20:00
ec_ has quit [Remote host closed the connection]
20:00
ec_ has joined #yosys
20:12
ec_ is now known as ec
20:18
cr1901_ has joined #yosys
20:22
cr1901 has quit [Ping timeout: 248 seconds]
20:35
Wanda[cis] has quit [Quit: Idle timeout reached: 172800s]
20:56
cr1901_ is now known as cr1901
21:30
vancz_ is now known as vancz
22:17
nonchip has joined #yosys
23:12
cr1901_ has joined #yosys
23:15
cr1901 has quit [Ping timeout: 248 seconds]