
Tile: A New Language for Machine Learning - hedgehog
http://vertex.ai/blog/tile-a-new-language-for-machine-learning
======
tgandrews
In most other languages this would fail code review as it is overly terse. I
can see it does match the mathematical notation but if the language is
supposed to provide any layer of abstraction then it doesn't do a very good
job IMO. I guess the target market are mathematicians who already understand
and write mathematical notation.

~~~
eutectic
Since when was terseness a bad thing?

~~~
anton_gogolev
Immediately after you are tasked to maintain said overly-clever and overly-
terse code.

~~~
singularity2001
What is the name of the language where the whole game of life was literally
one line of code? That was the example that convinced me that terseness can be
too much.

also some physical theories which are summarised as A=F(P)
Anterior=Factor(Posterior) , the future is a function of the past.

the difference to E=MCC is that the later one actually contains physical
entities and that 'Factor' is often not well defined.

~~~
deepakkarki
I believe it was APL
[https://dfns.dyalog.com/c_life.htm](https://dfns.dyalog.com/c_life.htm)

------
tomp
Interesting language! But, reading the manual, I don't quite understand why
they _model_ the syntax to mimic mathematics, but then do things like implicit
declaration of indices and renaming standard math functions...

------
amelius
Does it apply the same tricks as [0], the Tensor Algebra Compiler from MIT?

[0]
[https://news.ycombinator.com/item?id=15599914](https://news.ycombinator.com/item?id=15599914)

~~~
hedgehog
taco's runtime appears to be designed for large sparse data while we designed
Tile specifically for the dense linear algebra operations in neural nets.
Quite a bit of work has gone into making the Tile runtime do the necessary
optimizations to make neural nets run efficiently on GPUs and other
accelerator designs, none at all for sparse workloads. Given that I'd expect
the internals to be fairly different.

~~~
FiveDegrees
Have you benchmarked Tile against Stalin∇?

[https://github.com/Functional-
AutoDiff/STALINGRAD](https://github.com/Functional-AutoDiff/STALINGRAD)

Page 3:

[http://barak.pearlmutter.net/papers/ad2016b.pdf](http://barak.pearlmutter.net/papers/ad2016b.pdf)

~~~
Isinlor
Who in his right mind would name a library after Stalin?!

~~~
laingc
It’s a word play on “Stalingrad”.

It’s kind of funny.

~~~
Isinlor
If I would name a library after a man who directly ordered to kill your
grandparents and grandparents of your colleagues by shooting them in back of
their head would you find it funny?

[https://en.wikipedia.org/wiki/Katyn_massacre](https://en.wikipedia.org/wiki/Katyn_massacre)

The man who sent an army to kill and rape people in your country?

[https://en.wikipedia.org/wiki/Soviet_invasion_of_Poland](https://en.wikipedia.org/wiki/Soviet_invasion_of_Poland)

The man who planned to crash a nation by starving it?

[https://en.wikipedia.org/wiki/Holodomor](https://en.wikipedia.org/wiki/Holodomor)

You know, people from your history lessons actually lived like you and I do
and some of them still do, as do their families.

~~~
laingc
You’ve run away with this a bit too far.

Firstly, I am staunchly anti-Stalinist, anti-communist, and anti-socialist.
I’ve been to former Soviet states and seen the devastation that Stalin and his
ilk wrought.

Secondly, the library is a wordplay on the name of the city (or perhaps the
well-known battle) of Stalingrad. That’s already a step removed from being
named after Stalin.

Thirdly, stop trying to turn the world into a humourless wasteland. The
policing of jokes of questionable taste screams of moral panic.

------
Isamu
From the Tile tutorial:

> PlaidML uses a language called Tile to construct GPU kernels. When used to
> express machine learning operations, the Tile language is reasonably close
> to mathematical notation, while also being amenable to conversion into
> optimized GPU kernels. In addition, all operations expressed in Tile can be
> be automatically differentiated.

> Tile and PlaidML are still in early development and the Tile language is
> actively changing to add new functionality.

------
madspindel
Who is behind Vertex.ai? Could not find any information about it. Is it AMD?

~~~
pushingice
It's a start-up. As of now they are still independent. (Disclaimer: I'm
related to their CTO)
[https://www.linkedin.com/company/17896487/](https://www.linkedin.com/company/17896487/)

~~~
hedgehog
To clarify, we are independent without any caveat or qualification (I'm the
CEO). Our office is in Seattle, if you have questions happy to answer here, on
LinkedIn, or by e-mail.

------
vbuwivbiu
when i read "a language for X" I think "ok...no"

~~~
nv-vn
What's wrong with domain specific languages? SQL is a language for database
manipulation, jq is a language for querying JSON, CSS is a language for
styling documents, etc.

~~~
autokad
it would be more like an SQL for people wanting to do SQL in ML, but its not
really what the article is talking about.

i need another language to program machine learning in like i need another
hole in my head.

~~~
apendleton
But... that's not what this is. It's a tool to make writing device-agnostic ML
frameworks easier. Consumers of said frameworks wouldn't even be aware of it.

~~~
autokad
> " but its not really what the article is talking about."

------
efangs
"making it many times easier to add support for GPUs"

------
rbanffy
Not enough parentheses... ;-)

~~~
jampekka
Come on, they still have a keyword AND two sets of parentheses AND a sigil AND
a set of braces to define a function.

It's like they couldn't agree on which syntax to use, so they decided to use
them all.

------
syadav
7 Powerful Programming Languages For Doing Machine Learning
[http://blog.hackerearth.com/powerful-programming-
languages-f...](http://blog.hackerearth.com/powerful-programming-languages-
for-machine-learning)

Python if a popular scientific language and a rising star for machine
learning. I'd be surprised if it can take the data analysis mantle from R, but
matrix handling in NumPy may challenge MATLAB and communication tools like
IPython are very attractive and a step into the future of reproducibility.

