Hacker News new | past | comments | ask | show | jobs | submit login
Tile: A New Language for Machine Learning (vertex.ai)
163 points by hedgehog on Nov 10, 2017 | hide | past | favorite | 36 comments



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.


Since when was terseness a bad thing?


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


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.



There are a couple of esoteric languages explicitly designed with terseness in mind: https://esolangs.org/wiki/Category:Golfing_language


APL?


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...


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

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


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.



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


It’s a word play on “Stalingrad”.

It’s kind of funny.


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

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

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

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


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.


You are of course entirely right. It may be worthwhile to email Siskind or Pearlmutter on the subject. I believe Siskind has a tradition of naming things after brutal dictators, so I imagine it's liable to not amount to much.

Might as well name your VR SDK Holodomor.


almost as funny as naming a catacomb 'Hit Lair'


That looks both clever and interesting, do you know if they have published any benchmarks on GPU or other accelerator targets?


Not that I've been able to find.


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.


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


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/


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.


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


I had the same gut reaction, but fortunately it turns out the article is not about a language intended for humans:

“Our backend produces custom kernels for each specific operation on each GPU. It does this through an intermediate language called Tile. Tile is a simple, compact language for describing machine learning operations in a way that can be efficiently implemented on parallel computing architectures.”


Domain Specific Languages are good thing for specialized applications. Here we want automatic differentiation, parallelization and vectorization. It gets bad when general purpose language's features are added to allow things that the language wasn't designed for. A good interface to a GP language would be more relevant.


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.


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.


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.


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


Can you state in advance the scope of the domain ? Probably not, hence DSLs tend to grow extensions to cover unforeseen usecases - better to use a library written in a real language.


Honestly, I do too. But this is just a helper language describing kernels. It actually looks nice.


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


Not enough parentheses... ;-)


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.


7 Powerful Programming Languages For Doing Machine Learning http://blog.hackerearth.com/powerful-programming-languages-f...

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: