02:15
colomon_ joined
05:08
geekosaur joined
05:32
brrt joined
05:45
domidumont joined
|
|||
brrt | good * | 05:45 | |
yoleaux | 8 May 2017 20:14Z <nine> brrt: "First make it work, then make it fast" can be an iterative game with even the new JIT that's there to be faster first having to work. | ||
brrt | nine: that is true :-) | ||
but | |||
y'all knew there was going to be a | |||
'but' | 05:46 | ||
in my experinece, the effort to pick the 'right' data structure has payed of heavily in the development of the new linear scan allcoator | |||
especially compared to the previous allocator | |||
05:46
domidumont joined
|
|||
brrt | well, i should say, 'right' data structures and 'right' algorithms | 05:47 | |
05:53
domidumont joined
|
|||
Geth | MoarVM/even-moar-jit: 7a88f7236b | (Bart Wiegmans)++ | src/jit/linear_scan.c Actually use the bitmap sets correctly The tile refs array is set up kind of weirdly; it's zero-biased and includes only refs to nodes that it uses (excludes itself), which is reasonable by itself, but it is at odds with the register requirements bitmap, which does include the output register. So that may be target for a cleanup. |
06:22 | |
brrt | i guess my point is, it's easy to pick the 'wrong' solution and buy myself time? but the 'wrong' solution tends to introduce all sorts of accidental complexity that the 'right' solution doesn't | 06:23 | |
nine | .tell brrt Understood :) | 06:37 | |
yoleaux | nine: I'll pass your message to brrt. | ||
06:42
brrt joined
07:21
domidumont joined
07:23
zakharyas joined
07:51
AlexDaniel joined,
praisethemoon joined
|
|||
lizmat wonders what jnthn's thoughts are on github.com/MoarVM/MoarVM/pull/592 | 09:22 | ||
it would improve the speed of things like .pick, .roll, .grab etc. on Hashes / Sets / Bags / Mixes quite significantly | 09:23 | ||
*and* simplify the code :-) | |||
brrt will take a lok | 09:28 | ||
yoleaux | 06:37Z <nine> brrt: Understood :) | ||
brrt | i guess i'm saying, tradeoffs and stuff | 09:29 | |
my only point against it is, 'at_pos for a hash, that's weird' | 09:31 | ||
jnthn | It adds nothing you can't already do in high-level code using the iterator | 09:33 | |
And algorithm wise it's doing the very same | |||
So it's only faster in the sense of "avoids some interpreter overhead" | 09:34 | ||
And possibly allocation overhead | 09:35 | ||
nine | Does it look like something the JIT may be able to optimize to the proposed code anyway at some point? | 09:36 | |
jnthn | The JIT would do away with the interpreter overhead just fine, I'd say | 09:41 | |
It already can somewhat, and the new JIT will be able to better still | |||
And the allocations should be a soft target for escape analysis | 09:42 | ||
brrt | but that means I have to work harder rather than MasterDuke or lizmat :-P | 09:45 | |
09:54
geekosaur joined
|
|||
nine | brrt: fine with me ;) | 09:55 | |
10:11
zakharyas joined
11:07
brrt joined
13:05
robertle joined
13:19
zakharyas joined
13:37
colomon joined
13:43
buggable joined
|
|||
lizmat | my POV re #592 is: wish we had a better JIT and escape analysis, frustrated that it isn't there yet, seems like an easy win in the mean time | 14:07 | |
this also feels somewhat as a downvote on the optimizing work I'm doing in rakudoland: | 14:08 | ||
it's all going to be better anyway with a better JIT and escape analysis | |||
so why waste the time ? | |||
brrt | well, your work in rakudoland usually works by 'lowering' the level of the moarvm code, correct? | 14:12 | |
that still helps the JIT very very much | |||
jnthn | A lot of the Rakudo improvemnets are algorithmic, and also what brrt said | ||
brrt | but I do get your POV, it's just, atpos for a hash, not sure if we want to set that precedent | 14:13 | |
now what i could get is a special hash pick method | |||
because that could be a different algorithm (pick a random location in the hash, search until you find an occupiied space) | 14:14 | ||
lizmat | well, but adding such a functionality, let's call it "rollkey", *would* not be caught by JIT and spesh and such atm | 14:16 | |
and would involve much deeper change s | 14:17 | ||
brrt | rollkey, i like it | ||
lizmat | and that would defeat the purpose at this time | ||
brrt | but i disagree, adding a single op isn't that hard | ||
lizmat | but that takes away time from much more needed improvements | 14:18 | |
or not? | |||
brrt | let me think about it | ||
jnthn | One improvement we need to make is re-implementing VMHash anyway | ||
Because the current design is explosive if you abuse it from multiple threads | 14:19 | ||
brrt | well, that, too… | ||
jnthn | Adding an atpos only makes that improvement harder | ||
lizmat | now *that* is a reason I can live wity | ||
*with | 14:20 | ||
ok, end of discussion here | |||
jnthn | But in general, as a design principle, I'm trying to get the surface area of MoarVM down | ||
lizmat | MasterDuke_: sorry for getting you to do this PR, hope you learned from it :-) | ||
jnthn | Or at least better focused | ||
MasterDuke_ | lizmat: no worries, was much easier than anticipated anyway. timotimo++ for the pointers | 14:21 | |
jnthn | (And yes, I'm frustrated I haven't been able to get as much optimization work in on MoarVM as I'd like.) | 14:22 | |
MasterDuke_ | closed the PR with links to these discussions | 14:23 | |
brrt | thanks MasterDuke_ | 14:37 | |
15:05
zakharyas joined
15:06
brrt joined
|
|||
brrt | by the way, i've decided for generalizing the heap cod | 15:07 | |
Zoffix | .oO( heap tuna ) |
15:09 | |
brrt | *heap code :-P | 15:10 | |
15:23
zakharyas joined
|
|||
brrt | hmm, that appears to be more involved than i had thought | 15:32 | |
timotimo | isn't it always :) | 15:39 | |
brrt | yeah, stuffs hard | 15:43 | |
16:24
Zoffix joined
16:53
ggoebel joined
17:36
domidumont joined
17:49
zakharyas joined
17:56
ggoebel joined
19:14
AlexDaniel joined
19:22
Ven joined
19:27
Ven_ joined
19:35
robertle joined
19:36
Ven_ joined
20:13
zakharyas joined
20:14
Ven_ joined
20:36
Ven joined
21:02
Ven_ joined
21:20
Ven joined
|