00:14:51 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 260 seconds] 02:18:21 kanru` [~kanru@kanru.info] has joined #sbcl 02:31:47 Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has joined #sbcl 02:36:13 LiamH [~healy@dsl093-215-146.sat1.dsl.speakeasy.net] has joined #sbcl 02:37:04 -!- LiamH [~healy@dsl093-215-146.sat1.dsl.speakeasy.net] has quit [Client Quit] 02:38:30 -!- Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has quit [Remote host closed the connection] 02:43:24 -!- kanru` [~kanru@kanru.info] has quit [Ping timeout: 255 seconds] 05:52:45 sdemarre [~serge@91.176.204.174] has joined #sbcl 06:19:07 Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has joined #sbcl 06:25:29 -!- sdemarre [~serge@91.176.204.174] has quit [Ping timeout: 260 seconds] 06:35:55 superjudge [~mjl@c83-250-198-227.bredband.comhem.se] has joined #sbcl 06:38:24 angavrilov [~angavrilo@217.71.227.190] has joined #sbcl 07:51:29 prxq [~mommer@mnhm-590c395e.pool.mediaWays.net] has joined #sbcl 08:33:56 -!- pkhuong [~pkhuong@gravelga.xen.prgmr.com] has quit [Remote host closed the connection] 08:54:06 attila_lendvai [~attila_le@37.99.52.141] has joined #sbcl 08:54:06 -!- attila_lendvai [~attila_le@37.99.52.141] has quit [Changing host] 08:54:06 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 09:51:45 -!- huangjs [~huangjs@69.84.244.131] has quit [Quit: Ex-Chat] 10:47:10 -!- hlavaty [~user@91-65-217-229-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 10:50:05 hlavaty [~user@91-65-217-229-dynip.superkabel.de] has joined #sbcl 10:50:56 huangjs [~huangjs@69.84.244.131] has joined #sbcl 11:03:58 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 11:18:21 -!- scymtym [~user@2001:638:504:2093:226:b9ff:fe7d:3e1f] has quit [Read error: Connection reset by peer] 11:18:36 scymtym [~user@2001:638:504:2093:226:b9ff:fe7d:3e1f] has joined #sbcl 11:37:33 -!- scymtym [~user@2001:638:504:2093:226:b9ff:fe7d:3e1f] has quit [Remote host closed the connection] 11:38:04 scymtym [~user@2001:638:504:2093:226:b9ff:fe7d:3e1f] has joined #sbcl 12:30:47 attila_lendvai [~attila_le@37.99.52.141] has joined #sbcl 12:30:47 -!- attila_lendvai [~attila_le@37.99.52.141] has quit [Changing host] 12:30:47 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 12:53:13 gko [~user@114-34-168-13.HINET-IP.hinet.net] has joined #sbcl 13:16:39 kanru` [~kanru@kanru.info] has joined #sbcl 13:30:38 wbooze [~wbooze@xdsl-78-35-152-101.netcologne.de] has joined #sbcl 13:34:09 -!- huangjs [~huangjs@69.84.244.131] has quit [Quit: Ex-Chat] 13:38:56 pw_ [~user@91-66-5-222-dynip.superkabel.de] has joined #sbcl 13:39:09 -!- pw_ [~user@91-66-5-222-dynip.superkabel.de] has left #sbcl 14:08:59 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 14:35:27 homie [~homie@xdsl-78-35-152-101.netcologne.de] has joined #sbcl 14:50:43 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 14:54:49 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Client Quit] 15:05:31 attila_lendvai [~attila_le@37.99.52.141] has joined #sbcl 15:05:31 -!- attila_lendvai [~attila_le@37.99.52.141] has quit [Changing host] 15:05:31 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 15:09:18 edgar-rft [~GOD@HSI-KBW-078-043-123-191.hsi4.kabel-badenwuerttemberg.de] has joined #sbcl 15:19:25 pkhuong [~pkhuong@gravelga.xen.prgmr.com] has joined #sbcl 16:21:23 -!- gko [~user@114-34-168-13.HINET-IP.hinet.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 16:44:40 -!- Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has quit [Read error: Connection reset by peer] 17:19:35 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 17:57:41 slyrus [~chatzilla@adsl-99-183-243-129.dsl.pltn13.sbcglobal.net] has joined #sbcl 18:01:39 -!- superjudge [~mjl@c83-250-198-227.bredband.comhem.se] has quit [Ping timeout: 260 seconds] 19:04:32 -!- homie [~homie@xdsl-78-35-152-101.netcologne.de] has quit [Read error: Connection reset by peer] 19:04:41 -!- wbooze [~wbooze@xdsl-78-35-152-101.netcologne.de] has quit [Read error: Connection reset by peer] 19:10:24 -!- fe[nl]ix [~quassel@pdpc/supporter/professional/fenlix] has quit [Remote host closed the connection] 19:10:33 fe[nl]ix [~quassel@pdpc/supporter/professional/fenlix] has joined #sbcl 19:41:31 -!- slyrus [~chatzilla@adsl-99-183-243-129.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 260 seconds] 19:46:25 rpg [~rpg@216.243.156.16.real-time.com] has joined #sbcl 20:04:56 -!- angavrilov [~angavrilo@217.71.227.190] has quit [Ping timeout: 265 seconds] 20:10:48 leuler [~user@p548FA321.dip.t-dialin.net] has joined #sbcl 20:14:38 sdemarre [~serge@91.176.204.174] has joined #sbcl 20:26:29 I am investigating an improvement to loop rotation (namely, not doing it in a case where it hurts). A test loop on my AMD machine got much faster. I am interested in the effect on an Intel CPU so I would be grateful if some kind soul with such a processor could apply a small patch and run a small and short timing comparison. Anybody? 20:32:28 leuler: my intel is currently occupied. I should have some time in 1-2 days 20:32:51 sure. any particular generation, or just anything reasonably modern? 20:35:08 jsnell: I believe reasonably modern suffices. Thanks for volunteering! 20:35:18 Here is the patch: https://github.com/leuler/sbcl/commit/0c88d4cdfa7b7d2aae1a3b2b8f762aa524d5b0ed.patch 20:35:45 And here the timing code: http://paste.lisp.org/+2U8Z 20:37:38 leuler: could some of that code be adapted for jump/jump optimisation? 20:37:53 ah no. 20:39:27 pkhuong: Well, in this particular case it suppresses a jump to a jump (both even unconditional) -- see the disassembly in the paste. 20:40:07 right, but it does so more cleverly than by detecting these things after the fact (: 20:41:42 -!- Guest40145 [user@nat/google/x-unrxzbbzbjmlijeq] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 20:43:08 leuler: intel i7 920 good enough? 20:43:15 I observed that there were many more jumps to jumps in the compiler's output several years ago; their number seems to have been reduced already very much in the meantime by whatever changes. 20:43:40 prxq: yes. 20:44:05 sbcl from repo, I guess 20:45:08 prxq: Whatever you have compiled will be OK. The loop rotation code hasn't been touched for years. It would be nice if the version already used long NOPs. 20:45:23 leuler: well, local function trampolines are much nicer, that's for sure. 20:45:31 leuler: ok 20:45:53 leuler: it looks like the patch can be applied to a live image? 20:46:34 pkhuong: yes, I think so. I did a full rebuild but it seems sufficient to recompile the single function it touches. 20:47:57 pkhuong: I don't get your reference to trampolines. They are nicer than what? 20:49:31 leuler: than the trampolines we had before 20:51:41 *prxq* is recompiling everything 20:53:25 pkhuong: I fear I wasn't attentive when that changed. Which commit was that and was there some discussion I might search for? 20:55:20 293488f3b117854e12b0d7f4faeb742b707bbc9c in June 2011 20:55:27 leuler: paste annotated with results 20:56:00 trampolines were introduced by mega around 2010 or 2009, IIRC, to replace code that changed the return address after CALL. 20:58:32 I should have tried it first on an unpatched one, eh?? 20:58:35 :-) 20:58:49 jsnell: many thanks! 20:59:52 So that was around 15 % faster. 21:03:23 not bad for a one line change! ;-) 21:07:20 stassats [~stassats@wikipedia/stassats] has joined #sbcl 21:11:32 Here it went from 7.956 s to 4,598 s. I am not sure what the processor doesn't like about the original form; the nearest I can guess is: the optimization guide says that up to three branches per 16-byte instruction fetch window are OK and only for absolutely optimal performance one should use at most one branch per 16 bytes. Maybe two immediately adjacent branches are bad already. 21:11:55 pkhuong: Thanks for the pointers regarding the trampolines! 21:14:12 leuler: I bet the old form works fine on P4 ;) 21:14:31 pkhuong: :-) 21:17:10 i get more like a rounding error (annotated the patch) 21:17:26 -!- sdemarre [~serge@91.176.204.174] has quit [Ping timeout: 265 seconds] 21:24:29 prxq: Thank you, too. Where do I find your results? I don't see a note on my github or another annotation on the paste? 21:30:59 -!- edgar-rft [~GOD@HSI-KBW-078-043-123-191.hsi4.kabel-badenwuerttemberg.de] has quit [Quit: eternal darkness] 21:32:46 leuler: now I submitted it properly 21:32:55 (typo in the captcha) 21:33:15 at lisppaste 21:34:17 prxq: Yes, found it. 21:34:56 sbcl 1.0.57 21:35:15 huh. I have exactly the same CPU model / speed. why are your results 70% slower? 21:35:35 that'd be nice to know. 21:36:14 bogomips: 5345 21:36:17 prxq: Do your disassemblies look the same as mine? 21:36:56 leuler: what are these disassembles from? ff? 21:37:50 yes. 21:39:04 maybe a sbclrc that declare (optimize debug)? 21:39:42 I needed the inline function to trigger the compilation to produce the contorted jumps. With the code of gg directly put in ff in the source the compiler puts everything in one basic block and generates good code already without the patch. 21:40:31 jsnell: indeed 21:40:57 restrict-compiler-policy debug 2 21:41:19 1.0.57 also is before multi-byte NOPs which may make a difference here, too. 21:41:32 my emacs is crippled, because the system is a new install. Sorry, but I will post the disassembles tomorrow 21:41:33 slyrus [~chatzilla@adsl-99-183-243-129.dsl.pltn13.sbcglobal.net] has joined #sbcl 21:41:43 good night 21:41:47 -!- prxq [~mommer@mnhm-590c395e.pool.mediaWays.net] has quit [Quit: Leaving] 21:44:52 hmm. My numbers were jumping around a little, so I made sure the benchmark runs three times in a row, warmup before every attempt; with full gc before that, and gc disabled during the benchmark. Best of three runs gets reported. 21:45:14 baseline: 5372 itups. with safepoint overhead enabled: 5004 (!). With leuler fix: 4780. Leuler fix plus sp overhead: 5232. 21:46:39 -!- SHUPFS [~hercules@S0106001111de1fc8.cg.shawcable.net] has quit [Quit: Lost terminal] 21:47:16 lichtblau: What is an itup? 21:48:22 sorry, ms. 21:51:20 So, smaller numbers are better? 21:52:08 yeah. And the improvement to 5004ms comes from adding TEST AL, [#x648000] between the two jumps. Why could that be? 21:52:46 What CPU do you have? 21:53:10 model name : Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz 21:56:03 My guess would be the same as above: spacing out jumps may be good. 21:56:17 Sorry, I must leave. Good night. 21:56:22 -!- leuler [~user@p548FA321.dip.t-dialin.net] has quit [Quit: ERC Version 5.1.2 $Revision: 1.796.2.6 $ (IRC client for Emacs)] 22:07:08 SHUPFS [~hercules@S0106001111de1fc8.cg.shawcable.net] has joined #sbcl 22:15:14 lichtblau: my take on this issue is that safepoint overhead is marginal ;) 22:21:27 -!- luis` is now known as luis 23:06:33 Blinda [~antani@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has joined #sbcl 23:07:23 -!- Posterdati [~quassel@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has quit [Remote host closed the connection] 23:09:55 -!- Blinda is now known as Posterdati 23:15:16 -!- Posterdati [~antani@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has quit [Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/] 23:15:53 Posterdati [~antani@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has joined #sbcl 23:16:56 -!- Posterdati [~antani@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has quit [Client Quit] 23:17:13 Posterdati [~antani@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has joined #sbcl 23:18:06 -!- Posterdati [~antani@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has quit [Client Quit] 23:18:36 Posterdati [~antani@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has joined #sbcl 23:21:13 Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has joined #sbcl 23:22:51 Posterdati_ [~quassel@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has joined #sbcl 23:23:05 -!- Posterdati_ [~quassel@host45-237-dynamic.6-87-r.retail.telecomitalia.it] has quit [Remote host closed the connection]