
Growing a Compiler: Getting to Machine Learning from a General Purpose Compiler - ViralBShah
https://docs.google.com/presentation/d/1IiBLVU5Pj-48vzEMnuYEr9WQy9u2oi6Yk_8F3sgGkvQ/edit
======
xu3kev
This kind of practical research work is so intriguing! Is there a roadmap or a
career path for beginners to join and work in this field?

~~~
fooker
Step 1: Get a PhD.

I'm not joking. While there are exceptional situations where you might get to
work on interesting projects, by far the most reliable way to do it is through
an academic degree.

~~~
one-more-minute
Not at all. Only a small number of the people involved in this actually have
PhDs (often in unrelated fields) and many of the most prolific contributors
are undergrads who get involved via summer projects. If you're interested in
internals, probably the best way to learn is to just join our slack (see
julialang.org) and chat with all the developers.

~~~
ViralBShah
Both are true. A PhD program is a great way to find a chunk of time to
dedicate to a problem for a few years. At the same time, we've had
contributors who were in high school when they started, through GSoC, and just
generally interested folks in the community. On the other end, we've had
tenured professors and even retired professors contributing to Julia.

Eventually, it boils down to two things. Find a problem that you want to work
on and engage in the community as one-more-minute points out. Second, find a
way to support that - PhD, an interested employer, a university, a grant, or
perhaps you have are just well off and can do whatever you want!

~~~
xiaodai
I want a full time Julia role so bad. Unfortunately i have a family to support
and a mortgage to pay sp i cant quit my job unless i find something. But i
have been contributing to Julia despite having a hectic baking career
schedule. The fast `StatsBase.countmap(::UInt16)` for example was my first
contribution!

Don't mind a pay cut but I failed at my first attempt to land a (rare) Julia
job in Sydney. Willing to relocate!

------
ajtulloch
This is an incredibly impressive line of work. Huge props to the Julia team.

------
xiaodai
It's unfortunate but google docs are blocked at work. So why am I reading this
at work? Cos it might be useful for my work.

I do wish more slides are hosted elsewhere not google docs. Because some
companies are worried about the use of google docs especially if the data is
sensitive e.g. banking and insurance.

~~~
throwawayjava
Wow. Why?

~~~
victorNicollet
Shadow IT. A client asks: if we cancel our subscription tomorrow and our
competitor acquires your company next year, will our data have been deleted by
then ? And if you have employees sharing customer data with each other over
unsanctioned channels, you can't really answer "yes".

Blocking Google Docs is by far the cheapest way to prevent its use, even
considering the downsides of a complete block.

~~~
hencoappel
Does that mean they block every single website where you can upload data?
Dropbox, Gmail, etc? What's even the point given how easy it would be to find
some way to send stuff over the Internet?

~~~
PeterisP
Yes. It's trivial to block everything you can think of easily, and for
everything other than that there's network monitoring and legal recourse.

Why would you bother to look for some awkward way to work with customer's
sensitive data over the internet, if you're going to get fired for finding
that way? The main goal is to prevent random people from storing data in
unapproved locations "because it was easier that way". You can easily make it
not be easier, that cuts 95% of the sharing, and then the only practical
reasons to do so are clearly malicious.

------
seanmcdirmid
At first, I read this as "getting a general purpose compiler from machine
learning"...but I guess we aren't there yet.

I do wonder, however, how full differentiable programming languages will be
supported by compilers in the near future.

------
pjmlp
Lots of great work being done with Julia, kudos to the team.

------
quasarj
wat

~~~
KenoFischer
This is a talk we gave at the "Compilers for Machine Learning" workshop at CGO
this past Sunday. Obviously the slides are missing some of the context of the
presentation, but the core argument is that one shouldn't build compilers for
machine learning, but rather build general purpose compilers that are flexible
and extensible. From there, you can easily get all the same benefits as
dedicated machine learning compilers without building a huge monolith. The
rest of the slides highlight some of the work done in the Julia community to
work in this direction.

~~~
SilasX
How ... whatever was the reason for thinking that you needed a ML-specific
compiler?

Do people also think you need a timecard-tracking-specific compiler?

~~~
mlevental
do you know how modern ml works? do you know that every functional unit in a
net needs to be differentiable and so needs to carry around either dual
numbers (forward mode) or adjoints (reverse mode)? it's not as simple as just
writing a math library.

~~~
ViralBShah
There's an extensive discussion of AD in the slides (the topic of this HN
post), and how it is done in Julia. Precisely because it is not as simple as
writing a math library is why you need language and compiler support.

~~~
mlevental
yes that's what i was pointing out the poster i responded to

