Tuesday, 2023-08-29

*** tpb <[email protected]> has joined #yosys00:00
*** lumo_e <[email protected]> has quit IRC (Ping timeout: 245 seconds)00:07
*** lexano <[email protected]> has quit IRC (Ping timeout: 260 seconds)00:48
*** FabM <[email protected]> has joined #yosys06:15
*** strobo <[email protected]> has quit IRC (Read error: Connection reset by peer)07:37
*** strobo <[email protected]> has joined #yosys07:43
*** notgull <notgull!~notgull@2600:1f14:8f4:3100:e2a2:c920:847d:d23> has quit IRC (Ping timeout: 260 seconds)09:56
*** notgull <notgull!~notgull@2600:1f14:8f4:3100:e2a2:c920:847d:d23> has joined #yosys10:01
*** nak <nak!~nak@yosys/nak> has quit IRC (Ping timeout: 255 seconds)10:43
*** mwk_ is now known as mwk11:13
povikre: do abc choices improve synthesis11:39
povikon the epfl benchmarks the answer appears to be no, they make it worse on average11:40
povikat least if we go by the simple lut area/depth metrics11:40
povikhttps://gist.github.com/povik/d06279abeb9616bcebb09bc9d11822e811:40
povikpartly it's because with choices abc doesn't do what it calls "best cut extension", what would be the "E:" pass in the verbose output11:41
povikif i disable that on the choiceless mapping, the gap closes somewhat, at least where i tried that11:42
poviklofty: where toymap doesn't match epfl reference results by depth, i can't reproduce that locally with abc12:02
povike.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 aiger12:03
povikbut the epfl reference has 7 for depth12:03
loftypovik: here's the thing: choices should never make a solution worse >.>12:04
povikof course in principle, but the presence of choices disables other things in abc making the result worse, it seems12:05
povikor not even in principle if choices make heuristics take unlucky decisions12:05
poviki'm interested in the practical here...12:06
loftypovik: oh; run `if -K 6` *twice* to get 7 levels12:07
povikhuh, how does that make a difference?12:07
povikreproduced here12:07
povik> The network was strashed and balanced before FPGA mapping.12:07
povikah, here's my answer12:07
povikthat shows up only if i run it twice12:07
loftyIt's to do with the balancing, I think12:07
povikyeah, that would make perfect sense12:08
poviki suspected as much because i saw that message before12:08
povikbut i don't understand the triggers of the balancing pass12:08
poviksince it doesn't run with the first `if` invocation...12:09
loftyI 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 strashing12:10
loftyand then performs...SOP balancing, I guess?12:11
povikAbc_NtkBalance12:11
povikis what it is12:11
povik`balance; if -K 6` reproduces 7 too12:13
loftythe benchmark numbers they have are pretty crazy in the best results list12:14
loftypovik: if I may ask, what's your methodology for comparing with and without choices?12:16
povikit's in the gist12:16
povik`write_aiger meh.aig; read_aiger meh.aig;`12:16
povikis how i drop the choices12:16
povikand then in the `if` output12:16
povik> Node =    1019.  Ch =     0.  Total mem =    0.19 MB. Peak cut mem =    0.00 MB.12:16
povikCh=0 confirms they were lost12:17
loftypovik: okay, I tried that, however there's something which bothers me12:19
povikdo tell12:19
loftycompare the output of the two scripts:12:20
lofty- read router.aig; dch; if -K 6 -v12:20
lofty- read router.aig; dch; write_aiger meh.aig; read_aiger meh.aig; if -K 6 -v12:20
povikwhat should i be looking for?12:21
loftyThe first is PPPFAA; the second is PPPEFEAEAE12:21
povikyeah, hence my earlier comment12:21
povik13: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 output12:21
loftyHmmm12:22
povikyou can disable that with -q i think?12:22
povikno, something else12:22
povik-r12:22
povikwith -r choiceless still comes out on top12:23
loftyIt never ceases to amuse me how the solution to "ABC performs badly" is "do more ABC"12:32
lofty:p12:32
povikis that in regards to something particular you just discovered? :D12:33
loftyEven if you take some random paper like https://people.eecs.berkeley.edu/~alanmi/publications/2010/fpga10_speedup.pdf12:33
loftythe baseline synth script is "run if like eight times, I dunno"12:33
lofty:p12:33
povikah, so people in the know understand `if; if` is better than `if`12:34
loftyOne of the best-performing ABC scripts we have is, uh, flow312:35
lofty(yosys -p "scratchpad -get abc9.script.flow3")12:35
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Ping timeout: 246 seconds)15:04
*** lexano <[email protected]> has joined #yosys15:44
*** myon98_ <myon98_!~myon98@user/myon98> has quit IRC (*.net *.split)18:01
*** myon98_ <myon98_!~myon98@user/myon98> has joined #yosys18:03
*** Adrien[m] <Adrien[m]!adrienpbma@2a01:4f8:c012:5b7:0:1:0:7e> has quit IRC (Quit: Idle timeout reached: 172800s)19:03
*** xiretza[cis] <xiretza[cis]!xiretzaxir@2a01:4f8:c012:5b7:0:1:0:88> has quit IRC (Quit: Idle timeout reached: 172800s)19:18
*** ec_ <ec_!~ec@gateway/tor-sasl/ec> has quit IRC (Remote host closed the connection)20:00
*** ec_ <ec_!~ec@gateway/tor-sasl/ec> has joined #yosys20:00
*** ec_ is now known as ec20:12
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:226:5076:abde:6458:a5ba> has joined #yosys20:18
*** cr1901 <cr1901!~cr1901@2601:8d:8600:226:9d3b:a53f:a76b:d5bd> has quit IRC (Ping timeout: 248 seconds)20:22
*** Wanda[cis] <Wanda[cis]!mwkmwkmwkm@2a01:4f8:c012:5b7:0:1:0:c> has quit IRC (Quit: Idle timeout reached: 172800s)20:35
*** cr1901_ is now known as cr190120:56
*** vancz_ is now known as vancz21:30
*** nonchip <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)22:17
*** nonchip <[email protected]> has joined #yosys22:17
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:226:c051:a10a:e0b1:d641> has joined #yosys23:12
*** cr1901 <cr1901!~cr1901@2601:8d:8600:226:5076:abde:6458:a5ba> has quit IRC (Ping timeout: 248 seconds)23:15

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