News for hackers. Stuff that matters.

tiarkrompf

Re:Just Write the Parser on Thursday October 22, 2020 @02:23PM (#24861407)
Great question! Unary operators are really simple to add: you just look for the operator symbol first thing at the right level of precedence. Same idea as "if (peek == '(') ..." for parentheses, but outside the code that deals with '*' and '^' (if you want those to bind more strongly).
Re:Just Write the Parser on Wednesday October 21, 2020 @05:34PM (#24852461)
I just pushed a fix for Chrome (apparently it doesn't report affected selection ranges for input events). Hope it works now!
Re:Just Write the Parser on Wednesday October 21, 2020 @04:57PM (#24852100)
Thanks - very glad to hear. RSS should be doable
Re:Just Write the Parser on Wednesday October 21, 2020 @04:52PM (#24852052)
Author here - happy to answer questions, as always.

Thanks also for feedback on the format of the article. It's a bit of an experiment on how to present dense information effectively. Some more rationale here: https://tiarkrompf.github.io/notes/?/octopus-notes/

Re:Demystifying Differentiable Programming (2018) on Monday February 17, 2020 @03:40PM (#22350526)
For starters, what if you want to differentiate through code that traverses a collection, for example:

    val x = ...
    ys.map(y => y + x)
Each loop iteration needs to contribute a gradient update to x, which is defined in an outer scope. And what if y => y + x is not given as an inline lambda, but defined elsewhere. It doesn't seem like your blog posts discusses any such cases.
Re:Demystifying Differentiable Programming (2018) on Monday February 17, 2020 @03:26PM (#22350416)
Hi Noel, can you clarify how this corresponds to reverse mode AD? To me it seems more like a delayed or on-demand version of forward AD.
Re:Demystifying Differentiable Programming (2018) on Sunday February 16, 2020 @09:44PM (#22345184)
Co-author here - nice to see this discussed and happy to answer questions
Thanks! Fixed now.
Thanks! Yes, it wasn't obvious at all when we started looking at AD either.

Lantern supports a good deal of PyTorch (via Snek, our Python front-end similar to AutoGraph) and can also read ONNX. Full feature parity is not our main goal--so far, supported features have been driven mostly by what is required for certain interesting models.

It's different -- instead of returning a closure, we take a closure as additional parameter (check paper for details). This means that the call stack stays intact and all intermediate values can be stack-allocated.
We also have a more recent and slightly longer draft with additional explanations and GPU training results for ResNet 50 and DeepSpeech2:

"Demystifying Differentiable Programming: Shift/Reset the Penultimate Backpropagator" https://www.cs.purdue.edu/homes/rompf/papers/wang-preprint20...

The Lantern framework is available here: https://github.com/feiwang3311/Lantern

Co-author here. Happy to answer any questions, as usual ...
Re:How to Architect a Query Compiler, Revisited [pdf] on Monday August 27, 2018 @10:38PM (#17856234)
No surprise here, as Martin was my PhD advisor :)
Re:How to Architect a Query Compiler, Revisited [pdf] on Monday August 27, 2018 @10:37PM (#17856229)
Hi all,

Author here, great to see our paper on the front page today. Happy to answer any questions!

Since Spark was already mentioned in the comments, you might be interesting in the parallel/follow-on work we did applying similar techniques to accelerate Spark:

"Flare: Optimizing Apache Spark for Scale-Up Architectures and Medium-Size Data" (to appear at OSDI, preprint here: https://www.cs.purdue.edu/homes/rompf/papers/essertel-osdi18...)

If you're running Spark in production and are interested in trying it out, please leave your contact data here: https://flaredata.github.io. We're a small team and have a long waitlist, but should have some open slots in our private beta program this Fall.

Cheers, - Tiark

Re:How to Architect a Query Compiler, Revisited [pdf] on Monday August 27, 2018 @10:23PM (#17856180)
Thank you -- made my day!
Re:Collapsing towers of interpreters [pdf] on Monday November 06, 2017 @01:39PM (#15637682)
Sounds interesting. About the role of CPS: for specialization purposes, CPS can have some benefits by splitting control flow. For example, if your input is "if (c) a else b" and c is a staged (=symbolic) value, then a CPS interpreter can ignore the control-flow join that's implied by the if-then-else, and continue processing longer paths independently. However, this also quickly leads to exponential code blow-up, and hence, we do not use CPS for the core model described in the paper.
Re:Collapsing towers of interpreters [pdf] on Monday November 06, 2017 @10:14AM (#15636000)
I'm one of the authors. Happy to answer questions.
Re:A Regular Expression Matcher (2007) on Sunday July 31, 2016 @11:24PM (#12200037)
It's a nice piece of code. I like to use it to explain how to turn interpreters into compilers through staging/specialization: https://scala-lms.github.io/tutorials/regex.html
Re:Exploiting Domain-Specific Knowledge: Spiral [pdf] on Friday August 21, 2015 @11:05PM (#10101356)
The talk was part of a summer school at EPFL: http://vjovanov.github.io/dsldi-summer-school/

Afaik, everything was videotaped. I'm sure the videos will appear soon.

Re:Surgical Precision JIT Compilers [pdf] on Monday March 31, 2014 @06:35PM (#7504743)
"precision" JIT: I'm not sure -- can you tell it what to do? More predictable performance model than HotSpot: absolutely.
Re:Surgical Precision JIT Compilers [pdf] on Monday March 31, 2014 @06:33PM (#7504736)
(author here) Yes, one of our points is that 'register' is much too low-level, because one can't abstract over it. The same holds e.g. for OpenMP directives. In the paper we propose (among other things) to attach such directives to dynamic scopes. This makes it possible to e.g. unroll all innermost loops, including those in function calls, without putting unrolling directives on individual loops.
Re:Surgical Precision JIT Compilers [pdf] on Monday March 31, 2014 @06:27PM (#7504680)
Author here. Thought I should share the github link as well: https://github.com/TiarkRompf/lancet
Re:FastR: An implementation of the R language in Java [pdf] on Sunday November 17, 2013 @11:34AM (#6749541)
Relite author here. I'd love to learn more about your use cases, feel free to get in touch!
Re:R.I.P. Phil Bagwell on Monday October 15, 2012 @07:46PM (#4657692)
Here is a collection of all his papers: http://infoscience.epfl.ch/search?ln=en&p=bagwell