Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes. Set by lizmat on 24 May 2021. |
|||
00:02
reportable6 left
01:04
reportable6 joined
02:04
evalable6 left,
linkable6 left
02:06
linkable6 joined
02:07
evalable6 joined
03:07
evalable6 left,
linkable6 left
04:07
evalable6 joined
04:09
linkable6 joined
06:02
reportable6 left
|
|||
Nicholas | good *, * | 06:53 | |
08:05
reportable6 joined
08:45
discord-raku-bot left
08:46
discord-raku-bot joined
|
|||
MasterDuke | jnthnwrthngtn: if you haven't already seen, github.com/rakudo/rakudo/issues/4662 looks like it might be up your alley (involves samewith, but is not spesh/jit related) | 09:18 | |
jnthnwrthngtn | moarning o/ | 10:53 | |
Nicholas | \o | 10:54 | |
jnthnwrthngtn | Ahh...just the winter weather I like. Sunny and cold. | ||
lizmat | here, it's just cold :-( | ||
jnthnwrthngtn | MasterDuke: Yes, noticed it, no immediate guesses, will have to dig a bit | ||
MasterDuke | cool | 10:56 | |
jnthnwrthngtn | (Although probably today is going to be a bit meeting-filled...) | ||
Nicholas | "meetings, the pratical alternative to lunch" - hopefully not across lunchtime | 10:57 | |
jnthnwrthngtn | Well, only if I don't lunch early enough :) | 11:02 | |
Which happened earlier in the week | |||
oh, it's samewith...OK, that's the one that doesn't use resumption | 11:09 | ||
11:10
evalable6 left,
linkable6 left
|
|||
jnthnwrthngtn | I wonder if it could be already fixed by nine++ work on region boundary handling | 11:11 | |
MasterDuke | github.com/MoarVM/MoarVM/pull/1611? | 11:13 | |
jnthnwrthngtn | ano | ||
*yes | |||
Worth a try, at least. | 11:14 | ||
MasterDuke | oh, that may indeed fix it | ||
jnthnwrthngtn | Today's lunch is leftovers from last night's Korean takeaway, carried to work in my backpack along with a headset for the meetings...which now smells of delicious Korean noms. | 11:18 | |
timo | i just re-discovered the talk from emery berger where he presented coz, but he also presented stabilizer | 11:20 | |
the takeaway was that random changes in memory layout had as much impact on some cases he'd encountered as going from -O2 to -O3 | |||
so stabilizer re-randomizes layout of stuff every 0.5 seconds while doing benchmarking, so that there's no particular choice of layout that's effecting your result too much, and you'll end up with a normal distribution | 11:21 | ||
unfortunately, stabilizer no longer compiles %) | |||
moon-child | yeah, that was great. There was one anecdote: a program was faster when run by one user than another, because the longer username went into the environment and changed the stack alignment | 11:22 | |
timo | indeed | ||
jnthnwrthngtn | That's mildly horrifying :) | 11:23 | |
timo | isn't it | ||
moon-child | in-order, cacheless CPUs are still there! | ||
MasterDuke | jnthnwrthngtn: yep, with fix_unwind_missing_frame checked out, the example program finishes for 2k lines of input (though with massive memory growth, 3k got killed by the oom killer) | 11:24 | |
timo | cacheless is not great, since we'll get too far from actual real-life performance, right? | 11:26 | |
we'll want to get performance improvements by making structures smaller, making memory access patterns more predictable or reducing our working set size etc | |||
MasterDuke | timo: have you tried using coz on moarvm? | 11:27 | |
timo | yes, it did not do much, unfortunately | ||
moon-child | timo: was not a serious suggestion. But such cores have very uniform performance characteristics, _if_ you stick to them :) | ||
timo | coz works best when there's multiple threads doing stuff and there's some contention / waiting / synchronization and it can tell you by how much the whole gets faster if you make one particular piece faster | 11:28 | |
if we only do what coz does at the C level, we're not going to see a lot | 11:29 | ||
we'd really want to apply the coz instrumentation at the bytecode level, and also make it appear in the jitted code so we don't just miss that | |||
jnthnwrthngtn | Is coz the..hmm..was it causality-based profiling or some such? | 11:30 | |
timo | that's right | ||
the example he gave first for "take profile, make the code that runs for the longest time, go faster" would make the "loading..." label flash/animate faster | 11:31 | ||
so with coz, it'd randomly make that faster and see it does nothing for the overall | |||
then it'd make something else faster and it'd see that effect hits 100% (in a simple example, of course) | 11:32 | ||
"make something faster" being implemented as "penalize the execution of everything else active at the same time by some amount" | |||
we can make our own super-cut-down stabilizer knock-off by using alloca with a random number in moar's main function | 11:36 | ||
jnthnwrthngtn | I can imagine what you'd do with the coz output, but what concrete actions can you take from the stabilizer one? | 11:37 | |
timo | make your measurements more reliable for "i actually made it faster" vs "changes in code size and alignment and whatever random factors made it faster" | 11:38 | |
running a thing 50 times to make the measurement better was likened to getting a survey by asking the same person 50 times | 11:39 | ||
11:40
Altai-man joined
|
|||
MasterDuke | i thought Nicholas had an open PR to make disabling hash randomization an env variable, but i don't see it. was i imagining that? | 11:42 | |
timo | we do get rid of things like thermal differences (hopefully, probably have to sleep a few seconds in between executions), and other parts of the system activating during runtime, stuff like that | ||
jnthnwrthngtn | MasterDuke: I don't remember a PR, just a discussion about it | 11:43 | |
timo | i tried the obvious thing once, it immediately crashed ... | 11:44 | |
12:02
reportable6 left,
patrickb joined
12:11
evalable6 joined
12:13
discord-raku-bot left,
discord-raku-bot joined
|
|||
nine | jnthnwrthngtn: I've learned the hard way to double package all food I carry in my backpack. | 12:15 | |
timo remembers an incident involving coleslaw | 12:16 | ||
nine | timo: yes, running a thing 50 times is like asking the same person but in different situations. | 12:19 | |
Nicholas | "are we nearly there yet?" "are we nearly there yet?" "are we nearly there yet?" "are we nearly there yet?" ... | 12:41 | |
13:13
linkable6 joined
|
|||
Nicholas | or, I guess, "who's chancellor?" | 13:14 | |
nine | Nicholas: more like: "Who's today's chancellor?" | ||
Nicholas | "this week" | ||
I realise also that "Who is foreign minister?" is an ABA problem | 13:15 | ||
13:48
frost left
14:03
reportable6 joined
16:10
gfldex left,
discord-raku-bot left
18:01
Altai-man left
18:02
reportable6 left
19:03
reportable6 joined
20:53
discord-raku-bot joined
20:55
discord-raku-bot left
20:57
discord-raku-bot joined
21:03
gfldex joined
21:44
CaCode joined
22:52
discord-raku-bot left
23:56
Colt left
23:58
Colt joined
|